我已经使用Helm图表在其AWS的Kubernetes集群中部署了Hashicorp的Vault。
部署中的副本数指定为secondaryValue
。
在这3个容器中,3
已准备就绪(1
),而其他两个副本容器尚未就绪(1/1
)。
我杀死了准备就绪的Pod,虽然预计Kubernetes会部署一个新Pod来替换它,但它部署了两个新Pod。
现在我有两个准备好的豆荚和两个尚未准备好的豆荚。现在,在删除这些容器之一时,Kubernetes仅重新创建一个容器。因此,我的保管库部署使用0/1
而不是4
吊舱。
造成这种情况的原因可能是什么?我们如何防止这种情况发生?
答案 0 :(得分:1)
您的部署不起作用,因为使用s3存储后端时HA(高可用性)不可用。您将需要Hashicorp的Consul或AWS的DynamoDB,或为此的其他后端提供商。如果您坚持使用s3后端提供程序,请将副本数更改为1。
至于为什么看到4个而不是3个,您需要提供更多详细信息。粘贴kubectl get pods -l app=vault
和kubectl describe deploy -l app=vault
的输出,然后我将更新此答案。
我只能猜测它的价值。对于Deployment对象,有一个maxSurge
属性,该属性允许滚动更新以扩大到所需数量的副本之外。默认为25%(四舍五入),在您的情况下为1个额外的容器。
最大浪涌
.spec.strategy.rollingUpdate.maxSurge
是一个可选字段,该字段 指定可以在其中创建的Pod的最大数量 所需数量的豆荚。该值可以是绝对数字(对于 例如5)或所需Pod的百分比(例如10%)。的 如果MaxUnavailable为0,则值不能为0。绝对数字为 根据四舍五入后的百分比计算得出。默认值为 25%。例如,当此值设置为30%时,新的ReplicaSet可以是 滚动更新开始时立即放大,这样 新旧Pod的总数不超过所需Pod的130%。 一旦旧Pod被杀死,新的ReplicaSet就可以扩大规模 此外,确保随时运行的Pod总数 更新期间最多只能有130%的所需Pod。
有可能删除一个Running (1/1)
吊舱以及其他吊舱的NotReady状态,使您的部署处于“滚动更新”或类似状态,从而使您的部署得以扩展为其maxSurge
设置。
答案 1 :(得分:0)
遇到此类问题时,您应该
<span>
<i class="fa fa-clock-o" aria-hidden="true"></i>
{{story.utcDate | displayDate }}
</span>
,然后查看输出kubectl describe pod <PROBLEMATIC_POD>
的下部。
您的广告连播无法启动的某些原因可能是: