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


Практическое руководство по обновлению кластера Службы Azure Kubernetes (AKS)

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

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

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

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

Если вы используете Azure CLI, для этой статьи требуется Azure CLI версии 2.34.1 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам нужно установить или обновить ИНТЕРФЕЙС командной строки, см. статью "Установка 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-version 1.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 флаг вы получите сообщение, указывающее, что эта функция еще не поддерживается.

Следующие шаги