Kubernetes部署中当前和可用的Pod副本之间有什么区别?

时间:2018-06-28 14:42:49

标签: deployment kubernetes kubernetes-deployment kubernetes-cluster

我正在尝试弄清Kubernetes。我正在执行以下命令:

kubectl get deployment

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

kubectll get deployment

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

我知道官方文档对每个字段都有一个简短的描述,但是并不能回答我的以下问题:

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

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

1 个答案:

答案 0 :(得分:4)

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?是的。

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