Partilhar via


Solucionar problemas do cluster AKS Arc preso no estado de "Atualização"

Este artigo descreve como corrigir um problema no qual o Serviço Kubernetes do Azure habilitado pelo cluster Arc (AKS Arc) está preso no estado de Atualização . Esse problema normalmente ocorre depois de atualizar o Azure Local para a versão 2503 ou 2504 e, em seguida, tentar atualizar a versão do Kubernetes em seu cluster.

Sintomas

Quando você tenta atualizar um cluster AKS Arc, você percebe que a currentState propriedade do cluster permanece no estado de atualização .

az aksarc upgrade --name "cluster-name" --resource-group "rg-name"
===> Kubernetes might be unavailable during cluster upgrades.
 Are you sure you want to perform this operation? (y/N): y
The cluster is on version 1.28.9 and is not in a failed state. 

===> This will upgrade the control plane AND all nodepools to version 1.30.4. Continue? (y/N): y
Upgrading the AKSArc cluster. This operation might take a while...
{
  "extendedLocation": {
    "name": "/subscriptions/resourceGroups/Bellevue/providers/Microsoft.ExtendedLocation/customLocations/bel-CL",
    "type": "CustomLocation"
  },
  "id": "/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/Bellevue/providers/Microsoft.Kubernetes/ConnectedClusters/Bel-cluster/providers/Microsoft.HybridContainerService/ProvisionedClusterInstances/default",
"name": "default",
"properties": {
"kubernetesVersion": "1.30.4",
"provisioningState": "Succeeded",
"currentState": "Upgrading",
"errorMessage": null,
"operationStatus": null
"agentPoolProfiles": [
      {
        ...

Motivo

  • O problema é causado por uma alteração recente introduzida no Azure Local versão 2503. Sob certas condições, se houver falhas transitórias ou intermitentes durante o processo de atualização do Kubernetes, elas não serão detetadas ou recuperadas corretamente. Isso pode fazer com que o estado do cluster permaneça no estado de Atualização .

  • Você verá esse problema se a versão da extensão hybridaksextension de local personalizada do AKS Arc for 2.1.211 ou 2.1.223. Você pode executar o seguinte comando para verificar a versão da extensão no cluster:

    az login --use-device-code --tenant <Azure tenant ID> 
    az account set -s <subscription ID> 
    $res=get-archcimgmt
    az k8s-extension show -g $res.HybridaksExtension.resourceGroup -c $res.ResourceBridge.name --cluster-type appliances --name hybridaksextension
    
    {
      "aksAssignedIdentity": null,
      "autoUpgradeMinorVersion": false,
      "configurationProtectedSettings": {},
      "currentVersion": "2.1.211",
      "customLocationSettings": null,
      "errorInfo": null,
      "extensionType": "microsoft.hybridaksoperator",
      ...
    }
    

Atenuação

Esse problema foi corrigido no AKS no Azure Local, versão 2505. Atualize sua implantação do Azure Local para a compilação 2505. Após a atualização, verifique se a versão do Kubernetes foi atualizada e se a currentState propriedade do cluster aparece como Succeeded.

Solução alternativa para o Azure Local versões 2503 ou 2504

Esse problema afeta apenas clusters no Azure Local versão 2503 ou 2504 e nas versões de extensão AKS Arc 2.1.211 ou 2.1.223. A atenuação descrita aqui é aplicável somente quando você não consegue atualizar para 2505.

Você pode resolver o problema executando o comando AKS Arc update . O update comando reinicia o fluxo de atualização. Pode executar o comando aksarc update com parâmetros de marcador de posição, que não alteram o estado do cluster. Portanto, nesse caso, você pode executar o update comando para habilitar drivers NFS ou SMB se esses recursos ainda não estiverem habilitados. Primeiro, verifique se algum dos drivers de armazenamento já está habilitado:

az login --use-device-code --tenant <Azure tenant ID> 
az account set -s <subscription ID> 
az aksarc show -g <resource_group_name> -n <cluster_name>

Verifique a seção de perfil de armazenamento:

"storageProfile": {  
     "nfsCsiDriver": {  
       "enabled": false
     },  
     "smbCsiDriver": {  

       "enabled": true  
     }  
   }

Se um dos drivers estiver desativado, você poderá habilitá-lo usando um dos seguintes comandos:

az aksarc update --enable-smb-driver -g <resource_group_name> -n <cluster_name>
az aksarc update --enable-nfs-driver -g <resource_group_name> -n <cluster_name>

A execução do aksarc update comando deve resolver o problema e a currentState propriedade do cluster agora deve ser mostrada como Succeeded. Depois que o status for atualizado, se você não quiser manter os drivers ativados, poderá reverter essa ação executando um dos seguintes comandos:

az aksarc update --disable-smb-driver -g <resource_group_name> -n <cluster_name>
az aksarc update --disable-nfs-driver -g <resource_group_name> -n <cluster_name>

Se ambos os drivers já estiverem habilitados no cluster, você poderá desativar o que não estiver em uso. Se você precisar que ambos os drivers permaneçam habilitados, contate o Suporte da Microsoft para obter mais assistência.

Verificação

Para confirmar se a atualização da versão do K8s está concluída, execute o seguinte comando e verifique se a currentState propriedade na saída JSON está definida como Succeeded.

az aksarc show -g <resource_group> -n <cluster_name>
...
...
"provisioningState": "Succeeded",
"status": {
    "currentState": "Succeeded",
    "errorMessage": null,
    "operationStatus": null
    "controlPlaneStatus": { ...
...

Entre em contato com o Suporte da Microsoft

Se o problema persistir, colete os logs do cluster AKS antes decriar uma solicitação de suporte.

Próximos passos