当资源不足时,kubernetes开始重新创建pod,但新的pod也会失败,因此它们的数量会不断增加。群集变得不可用。这似乎是不合逻辑的行为。有可能预防吗?是否可以在不删除所有内容的情况下恢复?
light@o-node0:~/lh-orchestrator$ k get pod
NAME READY STATUS RESTARTS AGE
aa344-detect-5cd757f65d-8kz2n 0/1 ContainerStatusUnknown 536 (62m ago) 46h
bb756-detect-855f6bcc78-jnfzd 0/1 ContainerStatusUnknown 8 (59m ago) 75m
aa344-analyz-5cc6c59d6c-rchkm 0/1 ContainerStatusUnknown 1 46h
lh-graphql-77fc996db5-8qcxl 0/1 ContainerStatusUnknown 1 (2d ago) 2d
lh-pgadmin-5b598d4d4-shjbz 0/1 ContainerStatusUnknown 1 2d
bb756-analyz-8cd7c48f7-k2xh9 0/1 ContainerStatusUnknown 1 75m
lh-postgres-698bc448bd-9vkqp 0/1 ContainerStatusUnknown 1 2d
lh-pgadmin-5b598d4d4-c4ts4 0/1 ContainerStatusUnknown 1 54m
lh-graphql-77fc996db5-btvzx 0/1 ContainerStatusUnknown 1 54m
lh-postgres-698bc448bd-99m55 0/1 ContainerStatusUnknown 1 54m
aa344-detect-5cd757f65d-qmvcc 0/1 ContainerStatusUnknown 1 58m
bb756-detect-855f6bcc78-7lc7g 0/1 ContainerStatusUnknown 1 56m
lh-graphql-77fc996db5-7lbms 1/1 Running 0 34m
lh-pgadmin-5b598d4d4-l6f7s 0/1 ContainerStatusUnknown 1 34m
aa344-analyz-5cc6c59d6c-78ltt 0/1 ContainerStatusUnknown 1 (17m ago) 55m
lh-postgres-698bc448bd-gjbf2 0/1 ContainerStatusUnknown 1 34m
aa344-detect-5cd757f65d-cbspd 0/1 ContainerStatusUnknown 1 33m
bb756-detect-855f6bcc78-qvqsf 0/1 ContainerStatusUnknown 1 32m
lh-pgadmin-5b598d4d4-4znww 1/1 Running 0 17m
lh-postgres-698bc448bd-xxm28 1/1 Running 0 16m
aa344-analyz-5cc6c59d6c-h7vfc 1/1 Running 3 (9m41s ago) 16m
bb756-analyz-8cd7c48f7-4tdcp 1/1 Running 7 (10m ago) 54m
bb756-detect-855f6bcc78-fgpzx 0/1 Pending 0 2s
bb756-detect-855f6bcc78-t4p4q 0/1 ContainerStatusUnknown 1 16m
aa344-detect-5cd757f65d-cd6gl 0/1 ContainerStatusUnknown 1 16m
aa344-detect-5cd757f65d-dwhf6 0/1 Pending 0 1s
1条答案
按热度按时间ej83mcc01#
在删除pods之前,请检查Pod无法创建的原因,如果是内存问题,请执行以下步骤:
1.如果你正在使用docker,运行docker system prune -a来清理docker占用的一些空间,然后节点将获得一些空间,清空节点并重新启动docker
1.任何容器都可以向文件系统写入任意数量的存储。设置一个quota(
limits.ephemeral-storage, requests.ephemeral-storage
)来限制它。1.您可能需要增加存储空间,因为Kubernetes需要更多空间。
**对于部署:**缩减部署,以便在删除Pod时不会尝试创建新Pod。如果你缩小比例,Kubernetes会删除pod。
现在扩展部署,以便kubernetes创建上一个命令的pod的新副本。
您也可以通过运行以下命令删除所有处于失败阶段的Pod,而无需扩展部署:
您可以在Oren Ninio的blog中找到更多有关删除pod的方法
通常,建议使用autoscaler来管理部署。