kubernetes 部署中当前和可用的 pod 副本有什么区别?

What is the difference between current and available pod replicas in kubernetes deployment?

我正试图亲身体验 Kubernetes。我正在执行以下命令:

kubectl get deployment

我在输出中得到以下 headers:

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

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

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

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

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

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

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

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

  3. Up-to-date > Current?不,最新应该与当前相同,或者在部署更新期间低于当前。

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

我鼓励您完成部署更新和扩展 out/in,同时使用 watch 在控制器将当前状态收敛到所需状态时监视这些字段。