我正在尝试对部署进行滚动更新,但停机时间仍然约为2秒。我是否配置了Yaml?我也将大使用作API网关,但不能完全确定问题出在API网关还是部署中。
我编写了一个简单的shell脚本,该脚本每秒运行一次curl,并且使用此配置,我总是有大约2秒钟的停机时间。非常感谢您的帮助。
这是我的相关配置。
部署方法:
kubectl apply -f MY_DEPLOYMENT.yaml
部署摘要:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-service-rf
spec:
selector:
matchLabels:
app: web-service-rf
replicas: 2 # tells deployment to run 2 pods matching the template
strategy:
rollingUpdate:
maxSurge: 4
maxUnavailable: 0%
活力与准备就绪调查:
livenessProbe:
httpGet:
path: /health/liveness
port: 80
initialDelaySeconds: 5
periodSeconds: 3
readinessProbe:
httpGet:
path: /health/readiness
port: 80
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
答案 0 :(得分:1)
您认为YAML很好,我怀疑2秒钟的停机时间可能是由于TCP连接未能正确冲洗到要更换的Pod上。
您可以在容器中添加一个prestop钩子以确保在终止pod之前清空所有TCP连接吗?
答案 1 :(得分:0)
maxUnavailable
应该是无法同时使用的广告连播数量,而不是这些广告连播的百分比。我的猜测是,通过在值上加上%
,会导致解析错误。导致这种行为。