Поды Kubernetes перешли на 0/2 во время обновления пула узлов, даже несмотря на то, что бюджеты сбоев были установлены на минимум 50%. Почему?

Я обновляю несколько кластеров AKS для приложения и тестирую флаг az aks nodepool upgrade--max-surge, чтобы ускорить процесс. Наша производственная среда имеет более 50 узлов, и при тактовой скорости на узел, которую я видел на наших низах, я предполагаю, что производство займет более 9 часов. При одном из более низких обновлений я запустил максимальный всплеск на 50%, что немного помогло увеличить скорость, и все развертывания сохраняли минимальное количество доступных модулей на уровне 50%.

Для этого последнего обновления я попробовал максимальный скачок 100%. В результате было создано 6 новых узлов (6 текущих узлов в пуле) в правильной версии... но затем он одновременно перенес каждое развертывание/модуль и сократил все до 0/2 модулей. Прежде чем я начал этот процесс, я удостоверился, что бюджет прерывания работы модуля для каждого отдельного развертывания установлен на минимально доступном уровне 50%. Это работало на всех моих других обновлениях, кроме этого, что для меня означает, что причиной является 100%-ный всплеск.

Я просто не могу понять, почему мой минимальный доступный процент был проигнорирован. Ниже приведены описания примера PDB и соответствующего развертывания.

Бюджет отключения пода:

Name:           myapp-admin                                                                                            
Namespace:      front-svc                                                                                               
Min available:  50%                                                                                                     
Selector:       role=admin                                                                                              
Status:                                                                                                                 
    Allowed disruptions:  1                                                                                             
    Current:              2                                                                                             
    Desired:              1                                                                                             
    Total:                2                                                                                             
Events:   

Развертывание (фрагмент):

Name:                   myapp-admin                                                                                   
Namespace:              front-svc                                                                                      
CreationTimestamp:      Wed, 26 May 2021 16:17:00 -0500                                                                
Labels:                 <none>                                                                                         
Annotations:            deployment.kubernetes.io/revision: 104                                                         
Selector:               agency=myorg,app=myapp,env=uat,organization=myorg,role=admin                                      
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable                                  
StrategyType:           RollingUpdate                                                                                  
MinReadySeconds:        15                                                                                             
RollingUpdateStrategy:  25% max unavailable, 1 max surge                                                               
Pod Template:                                                                                                          
  Labels:       agency=myorg                                                                                             
                app=myapp                                                                                             
                buildnumber=1234                                                                               
                env=uat                                                                                                
                organization=myorg                                                                                       
                role=admin                                                                                             
  Annotations:  kubectl.kubernetes.io/restartedAt: 2022-03-12T09:00:11Z                                                
  Containers:                                                                                                          
   myapp-admin-ctr: 

Есть ли что-то очевидное, что я делаю неправильно здесь?

Пул узлов, вероятно, не заботится о бюджете распределения, поскольку на самом деле это не родная вещь kubernetes. Если узла нет, он находится в принудительном распределении, от которого вас не защитит бюджет на сбои.

The Fool 17.03.2022 20:07
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
1
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

... a max surge value of 100% provides the fastest possible upgrade process (doubling the node count) but also causes all nodes in the node pool to be drained simultaneously.

Из официального документация. Возможно, вы захотите подумать о том, чтобы уменьшить максимальный всплеск.

Другие вопросы по теме