Я пытаюсь выполнить последовательное обновление развертывания, но все еще получаю около 2 секунд простоя. Я неправильно настроил свой yaml? Я также использую посла в качестве шлюза API и не совсем уверен, связана ли проблема со шлюзом API или с развертыванием.
Я написал простой сценарий оболочки, который запускает завиток каждую секунду, и у меня всегда есть около 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

вы YAML, кажется, в порядке, я подозреваю, что 2-секундное время простоя может быть связано с TCP-соединением, которое не сбрасывалось должным образом на заменяемый модуль.
Можете ли вы добавить prestop hook в свой контейнер, чтобы убедиться, что все TCP-соединения сброшены перед завершением работы модуля?
maxUnavailable должно быть количество модулей, которые могут быть недоступны одновременно, а не процент этих модулей. Я предполагаю, что, поставив знак % на значение, вы вызовете ошибку синтаксического анализа. Что приводит к такому поведению.