我正在使用 k8s 部署我的 docker 应用程序。
一旦声明应用程序需要 20-30 秒才能准备好,应用程序很大,启动时需要一些时间。
开机平均时间为 20-30 秒。我想在滚动更新期间等待 60 秒。因为现在,旧 pod 在启动新应用程序(在新 pod 中)时终止。
我该怎么做?
我正在使用 k8s 部署我的 docker 应用程序。
一旦声明应用程序需要 20-30 秒才能准备好,应用程序很大,启动时需要一些时间。
开机平均时间为 20-30 秒。我想在滚动更新期间等待 60 秒。因为现在,旧 pod 在启动新应用程序(在新 pod 中)时终止。
我该怎么做?
在 pod spec 中配置readiness probe 和 startup probefailureThreshold * periodSeconds
足够长的时间来覆盖最坏情况的启动时间。例如。
ports:
- name: readiness-port
containerPort: 8080
hostPort: 8080
readinessProbe:
httpGet:
path: /healthz
port: readiness-port
failureThreshold: 1
periodSeconds: 10
startupProbe:
httpGet:
path: /healthz
port: readiness-port
failureThreshold: 30
periodSeconds: 10