in Kubernetes

Kubernetes存活控针(livenessProbe)导致容器不断重启的问题解决

小结

Kubernetes存活控针导致容器不断重启,进行了解决。

问题

项目部署中有一个容器启动速度相当慢,大概要3分钟以上,在容器的配置中使用了livenessProbe (存活控针)和readinessProbe,如下:

livenessProbe:
  httpGet: 
    path: $HEALTH_URL  
    port: $PORT       
    scheme: HTTP      
  initialDelaySeconds: 30  
  timeoutSeconds: 5        
  periodSeconds: 10        
  successThreshold: 1     
  failureThreshold: 5     
readinessProbe:
  httpGet:
    path: $HEALTH_URL
    port: $PORT
    scheme: HTTP
  timeoutSeconds: 5
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1  
  failureThreshold: 5

由于容器启动速度慢,livenessProbe (存活控针)会认为容器不能工作,对其进行重启,进行无限循环的重启中。

解决

参考稀土掘金:容器无限重启?会不会是 K8s 探针配置有问题华为云: 存活探针(Liveness Probe),这两篇写得相当详细。
添加startupProbe可以解决问题,也就是在容器启动之后livenessProbe (存活控针)和readinessProbe才发挥作用。

startupProbe:
  httpGet: 
    path: $HEALTH_URL  
    port: $PORT       
    scheme: HTTP      
  initialDelaySeconds: 5
  timeoutSeconds: 5        
  periodSeconds: 10        
  successThreshold: 1     
  failureThreshold: 100   
livenessProbe:
  httpGet: 
    path: $HEALTH_URL  
    port: $PORT       
    scheme: HTTP      
  initialDelaySeconds: 30  
  timeoutSeconds: 5        
  periodSeconds: 10        
  successThreshold: 1     
  failureThreshold: 5     
readinessProbe:
  httpGet:
    path: $HEALTH_URL
    port: $PORT
    scheme: HTTP
  timeoutSeconds: 5
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1  
  failureThreshold: 5

参考

稀土掘金:容器无限重启?会不会是 K8s 探针配置有问题
华为云: 存活探针(Liveness Probe)

Write a Comment

Comment