查看kubernetes中Deployment的状态

网友投稿 1535 2022-10-30

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

查看kubernetes中Deployment的状态

Deployment Status

deployment在其生命周期中会进入各种状态。回滚ReplicaSet可能是正在运行,也可能是complete,也可能是失败的进程。

Progressing Deployment

Kubernetes标记的deployment作为前进当执行下列任务之一:

deployment将创建一个新的ReplicaSet。deployment正在扩展其最新的ReplicaSet。deployment正在缩减其较旧的ReplicaSet。新Pod已准备就绪或可用(至少已准备好MinReadySeconds)。

您可以使用监视deployment的进度kubectl rollout status。

Complete Deployment

Kubernetes 具有以下特征时,将Deployment标记为complete:

与Deployment关联的所有副本均已更新为您指定的最新版本,这意味着您请求的所有更新均已完成。与deployment关联的所有副本均可用。没有运行用于deployment的旧副本。

您可以使用来检查deployment是否已完成kubectl rollout status。如果回滚成功完成,则kubectl rollout status返回零退出代码。

kubectl rollout status deployment.v1.apps/nginx-deployment

输出类似于以下内容:

Waiting for rollout to finish: 2 of 3 updated replicas are available...deployment.apps/nginx-deployment successfully rolled out$ echo $?0

Failed Deployment

尝试部署其最新的ReplicaSet可能会遇到麻烦,而没有完成。这可能是由于以下因素引起的:

配额不足准备就绪探针故障镜像拉取失败权限不足极限范围应用程序运行时配置错误

检测这种情况的一种方法是在“部署”规范中指定一个截止日期参数:(.spec.progressDeadlineSeconds)。.spec.progressDeadlineSeconds表示部署控制器在指示(处于部署状态)部署进度已停止之前等待的秒数。

以下kubectl命令设置规范progressDeadlineSeconds以使控制器在10分钟后报告部署进度不足:

kubectl patch deployment.v1.apps/nginx-deployment -p '{"spec":{"progressDeadlineSeconds":600}}'

输出类似于以下内容:

deployment.apps/nginx-deployment patched

一旦超过了最后期限,Deployment控制器就会将具有以下属性的DeploymentCondition添加到Deployment的.status.conditions:

Type=ProgressingStatus=FalseReason=ProgressDeadlineExceede

有关状态条件的更多信息,请参见Kubernetes API约定。

注意: Kubernetes不能对已停止的Deployment进行任何操作,只能使用来报告状态条件 Reason=ProgressDeadlineExceeded。较高级别的协调者可以利用它并采取相应的措施,例如,将Deployment回滚到其先前版本。

注意:如果您暂停部署,Kubernetes不会在指定的期限内检查进度。您可以在推出过程中安全地暂停部署并继续执行,而不会触发超出期限的条件。

由于设置的超时时间太短,或者由于其他任何类型的可被视为瞬态的错误,您的部署中可能会遇到瞬态错误。例如,假设您的配额不足。如果描述部署,您将注意到以下部分:

kubectl describe deployment nginx-deployment

输出类似于以下内容:

<...>Conditions: Type Status Reason ---- ------ ------ Available True MinimumReplicasAvailable Progressing True ReplicaSetUpdated ReplicaFailure True FailedCreate<...>

如果运行kubectl get deployment nginx-deployment -o yaml,则部署状态类似于以下内容:

status: availableReplicas: 2 conditions: - lastTransitionTime: 2016-10-04T12:25:39Z lastUpdateTime: 2016-10-04T12:25:39Z message: Replica set "nginx-deployment-4262182780" is progressing. reason: ReplicaSetUpdated status: "True" type: Progressing - lastTransitionTime: 2016-10-04T12:25:42Z lastUpdateTime: 2016-10-04T12:25:42Z message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: 2016-10-04T12:25:39Z lastUpdateTime: 2016-10-04T12:25:39Z message: 'Error creating: pods "nginx-deployment-4262182780-" is forbidden: exceeded quota: object-counts, requested: pods=1, used: pods=3, limited: pods=2' reason: FailedCreate status: "True" type: ReplicaFailure observedGeneration: 3 replicas: 2 unavailableReplicas: 2

最终,一旦超过了部署进度的最后期限,Kubernetes便会更新进度状态的状态和原因:

Conditions: Type Status Reason ---- ------ ------ Available True MinimumReplicasAvailable Progressing False ProgressDeadlineExceeded ReplicaFailure True FailedCreate

您可以通过缩减部署,缩减您可能正在运行的其他控制器或增加命名空间中的配额来解决配额不足的问题。如果满足配额条件,并且Deployment Controller然后完成Deployment部署,您将看到带有成功条件(Status=True和Reason=NewReplicaSetAvailable)的Deployment状态更新。

Conditions: Type Status Reason ---- ------ ------ Available True MinimumReplicasAvailable Progressing True NewReplicaSetAvailable

Type=Available有Status=True指你部署最小可用性。最低可用性由部署策略中指定的参数决定。Type=Progressing使用with Status=True表示您的Deployment处于部署的中间并且正在进行中,或者它已成功完成其进度,并且所需的最少新副本可用(请参阅该条件的原因以获得详细信息-在我们的情况下 Reason=NewReplicaSetAvailable,这意味着部署完成)。

您可以使用来检查部署是否无法进行kubectl rollout status。kubectl rollout status 如果部署已超过进度期限,则返回非零退出代码。

kubectl rollout status deployment.v1.apps/nginx-deployment

输出类似于以下内容:

Waiting for rollout to finish: 2 out of 3 new replicas have been updated...error: deployment "nginx" exceeded its progress deadline$ echo $?1

对失败的部署进行操作

适用于完整部署的所有操作也适用于失败的部署。如果需要在Deployment Pod模板中应用多个调整,则可以放大/缩小它,回滚到以前的版本,甚至暂停它。

上一篇:系统主要特点
下一篇:中国石化数据仓库系统的数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~