繁体   English   中英

kubectl rollout status - 命令何时完成?

[英]kubectl rollout status - When the command complete?

目前我在我的管道中使用它

kubectl apply -f deployment.yaml && kubectl rollout status -f deployment.yaml

有了这个在yaml

      readinessProbe:
        tcpSocket:
          port: 90
        initialDelaySeconds: 120
        periodSeconds: 10
        timeoutSeconds: 10
        failureThreshold: 1
        successThreshold: 1
      livenessProbe:
        tcpSocket:
          port: 90
        initialDelaySeconds: 120
        periodSeconds: 20
        timeoutSeconds: 2
        failureThreshold: 1
        successThreshold: 1

对我来说,kubectl rollout 运行了很长时间,阻塞了部署管道。 文档

默认情况下,'rollout status' 会观察最新的 rollout 状态,直到它完成

我的问题:

1/ 哪些操作是有助于部署“直到完成”的部分(资源创建、资源拆除?...)

2/ readinessProbe 和 livenessProbe 对部署时间有影响吗

其标准kubectl源中 如果出现以下情况,则部署是“完成”的:

  • 它没有超时
  • 它的更新副本计数至少是它的期望副本计数(每个新 pod 都已创建)
  • 它的当前副本数量最多是它的更新副本数量(每个旧 pod 都已被销毁)
  • 它的可用副本计数至少是它的更新副本计数(每个新 Pod 都在运行)

您可以使用kubectl get deployment -wkubectl get pod -w来实时观察实际发生的部署; kubectl get -w选项kubectl get -w给定的资源并在它们发生变化时打印出一个新行。 您将看到以下序列发生(使用默认部署设置,“小型”部署一次一个):

  1. 创建了一个新的 Pod
  2. 新 Pod 通过其探测并准备就绪
  3. 一个旧的 pod 被终止
  4. 旧的pod实际上退出并被删除

因此,对于kubectl rollout status deployment/...完成,所有这些步骤都必须发生——创建新的 pod,新的 pod 都通过健康检查,销毁旧的 pod——对于部署中的每个副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM