Compartilhar via


Tutorial: Migrar nós para o Azure Linux com o OS Guard (versão prévia)

Neste tutorial, parte três de cinco, você migra os nós existentes para o Linux do Azure com o OS Guard. Você pode migrar seus nós existentes usando um dos seguintes métodos:

  • Remova os pools de nós existentes e adicione novos pools de nós do Azure Linux com OS Guard.
  • Migração in-loco do SKU do sistema operacional.

Se você não tiver nenhum nó existente para migrá-lo, vá para o próximo tutorial. Em tutoriais posteriores, você aprenderá a habilitar a telemetria e o monitoramento em seus clusters e atualizar o Azure Linux com nós do OS Guard.

Considerações e limitações

Antes de começar, examine as seguintes considerações e limitações para o Azure Linux com o OS Guard (versão prévia):

  • O Kubernetes versão 1.32.0 ou superior é necessário para o Linux do Azure com o SO Guard.
  • Todas as imagens do Azure Linux com proteção de SO têm o padrão FIPS e o início confiável habilitados.
  • Os modelos do ARM e a CLI do Azure são os únicos métodos de implantação com suporte para o Azure Linux com proteção de SO no AKS na versão prévia. Não há suporte para o PowerShell e o Terraform.
  • Não há suporte para imagens do Arm64 no Azure Linux com proteção de SO no AKS na versão prévia.
  • NodeImage e None são os únicos canais de atualização do sistema operacional com suporte para o Azure Linux com o OS Guard no AKS. Unmanaged e SecurityPatch são incompatíveis com o Azure Linux com o OS Guard devido ao diretório /usr imutável.
  • O suporte para Streaming de Artefatos não está disponível.
  • Não há suporte para o Pod Sandboxing.
  • Não há suporte para CVMs (Máquinas Virtuais Confidenciais).
  • Não há suporte para VMs (máquinas virtuais) de geração 1.

Pré-requisitos

Instalar a extensão aks-preview da CLI do Azure

Importante

As funcionalidades em versão preliminar do AKS estão disponíveis de forma optativa e por autoatendimento. As versões prévias são fornecidas “no estado em que se encontram” e “conforme disponíveis” e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

  • Instale a extensão aks-preview usando o comando az extension add.

    az extension add --name aks-preview
    
  • Atualize para a última versão da extensão usando o comando az extension update.

    az extension update --name aks-preview
    

Registrar o sinalizador de versão prévia do recurso do Azure Linux com proteção de SO

  1. Registre o sinalizador de recurso AzureLinuxOSGuardPreview usando o comando az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    Demora alguns minutos para o status mostrar Registrado.

  2. Verifique o status do registro usando o comando az feature show.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    
  3. Quando o status mostrar Registrado, atualize o registro do provedor de recursos Microsoft.ContainerService usando o comando az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Adicionar Azure Linux com grupos de nós protegidos pelo OS Guard e remover grupos de nós existentes.

  1. Adicione um novo Azure Linux com um pool de nós do OS Guard usando o comando az aks nodepool add. Esse comando adiciona um novo pool de nós ao cluster com o sinalizador --mode System, o que o torna um pool de nós do sistema. Os pools de nós do sistema são necessários para os clusters do Azure Linux com proteção de SO.

    # Declare environment variables with a random suffix for uniqueness
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export NODE_POOL_NAME="np$RANDOM_SUFFIX"
    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Exemplo de saída:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Remova os nós existentes usando o comando az aks nodepool delete.

    az aks nodepool delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME 
    

Limitações da migração in-loco do SKU do sistema operacional

Há várias configurações que podem bloquear a solicitação de migração de SKU do sistema operacional. Para garantir uma migração bem-sucedida, examine as seguintes diretrizes e limitações:

  • O recurso de migração de SKU do sistema operacional não está disponível por meio do PowerShell ou do portal do Azure. Ao usar o recurso de migração de SKU do sistema operacional com o Azure Linux com o OS Guard (versão prévia), ele não está disponível por meio do Terraform, do PowerShell ou do portal do Azure.
  • O recurso de migração de SKU do sistema operacional não dá suporte à renomeação de pools de nós existentes.
  • O Ubuntu, o Azure Linux e o Linux do Azure com o OS Guard são os únicos destinos de migração de SKU do sistema operacional Linux com suporte.
  • O Início Confiável é exigido por padrão para o Azure Linux com o OS Guard. Você precisa ter o Trusted Launch habilitado para migrar para o Linux do Azure com o OS Guard. Isso pode exigir a criação de pools de nós.
  • O FIPS é necessário ao habilitar o Linux do Azure com o OS Guard. Se você não estiver usando uma imagem FIPS no momento, poderá incluir --enable-fips no comando de atualização do pool de nós.
  • Não há suporte para VMs (máquinas virtuais) de geração 1.
  • Um SKU do sistema operacional Ubuntu com UseGPUDedicatedVHD habilitado não pode executar uma migração de SKU do sistema operacional.
  • Não há suporte para CVMs (Máquinas Virtuais Confidenciais).
  • Não há suporte para o Pod Sandboxing.
  • Não há suporte para a migração do SKU do sistema operacional Windows.
  • Há suporte para a migração do SKU do sistema operacional do Mariner para o Linux do Azure, mas não há suporte para a reversão para o Mariner.

Pré-requisitos para a migração de SKU do sistema operacional no local

  • Um cluster do AKS existente com, pelo menos, um pool de nós do Linux no Azure.
  • É recomendável garantir que suas cargas de trabalho configurem e executem com êxito no host de contêiner do Azure Linux com o OS Guard antes de tentar usar o recurso de migração de SKU do sistema operacional implantando um Linux do Azure com o cluster do OS Guard em desenvolvimento/prod e verificando se seu serviço permanece íntegro.
  • Verifique se o recurso de migração está funcionando para você no teste/desenvolvimento antes de usar o processo em um cluster de produção.
  • Verifique se os pods têm Orçamento de Interrupção de Pod suficiente para permitir que o AKS mova os pods entre as VMs durante a atualização.
  • Você precisa da versão 2.61.0 ou posterior da CLI do Azure. Use o az version comando para localizar a versão. Para atualizar para a versão mais recente, use o az upgrade comando.

Executar uma migração de SKU do sistema operacional no local

Você pode migrar seus pools de nós do Ubuntu ou do Linux do Azure existentes para o Azure Linux com proteção de SO alterando o SKU do sistema operacional do pool de nós, o que aciona o processo padrão de atualização da imagem do nó no cluster. Esse novo recurso não exige a criação de pools de nós, ao contrário, os pools de nós existentes terão a imagem recriada automaticamente.

Migrar a SKU do sistema operacional do pool de nós do Host de Contêiner do Linux do Azure para o Azure Linux com proteção de SO

  • Migre o SKU do sistema operacional do pool de nós para o Azure Linux com proteção de SO usando o comando az aks nodepool update. Esse comando dispara uma recriação de imagem do pool de nós, atualizando o SKU do sistema operacional do pool de nós do Linux do Azure para o Azure Linux com proteção de SO. A alteração do SKU do sistema operacional dispara uma operação de atualização imediata, que leva vários minutos para ser concluída.

    az aks nodepool update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Exemplo de saída:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
      "name": "nodepool1",
      "osSku": "AzureLinuxOSGuard",
      "provisioningState": "Succeeded"
    }
    

Observação

Se você tiver problemas durante a migração do SKU do sistema operacional, poderá reverter para o SKU do sistema operacional anterior.

Verificar a migração de SKU do sistema operacional

Depois que a migração for concluída em seus clusters de teste, você deverá verificar o seguinte para garantir uma migração bem-sucedida:

  • Se o destino de migração for o Azure Linux com o OS Guard, execute o kubectl get nodes -o wide comando. A saída deve mostrar Microsoft Azure Linux 3.0 como a imagem do sistema operacional e .azl3 no final da versão do kernel.
  • Execute o comando kubectl get pods -o wide -A para verificar se todos os pods e daemonsets estão em execução no novo pool de nós.
  • Execute o comando kubectl get nodes --show-labels para verificar se todos os rótulos de nó no pool de nós atualizado são o que você espera.

Dica

É recomendável monitorar a integridade do serviço por algumas semanas antes de migrar os clusters de produção.

Reverter para o SKU do sistema operacional anterior

Se você tiver problemas durante a migração do SKU do sistema operacional, poderá reverter para o SKU do sistema operacional anterior. Para fazer isso, você precisa alterar o campo SKU do sistema operacional no modelo e reenviar a implantação, o que dispara outra operação de atualização e recria a imagem do pool de nós para o respectivo SKU do sistema operacional anterior.

Observação

A migração do SKU do sistema operacional não dá suporte à reversão para o SKU do sistema operacional do Mariner.

  • Reverta para o SKU do sistema operacional anterior usando o comando az aks nodepool update. Esse comando atualiza o SKU do sistema operacional para o pool de nós do Azure Linux com proteção de SO de volta para o Linux do Azure.

Próximas etapas

Neste tutorial, você migrou nós existentes para o Azure Linux com o OS Guard. No próximo tutorial, você aprenderá a habilitar a telemetria para monitorar os clusters.