Atualizar um cluster do Serviço de Kubernetes do Azure (AKS)
Aplica-se a: Azure Local, versão 23H2
Como parte do gerenciamento do ciclo de vida do aplicativo e do cluster, talvez você queira atualizar para a versão mais recente disponível do Kubernetes. Uma atualização envolve uma mudança para uma versão mais recente do Kubernetes, a aplicação de atualizações de versão do sistema operacional (SO) (aplicação de patches) ou ambos. O AKS Arc dá suporte à atualização (ou aplicação de patches) de nós em um cluster de carga de trabalho com as atualizações mais recentes do sistema operacional e do runtime.
Todas as atualizações são executadas de maneira contínua e contínua para garantir a disponibilidade ininterrupta das cargas de trabalho. Quando um novo nó de trabalho do Kubernetes com uma compilação mais recente é trazido para o cluster, os recursos são movidos do nó antigo para o novo nó. Depois que isso for concluído com êxito, o nó antigo será desativado e removido do cluster.
Antes de começar
Se você estiver usando a CLI do Azure, este artigo vai requerer a CLI do Azure versão 2.34.1 ou posterior. Execute az --version
para encontrar a versão. Se você precisar instalar ou atualizar a CLI, consulte Instalar a CLI do Azure.
Verificar se há atualizações disponíveis
Verifique quais versões do Kubernetes estão disponíveis para o cluster usando o seguinte comando:
az aksarc get-upgrades --resource-group myResourceGroup --name myAKSCluster
A saída de exemplo a seguir mostra a versão atual como 1.24.11 e lista as versões disponíveis em 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",
...
}
Atualizar a versão do Kubernetes
Ao atualizar um cluster do AKS com suporte, você não pode ignorar as versões secundárias do Kubernetes. Você deve realizar toas as atualizações sequencialmente por número de versão principal. Por exemplo, atualizações de 1.24.x para 1.25.x ou 1.25.x para 1.26.x são permitidas. 1.24.x a 1.26.x não são permitidos.
Observação
Se nenhum patch for especificado, o cluster será automaticamente atualizado para o patch de GA mais recente da versão secundária especificada. Por exemplo, a configuração --kubernetes-version
como 1.25 resulta na atualização do cluster para 1.25.7.
Você pode atualizar seu cluster usando o seguinte comando:
az aksarc upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version <KUBERNETES_VERSION>
Confirme se a atualização foi bem-sucedida usando o show
comando:
az aksarc show --resource-group myResourceGroup --name myAKSCluster
A saída de exemplo a seguir mostra que o cluster agora executa a versão 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"
}
Importante
Quando você executa uma atualização de uma versão sem suporte que ignora duas ou mais versões secundárias, a atualização não pode garantir a funcionalidade adequada. Se sua versão estiver muito desatualizada, recomendamos que, em vez de atualizar, você recrie seu cluster.
Durante uma operação de atualização, os provisioningState
indicadores e currentState
exibem uma mensagem de atualização para refletir o processo em andamento. No entanto, se a operação atingir o tempo limite, provisioningState
mostrará Falha, enquanto currentState
continua a mostrar Atualizando à medida que a atualização continua em segundo plano. Nenhuma ação é necessária; A atualização continua até ser concluída.
Atualizar a versão do sistema operacional (SO)
A atualização dos nós de trabalho para uma versão mais recente da imagem do nó sem alterar a versão do Kubernetes só funcionará se a nova imagem não exigir uma versão diferente do Kubernetes. Atualmente, o AKS Arc não dá suporte a atualizações somente de imagem de nó em todas as versões do Kubernetes com suporte. Se você precisar atualizar a imagem do nó, deverá atualizar o cluster para a versão mais recente do Kubernetes para garantir que todas as atualizações da imagem do nó sejam incorporadas.
Importante
Ao tentar usar o node-image-only
sinalizador, você recebe uma mensagem indicando que esse recurso ainda não é suportado.