【问题标题】:What is the difference between current and available pod replicas in kubernetes deployment?Kubernetes 部署中当前和可用的 pod 副本有什么区别?
【发布时间】:2018-12-07 16:54:42
【问题描述】:
我正在尝试在 Kubernetes 上动手脚。我正在触发以下命令:
kubectl get deployment
我在输出中得到以下标题:
我在以下输出中找不到current 和available 列之间的区别?
我知道官方文档对这些字段中的每一个都做了简短的描述,但它没有回答我的以下问题:
-
Current Desired 是真的吗?
-
Up-to-Date Current 是真的吗?
-
Up-to-Date > Current 和 Up-to-Date Desired 是真的吗?
-
Available 总是 Current 或者它可以是 > Available?
简而言之,所有这些字段之间的关系是什么?
【问题讨论】:
标签:
deployment
kubernetes
kubernetes-deployment
kubernetes-cluster
【解决方案1】:
Deployment 对象指定您的 Deployment 的所需状态,而 Deployment Controller 将系统的当前状态驱动到所需状态。
Desired 字段指定您请求的副本数,而Current 字段指定当前在系统中运行的副本数。 Up-To-Date 字段表示与所需状态保持最新的副本数。 Available 字段显示通过就绪探测(如果已定义)的副本数。
Current 是否总是 Desired?不,在部署更新期间,电流可能大于预期。
Up-to-date 是否总是 Current?我相信这里的答案是肯定的。
是Up-to-date > Current?不,up-to-date 应该与当前相同,或者在部署更新期间低于当前版本。
Available 是否总是 Current?是的。
我鼓励您在控制器将当前状态收敛到所需状态时使用watch 监视这些字段,同时进行部署更新和横向扩展。