我使用Helm图表在AWS上的Kubernetes集群中部署了Hashicorp的Vault .
部署中的副本数指定为 3
.
在这3个 beans 荚中, 1
已准备就绪( 1/1
),而其他两个复制 beans 荚尚未准备就绪( 0/1
) . 我杀死了现成的吊舱,虽然预计Kubernetes将部署一个新的吊舱来替换它,但它部署了两个新的吊舱 .
现在我有两个准备好的pod和两个没有准备好的pod . 在删除其中一个pod时,现在Kubernetes只重建一个pod . 所以我有 4
而不是 3
pods用于我的保险库部署 . 这背后可能是什么原因,我们如何防止这种情况?
2 回答
当你遇到这样的问题时,你应该这样做
并查看输出的下半部分
Events
.你的pod无法启动的一些原因可能是:
没有可用于您的请求的足够资源的节点
没有可用的卷
一些反亲和规则和节点不足,因此调度程序无法将节点分配给您的pod .
您的部署无法正常工作,因为在使用s3存储后端时HA(高可用性)不可用 . 您需要Hashicorp的Consul或AWS的DynamoDB,或者需要不同的后端提供商 . 如果您坚持使用s3后端提供程序,请将副本数更改为1 .
至于为什么你看到4个pod而不是3个,你需要提供更多细节 . 粘贴
kubectl get pods -l app=vault
的输出以及kubectl describe deploy -l app=vault
,我将更新此答案 .我只能推测它是什么
maxSurge
属性允许滚动更新扩展到所需的副本数量之外 . 它默认为25%,向上舍入,在您的情况下将是一个额外的1个窗格 .删除一个
Running (1/1)
pod以及其他pod的NotReady状态可能会使您的部署处于"rolling update"状态或沿着这些行的某些状态,这使您的部署可以扩展到其maxSurge
设置 .