我在kubernetes中为我的负载均衡器服务使用默认部署策略,当我描述我的部署时,该策略如下:
Replicas: 2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds:0 RollingUpdateStrategy:1个最大不可用,1个最大喘振
因此,根据描述,不应有任何停机时间。但是,该服务仍然存在停机时间。 如何确保停机时间为零?
答案 0 :(得分:1)
据我所知,您正在使用Rolling Updates
的as fast as possible
方法。
虽然这是一个很好的方法,但最好使用Replicas: 3
,因为在更新过程中,您可能最终要减少2 pods
。
您应实现类似于以下内容的ReadinessProbe
:
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
initialDelaySeconds
:容器启动后,启动就绪探针之前的秒数。periodSeconds
:执行探测的频率。默认为10秒。successThreshold
:探测失败的最小连续成功次数。默认为1。我还建议您阅读Enable Rolling updates in Kubernetes with Zero downtime,因为它们很好地解释了滚动更新的用法。