复制集失败的 Kubernetes 入口控制器部署循环

时间:2021-07-05 07:44:02

标签: kubernetes google-kubernetes-engine kubernetes-ingress nginx-ingress replicaset

这个周末我在生产中遇到了一些问题,我需要一些帮助:

周六,我收到一条提醒,我的一个集群(托管在 Google Cloud 上)中的所有应用都停止接收流量。

我开始寻找,结果发现我在创建 Ingress 控制器 pod 时有一个 CrashLoopBackOff
我尝试了几件事,最后设法修复它,但现在虽然它正在工作,但它一直处于奇怪的状态。

现在我有 2 个 replicasets 而不是一个,其中一个正确创建了 pod,这就是为什么它可以工作但另一个仍然处于错误循环中:

NAME                                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-ingress-nginx-ingress-7855         1         1         0       33h
replicaset.apps/nginx-ingress-nginx-ingress-7b8b         1         1         1       34h
NAME                                               READY   STATUS             RESTARTS   AGE
pod/nginx-ingress-nginx-ingress-7855               0/1     CrashLoopBackOff   397        33h
pod/nginx-ingress-nginx-ingress-7b8b               1/1     Running            12         34h

奇怪的是,如果我描述入口控制器的部署,我会看到以下内容:

OldReplicaSets:  nginx-ingress-nginx-ingress-7b8b (1/1 replicas created)
NewReplicaSet:   nginx-ingress-nginx-ingress-7855 (1/1 replicas created)

如您所见,新的 Replicaset 是创建失败的 Pod 的,而旧的则是正常工作的。 我的第一个想法是通过执行 kubectl -n service rollout restart deployment ${DEPLOYMENT_NAME} 重新启动部署,但现在我担心剩下的状态是 2 Replicasets 失败...

此外,我无法删除失败的 Replicasets,因为它再次自动创建并出现相同的问题。

Docker 镜像对于 Replicasets 也是相同的:nginx/nginx-ingress:1.10.0

所以我的问题是我无法清理“损坏的”Replicasets。任何想法将不胜感激!

谢谢!

0 个答案:

没有答案