我们有一个EKS集群1.21(我们很快将其升级到1.24),其中Pod似乎定期重新启动,我检查了日志和内存使用情况,但没有看到任何可以指向重新启动原因的东西。
我在分离舱的事件中看到了这一点
LAST SEEN TYPE REASON OBJECT MESSAGE
52m Warning Unhealthy pod/backend-6cc49d746-ztnvv Readiness probe failed: Get "http://192.168.29.43:80/users/sign_in": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
52m Warning Unhealthy pod/backend-6cc49d746-ztnvv Readiness probe failed: Get "http://192.168.29.43:3000/users/sign_in": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
52m Warning Unhealthy pod/backend-6cc49d746-ztnvv Liveness probe failed: Get "http://192.168.29.43:3000/users/sign_in": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
52m Warning Unhealthy pod/backend-6cc49d746-ztnvv Liveness probe failed: Get "http://192.168.29.43:80/users/sign_in": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
我的就绪和活跃探测器只是通过加载登录页面进行检查。这已经工作了很长一段时间,但突然我们注意到重新启动计数
livenessProbe:
failureThreshold: 3
httpGet:
path: /users/sign_in
port: 80
scheme: HTTP
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
name: nginx
ports:
- containerPort: 80
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /users/sign_in
port: 80
scheme: HTTP
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
我看到这一点时,我描述的吊舱时,其在重新启动模式
Containers:
1:
Container ID: docker://cf5b2086db6d55f
Image: 60
Image ID: 1
Port: 3000/TCP
Host Port: 0/TCP
State: Running
Started: Sun, 17 Sep 2023 17:01:21 +0200
Last State: Terminated
Reason: Error
Exit Code: 137
Started: Sun, 17 Sep 2023 16:01:21 +0200
Finished: Sun, 17 Sep 2023 17:01:18 +0200
Ready: True
Restart Count: 3
看起来退出代码137
是当容器正在使用更多的内存,但我没有指定任何内存限制,它使用的默认值是什么?会不会是内存问题导致了重启?
我不知道在什么方向调查,以解决这个问题,任何帮助将是伟大的。
1条答案
按热度按时间ih99xse11#
由于错误显示 “Client. received while waiting header”,这意味着Kubernetes认为探测失败,因为它没有在指定时间内响应。
所有需要做的就是将livenessProbe和readinessProbe的timeoutSeconds增加到10秒。
**timeoutSeconds:**此参数是活动探测器和就绪探测器配置的一部分。它指定探测超时的秒数。默认值为1秒。如果探测器在指定的timeoutSeconds内没有响应,Kubernetes会认为探测器失败。