k8s中的Pod的状态CrashLoopBackOff

Posted dalianpai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s中的Pod的状态CrashLoopBackOff相关的知识,希望对你有一定的参考价值。

现象如下:

[root@k8s1 ~]# kubectl get pod
NAME                             READY   STATUS             RESTARTS   AGE
eureka-server-65695bbdc8-49b6v   0/1     CrashLoopBackOff   5          4m32s
[root@k8s1 ~]# kubectl get pod
NAME                             READY   STATUS             RESTARTS   AGE
eureka-server-65695bbdc8-49b6v   0/1     CrashLoopBackOff   5          5m16s

查找原因及解决如下:

[root@k8s1 ~]# kubectl describe pod eureka-server-65695bbdc8-49b6v
Name:           eureka-server-65695bbdc8-49b6v
Namespace:      default
Priority:       0
Node:           k8s3/192.168.180.144
Start Time:     Mon, 03 Feb 2020 21:03:24 +0800
Labels:         app=eureka-server
                pod-template-hash=65695bbdc8
Annotations:    <none>
Status:         Running
IP:             10.244.2.2
IPs:            <none>
Controlled By:  ReplicaSet/eureka-server-65695bbdc8
Containers:
  eureka-server:
    Container ID:   docker://0a8de1c10a8bc42aea722d4994f8b53c06820030de30a2c014f6600d7a98d09d
    Image:          112.124.104.171:1180/topcheer/eureka-server:1.0.1
    Image ID:       docker-pullable://112.124.104.171:1180/topcheer/eureka-server@sha256:b18dbacbc640c62b64d92f7240af0adcec2c4d9e870c60194d7ce9fa9d1e557c
    Port:           9010/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Mon, 03 Feb 2020 21:07:15 +0800
      Finished:     Mon, 03 Feb 2020 21:07:22 +0800
    Ready:          False
    Restart Count:  5
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-tdbtd (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-tdbtd:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-tdbtd
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  4m30s                  default-scheduler  Successfully assigned default/eureka-server-65695bbdc8-49b6v to k8s3
  Normal   Pulled     2m21s (x5 over 4m29s)  kubelet, k8s3      Container image "112.124.104.171:1180/topcheer/eureka-server:1.0.1" already present on machine
  Normal   Created    2m21s (x5 over 4m28s)  kubelet, k8s3      Created container eureka-server
  Normal   Started    2m21s (x5 over 4m28s)  kubelet, k8s3      Started container eureka-server
  Warning  BackOff    105s (x10 over 4m6s)   kubelet, k8s3      Back-off restarting failed container
[root@k8s1 ~]# kubectl logs eureka-server-65695bbdc8-49b6v
2020-02-03 13:07:18.750  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean ‘org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration‘ of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$2920e78d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

  .   ____          _            __ _ _
 / / ___‘_ __ _ _(_)_ __  __ _    ( ( )\\___ | ‘_ | ‘_| | ‘_ / _` |     /  ___)| |_)| | | | | || (_| |  ) ) ) )
  ‘  |____| .__|_| |_|_| |_\\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.4.RELEASE)

2020-02-03 13:07:19.062  INFO 1 --- [           main] c.t.eureka.EurekaServerApplication       : No active profile set, falling back to default profiles: default
2020-02-03 13:07:20.402  WARN 1 --- [           main] o.s.boot.actuate.endpoint.EndpointId     : Endpoint ID ‘service-registry‘ contains invalid characters, please migrate to a valid format.
2020-02-03 13:07:20.719  INFO 1 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=aab566da-2958-3e79-aa70-5d794b4e315b
2020-02-03 13:07:21.203  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean ‘org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration‘ of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$2920e78d] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-02-03 13:07:21.621  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9010 (http)
2020-02-03 13:07:21.638  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-02-03 13:07:21.639  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.30]
2020-02-03 13:07:21.727  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-02-03 13:07:21.728  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2630 ms
2020-02-03 13:07:21.988  WARN 1 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
2020-02-03 13:07:21.989  INFO 1 --- [           main] c.n.c.sources.URLConfigurationSource     : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2020-02-03 13:07:22.018  INFO 1 --- [           main] c.netflix.config.DynamicPropertyFactory  : DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@3c73951
2020-02-03 13:07:22.358 ERROR 1 --- [           main] o.s.b.web.embedded.tomcat.TomcatStarter  : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name ‘traceFilterRegistration‘ defined in class path resource [org/springframework/cloud/netflix/eureka/server/EurekaServerAutoConfiguration.class]: Unsatisfied dependency expressed through method ‘traceFilterRegistration‘ parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘javax.servlet.Filter‘ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value=httpTraceFilter)}
2020-02-03 13:07:22.405  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2020-02-03 13:07:22.413  WARN 1 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
2020-02-03 13:07:22.442  INFO 1 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug‘ enabled.
2020-02-03 13:07:22.778 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:156) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
        at com.topcheer.eureka.EurekaServerApplication.main(EurekaServerApplication.java:13) [classes!/:0.0.1-SNAPSHOT]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]

才发现是boot的版本太高了,和boot有冲突。。。

技术图片

 创建的时候默认最新的版本是2.2.4,需要改一下

以上是关于k8s中的Pod的状态CrashLoopBackOff的主要内容,如果未能解决你的问题,请参考以下文章

云原生之kubernetes实战k8s集群核心资源对象之Pod

Kubernetes之三 k8s中的pod

K8s Pod状态与容器探针

K8s -- Pod

k8s删除pod一直处于terminating状态

K8S故障排查指南:部分节点无法启动Pod资源-Pod处于ContainerCreating状态