Для начала приведу несколько примеров, которые могут быть полезны в вашем случае:
- Пример .yaml того, как обновляется
spec:
minReadySeconds: 60
progressDeadlineSeconds: 600
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 50%
maxUnavailable: 50%
minReadySeconds : время загрузки вашего приложения, Kubernetes ждет определенного времени до следующего создания модуля. За
пример minReadySeconds равен 60, то после того, как Pod стал здоровым,
Развертывание должно ждать 60 секунд для обновления следующего модуля.
progressDeadlineSeconds Значение времени ожидания для обновления одного модуля в этом примере 10 минут. Если развертывание не удается выполнить в 10
минут, затем развертывание помечается как неудачное и завершено, а также
всю следующую работу никогда не вызывать.
maxSurge : параметр maxSurge определяет, сколько дополнительных ресурсов может быть создано во время развертывания. (Абсолютное значение или%)
maxUnavailable : параметр maxUnavailable устанавливает максимальное количество модулей, которые могут быть недоступны во время прокатки
обновление. (Абсолютное значение или%)
- Пример .yaml Живучесть и Готовность
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 60
timeoutSeconds: 1
periodSeconds: 10
failureThreshold: 3
Приведенный выше манифест сконфигурировал livenessProbes, которые подтверждают, правильно ли работает контейнер.
Он проверяет работоспособность, используя HTTP-запрос GET к / healthz с портом 8080.
Зонд устанавливает initialDelaySeconds = 60, что означает, что он не будет
вызываться до 60 секунд после того, как все контейнеры в контейнере
создано. И timeoutSeconds = 1 было настроено, это означает, что зонд
должен ответить в течение 1 секунды. periodSeconds = 10 было
настроено, это означает, что зонд вызывается каждые 10 секунд. Если больше
чем 3 зонда не удалось (failThreshold = 3), контейнер будет
считается нездоровым и не удалось и перезагрузите.
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 120
timeoutSeconds: 5
periodSeconds: 10
failureThreshold: 3
Вышеуказанный показатель готовности более важен, чем датчик живучести в
производственная среда. ReadinessProbe является подтверждение того, является ли
Сервис может быть приемлемым или нет. Если этот зонд не удался, внутренний
loadbalancer никогда не отправляет трафик на этот модуль. Только удалось
зонд, трафик к этому модулю начнется.