我们在使用 kubernetes/helm 进行 AWS 部署时遇到了问题,我们看到“Pod 沙箱已更改,它将被终止并重新创建”。以前没有发生过这种情况,但从我们最新的部署开始,我们使用 helm delete 删除了以前的部署,并使用 helm install 创建了新的部署。不确定这是否与我们对 AWS SQS 的新依赖或 kubertetes/helm/kops 版本的更新有关。同一 kubernetes 节点上还有其他 pod,并且它们工作正常。
这些 Pod 不断被杀死并重新启动,并重复以下消息:
- Pod 沙箱发生变化,它将被杀死并重新创建
- 杀死 ID 为 docker://xxx 的容器:需要杀死 Pod
- 后退重新启动失败的容器
- 同步 Pod 时出错
手动终止 pod 确实会像 k8s 那样启动新的 pod,但这并不能解决相关线程中一些人提到的问题。
CPU 和内存的值
资源: 限制: 中央处理器:100m 内存:128Mi 要求: 中央处理器:100m 内存:128Mi
版本信息:
- client version 1.9 (also tried 1.6 and 1.7)
- server version 1.7 (git vresion 1.7.2)
- helm vresion 2.7.2
- kops version 1.8.0
- Kernel Version: 4.4.102-k8s
- OS Image: Debian GNU/Linux 8 (jessie)
- Container Runtime Version: docker://1.12.6
- Kubelet Version: v1.7.2
- Kube-Proxy Version: v1.7.2
- Operating system: linux
- Architecture: amd64
已经检查了此错误的所有相关线程,但此问题似乎是针对不同的环境,并且我们未使用这些线程中列出的版本。
- https://stackoverflow.com/questions/46826164/kubernetes-pods-failing-on-pod-sandbox-changed-it-will-be-killed-and-re-create
- https://stackoverflow.com/questions/46922452/kubernetes-1-7-on-google-cloud-failedsync-error-syncing-pod-sandboxchanged-pod
任何有关查找根本原因或解决问题的指示都会非常有帮助。非常感谢。
最佳答案
修复结果是增加了内存限制。我们更改了 helm 使用的 value.yaml 文件(以下部分)并提高了限制...
资源:
limits:
cpu: 100m
memory: 128Mi <--- increased this value...
requests:
cpu: 100m
memory: 128Mi
希望显示的错误消息比“Pod 沙箱已更改,它将被终止并重新创建”更具体:-)
关于amazon-web-services - 带有 kubernetes 1.7.2 的 AWS 部署在 pod 中持续运行,被终止并重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47849502/