4

我正在尝试弄脏 Kubernetes。我正在触发以下命令:

kubectl get deployment

我在输出中得到以下标题:

kubectll 获取部署

我在以下输出中找不到current和列之间的区别?available

我知道官方文档对这些字段中的每一个都做了一个简短的描述,但它没有回答我的以下问题:

  1. Current<=是Desired真的吗?
  2. Up-to-Date<=是Current真的吗?
  3. Up-to-Date>CurrentUp-to-Date<=是Desired真的吗?
  4. 总是Available<=Current或者它可以是 > Available

简而言之,所有这些领域之间的关系是什么?

4

1 回答 1

11

Deployment 对象指定了您的 Deployment 的期望状态,而 Deployment Controller 将系统的当前状态驱动到期望的状态。

Desired字段指定您要求的副本数,而该Current字段指定当前在系统中运行的副本数。该Up-To-Date字段指示与所需状态保持最新的副本数。该Available字段显示通过就绪探测(如果已定义)的副本数。

  1. 总是Current<= Desired?不,在部署更新期间,电流可能大于预期。

  2. 总是Up-to-date<= Current?我相信这里的答案是肯定的。

  3. Up-to-date>Current吗?不,在部署更新期间,up-to-date 应该与 current 相同,或低于 current。

  4. 总是Available<= Current?是的。

我鼓励您在使用watch控制器将当前状态收敛到所需状态时监控这些字段时进行部署更新和横向扩展/横向扩展。

于 2018-06-28T17:43:04.920 回答