Поделиться через


Обновление кластера службы Azure Kubernetes (AKS)

Область применения: Azure Stack HCI, версия 23H2

В рамках управления жизненным циклом приложения и кластера может потребоваться выполнить обновление до последней доступной версии Kubernetes. Обновление включает переход на более новую версию Kubernetes, применение обновлений версии операционной системы (исправление) или и то, и другое. AKS Arc поддерживает обновление (или исправление) узлов в кластере рабочей нагрузки с помощью последних обновлений ОС и среды выполнения.

Все обновления выполняются непрерывно, последовательно, чтобы обеспечить непрерывную доступность рабочих нагрузок. При переносе в кластер нового рабочего узла Kubernetes с более новой сборкой ресурсы перемещаются со старого узла на новый. После успешного завершения старый узел выводится из эксплуатации и удаляется из кластера.

Подготовка к работе

Если вы используете Azure CLI, для работы с этой статьей требуется Azure CLI версии 2.34.1 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам нужно установить или обновить CLI, см. статью Установка Azure CLI.

Проверка наличия доступных обновлений

Проверьте, какие выпуски Kubernetes доступны для кластера, с помощью следующей команды:

az aksarc get-upgrades --resource-group myResourceGroup --name myAKSCluster

В следующем примере выходных данных показана текущая версия 1.24.11 и список доступных версий в разделе upgrades:

{  
  "agentPoolProfiles": [  
    {  
      "kubernetesVersion": "1.24.11",  
      "upgrades": [  
        {  
          "kubernetesVersion": "1.25.7"  
        }  
      ]  
    }  
  ],  
  "controlPlaneProfile": {  
    "kubernetesVersion": "1.24.11",  
    "name": "aksarc-testupgrade",  
    "osType": "Linux",  
    "upgrades": [  
      {  
        "kubernetesVersion": "1.25.7"  
      }  
    ]  
  },  
  ...  
  "provisioningState": "Succeeded",  
  ...  
}

Обновление версии Kubernetes

При обновлении поддерживаемого кластера AKS нельзя пропустить дополнительные версии Kubernetes. Все обновления необходимо выполнять последовательно по основному номеру версии. Например, разрешено обновление с 1.24.x до 1.25.x или с 1.25.x до 1.26.x . От 1.24.x до 1.26.x не разрешено.

Примечание

Если исправление не указано, кластер автоматически обновляется до последней общедоступной версии указанной дополнительной версии. Например, если установить значение --kubernetes-version1.25 , кластер будет обновляться до версии 1.25.7.

Вы можете обновить кластер с помощью следующей команды:

az aksarc upgrade \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --kubernetes-version <KUBERNETES_VERSION>

Убедитесь, что обновление прошло успешно, используя show команду :

az aksarc show --resource-group myResourceGroup --name myAKSCluster

В следующем примере выходных данных показано, что теперь кластер работает под управлением версии 1.25.7:

{  
"extendedLocation": {  
  "name":
"/subscriptions/<subscription>/resourcegroups/<resource group>/providers/microsoft.extendedlocation/customlocations/<custom
location>",  
  "type": "CustomLocation"  
},  
"id": "/subscriptions/<subscription>/resourceGroups/<resource group>/providers/Microsoft.Kubernetes/connectedClusters/aksarc-testupgrade/providers/Microsoft.HybridContainerService/provisionedClusterInstances/default",  
"name": "default",  
"properties": {  
  "agentPoolProfiles": [  
    {  
    }  
  ],  
  "controlPlane": {  
    "availabilityZones": null,  
    "controlPlaneEndpoint": {  
      "hostIp": null,  
      "port": null  
    },  
    "count": 1,  
    "linuxProfile": {  
      "ssh": {  
        "publicKeys": null  
      }  
    },  
    "name": null,  
    "nodeImageVersion": null,  
    "osSku": "CBLMariner",  
    "osType": "Linux",  
    "vmSize": "Standard_A4_v2"  
  },  
  "kubernetesVersion": "1.25.7",  
...  
  "provisioningState": "Succeeded",  
  ...  
},  
....  
"type": "microsoft.hybridcontainerservice/provisionedclusterinstances"  
}

Важно!

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

Во время операции обновления индикаторы provisioningState и currentState отображают сообщение Об обновлении, отражающее текущий процесс. Однако если время ожидания операции истекло, provisioningStateотображается сбой, а currentState обновление продолжает отображаться , как обновление продолжается в фоновом режиме. Никаких действий не требуется; обновление продолжается до завершения.

Обновление версии операционной системы (ОС)

Обновление рабочих узлов до более новой версии образа узла без изменения версии Kubernetes работает только в том случае, если для нового образа не требуется другая версия Kubernetes. В настоящее время AKS Arc не поддерживает обновления только для образа узла во всех версиях Kubernetes, которые поддерживаются. Если необходимо обновить образ узла, необходимо обновить кластер до последней версии Kubernetes, чтобы обеспечить включение всех обновлений образа узла.

Важно!

При попытке node-image-only использовать флаг вы получите сообщение о том, что эта функция еще не поддерживается.

Дальнейшие действия