kubectl中“available”和“unavailable”的含义描述了部署

时间:2016-09-21 02:47:00

标签: kubernetes kubectl

准备情况探测成功与否确定吊舱准备好还是未就绪。如果我设置.spec.minReadySeconds = 60并且Readiness探测成功(.readinessProbe.initialDelaySeconds = 1),那么当我们创建部署超过1秒不到60秒时,pod进入就绪状态但部署的'状态'如同下面:

kubectl describe deployment readiness-minreadyseconds
Name:           readiness-minreadyseconds
Namespace:      default
CreationTimestamp:  Wed, 21 Sep 2016 10:34:42 +0800
Labels:         add=readiness-minreadyseconds
Selector:       name=readiness-minreadyseconds
Replicas:       2 updated | 2 total | 0 available | 2 unavailable
StrategyType:       RollingUpdate
MinReadySeconds:    45
RollingUpdateStrategy:  1 max unavailable, 1 max surge
OldReplicaSets:     <none>
NewReplicaSet:      readiness-minreadyseconds-536553145 (2/2 replicas created)
Events:
  FirstSeen LastSeen    Count   From                SubobjectPath   Type        Reason          Message
  --------- --------    -----   ----                -------------   --------    ------          -------
  2s        2s      1   {deployment-controller }            Normal      ScalingReplicaSet   Scaled up replica set readiness-minreadyseconds-536553145 to 2

我发现我们可以通过类型nodeport从容器访问资源,所以如果部署中有一些pod不可用,它会对我有什么影响?

1 个答案:

答案 0 :(得分:2)

这可能是对术语的误解。从deployment documentation开始,有一个:

  

.spec.minReadySeconds是一个可选字段,用于指定最小值   新创建的Pod应该准备好的秒数   没有任何容器崩溃,因为它被考虑   可用。

因此minReadySeconds设置为60,它需要持续60秒而不会被考虑任何崩溃&#34;可用&#34;。因此,您所看到的是,即使您的广告已标记为已准备好,但他们还不能满足minReadySeconds的条件。