уточнить.
Есть managed k8s.
Включены всякие штуки:
- автоскейлер нод
- hpa
- по 2-3 реплики аппликейшн
- load balancer
и многое другое.
Наблюдаю иногда проблему, когда например меняю что-то для нод группы и запускаю обновление.
Новые ноды поднимаются, Старые ноды уходят в NotReady,SchedulingDisabled. Ну всё понятно.
И именно в момент смены нод(например я меняю AMI) у меня пропадает трафик на апликейшн.
То есть такое ощущение, что даже если у меня 3 реплики и все они, к слову, на отдельных нодах, висят на тех нодах, которые внезапно обновляются, то эвикщн происходит достаточно быстро сразу для всех реплик. То есть сразу 3 ноды, где висят три разные реплики, кордонятся.
И получается не спасает ни раундробин, ни количество реплик.
Правильно ли я понимаю, что в моем кейсе меня спасёт только pdb?
Только PDB.
А ты уверен что у тебя реплики на разных нодах?)
Уверен, смотрю через k get pods -A -o wide | grep PODNAME в момент обновления нод группы и там это чётко видно
Правильно
Для екс есть такое https://github.com/hellofresh/eks-rolling-update
pdb must have если роляешь так ноды, либо выставляешь что бы ноды роллились по одной
Справедливо ли, что PDB делать minAvailable=N-1 где N=replicas на deployment?
Я делаю N потому что обычно заню сколько мне минимально реплик надо для функционирования и сколько из них нельзя выселять
нет, лучше N+1 где N - минимальное количество нужно для работоспособности
Обсуждают сегодня