Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, parte três de cinco, migra os seus nós existentes para Azure Linux. Você pode migrar seus nós existentes para o Azure Linux usando um dos seguintes métodos:
- Remova pools de nós existentes e adicione novos pools de nós do Azure Linux.
- Realizar uma migração de SKU no local do sistema operativo (SO).
Os comandos deste tutorial utilizam as variáveis de ambiente definidas em Tutorial 1: Criar um cluster com o Azure Linux Container Host para AKS.
Se você não tiver nenhum nó existente para migrar para o Azure Linux, pule para o próximo tutorial. Em tutoriais posteriores, você aprenderá a habilitar a telemetria e o monitoramento em seus clusters e atualizar os nós do Azure Linux.
Pré-requisitos
- Em tutoriais anteriores, você criou e implantou um host de contêiner Linux do Azure para cluster AKS. Para concluir este tutorial, você precisa adicionar um pool de nós do Azure Linux ao cluster existente. Se você ainda não fez essa etapa e gostaria de acompanhar, comece com o Tutorial 2: Adicionar um pool de nós do Azure Linux ao seu cluster AKS existente.
Note
Ao adicionar um novo pool de nós do Azure Linux, você precisa adicionar pelo menos um como --mode System. Caso contrário, o AKS não permitirá que você exclua seu pool de nós existente.
- Você precisa da versão mais recente da CLI do Azure. Executar
az --versionpara localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure.
Definir variáveis de ambiente
Defina as seguintes variáveis de ambiente para criar nomes de recursos únicos para cada implementação. Substitua o nome provisório <your-node-pool-name> por um nome à sua escolha. Podes, opcionalmente, adicionar um sufixo aleatório para garantir a unicidade. O nome de um pool de nós deve começar com uma letra minúscula e só pode conter caracteres alfanuméricos. Para pools de nós Linux, o comprimento deve estar entre um e 12 caracteres.
# Set random suffix for uniqueness
export RANDOM_SUFFIX=$(openssl rand -hex 3)
# Set node pool name
export NODE_POOL_NAME="<your-node-pool-name>$RANDOM_SUFFIX"
Adicionar pools de nós do Azure Linux e remover pools de nós existentes
Adicione um novo pool de nós do Azure Linux usando o
az aks nodepool addcomando. Este comando adiciona um novo pool de nós ao cluster com o sinalizador--mode System, tornando-o um pool de nós do sistema. Os grupos de nós do sistema são necessários para os clusters Linux do Azure.az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxExemplo de saída:
{ "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool", "name": "systempool", "provisioningState": "Succeeded" }Remova os nós existentes usando o
az aks nodepool deletecomando.
Migração de SKU do SO no local
Pode migrar os seus conjuntos de nós Ubuntu existentes para o Azure Linux alterando o SKU do sistema operativo do conjunto de nós, o que faz com que o cluster percorra o processo padrão de atualização da imagem dos nós. Esse novo recurso não requer a criação de novos pools de nós.
Limitações de migração de SKUs de SO no local
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, revise 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.
- O recurso de migração de SKU do sistema operacional não consegue renomear grupos de nós existentes.
- Ubuntu, Azure Linux e Azure Linux com OS Guard são os únicos destinos de migração de SKU do sistema operacional Linux suportados.
- A Inicialização Confiável é necessária por padrão para o Azure Linux com o OS Guard. Precisas de ter o Trusted Launch ativado para poderes migrar para o Azure Linux com o OS Guard. Como não pode ativar o Trusted Launch em pools de nós existentes, precisa de criar um novo pool de nós com o Trusted Launch ativado e migrar as suas cargas de trabalho para esse pool de nós.
- Os clientes que utilizam tamanhos de máquina virtual (VM) exclusivamente de Geração 1 não podem migrar para o Azure Linux com OS Guard, uma vez que não existe uma imagem de Geração 1 suportada. Neste caso, precisas de criar novos pools de nós com um tamanho de VM que suporte a Gen 2.
- Um SKU do sistema operacional Ubuntu com
UseGPUDedicatedVHDativado não pode executar uma migração de SKU do sistema operacional. - Um SKU do sistema operacional Ubuntu com o CVM 20.04 habilitado não pode executar uma migração de SKU do sistema operacional.
- Os pools de nós com Kata ativado não podem executar uma migração de SKU do sistema operacional.
- A migração de SKU do sistema operacional Windows não é suportada.
Pré-requisitos para migração de SKU OS no local
- Um cluster AKS existente com pelo menos um pool de nós do Ubuntu.
- Recomendamos que você garanta que suas cargas de trabalho sejam configuradas e executadas com êxito no host de contêiner do Azure Linux antes de tentar usar o recurso de migração SKU do sistema operacional implantando um cluster Linux do Azure no dev/prod e verificando se o serviço permanece íntegro.
- Verifique se o recurso de migração está funcionando para você em teste/desenvolvimento antes de usar o processo em um cluster de produção.
- Certifique-se de que os seus pods têm um Orçamento de Disrupção de Pods (PDB) suficiente para permitir que o AKS mova os pods entre VMs durante a atualização.
- Você precisa da CLI do Azure versão 2.61.0 ou superior. Executar
az --versionpara localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure. - Se estiveres a usar o Terraform, tens de ter a versão 3.111.0 ou superior do módulo AzureRM Terraform.
Migre o SKU do sistema operacional do seu pool de nós do Ubuntu
Migre a SKU do sistema operacional do seu pool de nós para o Azure Linux usando o az aks nodepool update comando. Este comando atualiza o SKU do sistema operacional para seu pool de nós do Ubuntu para o Azure Linux. A alteração do SKU do sistema operacional aciona 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 AzureLinux
Exemplo de saída:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
"name": "nodepool1",
"osSku": "AzureLinux",
"provisioningState": "Succeeded"
}
Note
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 do SKU do Sistema Operativo
Quando a migração estiver concluída em seus clusters de teste, você deve verificar o seguinte para garantir uma migração bem-sucedida:
- Se o destino da migração for o Azure Linux, execute o
kubectl get nodes -o widecomando. A saída deve aparecerMicrosoft Azure Linux 3.0como sua imagem do sistema operacional e.azl3no final da sua versão do kernel. - Execute o comando
kubectl get pods -o wide -Apara verificar se todos os pods e daemonsets estão a funcionar no novo pool de nós. - Execute o
kubectl get nodes --show-labelscomando para verificar se todos os rótulos de nó no grupo de nós atualizado correspondem ao que é esperado.
Dica
Recomendamos monitorar a integridade do serviço por algumas semanas antes de migrar os clusters de produção.
Execute a migração de SKU do sistema operacional em seus clusters de produção
Atualize os seus modelos existentes para configurar
OSSKU=AzureLinux. Certifique-se de que o seuapiVersionestá definido para2023-07-01ou mais tarde.-
Modelos ARM: Utilize
"OSSKU": "AzureLinux"na secçãoagentPoolProfile. -
Bicep: Use
osSku: "AzureLinux"na secçãoagentPoolProfile. -
Terraform: Use
os_sku = "AzureLinux"nadefault_node_poolsecção.
-
Modelos ARM: Utilize
Reimplante seu modelo ARM, Bíceps ou Terraform para o cluster para aplicar a nova
OSSKUconfiguração. Durante esta implantação, o cluster comporta-se como se estivesse a fazer uma atualização de imagem de nó. O cluster aumenta a capacidade e, em seguida, reinicia os nós existentes, um a um, na imagem AKS mais recente do seu novo SKU do SO.
Retroceder para o SKU anterior do sistema operativo (SO)
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, precisa-se alterar o campo SKU do sistema operativo no seu modelo e reenviar a implementação, o que inicia outra operação de atualização e restaura o conjunto de nós para o SKU do sistema operativo anterior.
Podes voltar ao SKU anterior do teu sistema operativo usando o az aks nodepool update comando. Este comando atualiza a SKU do sistema operativo do seu pool de nós de Azure Linux para Ubuntu.
Passo seguinte
Neste tutorial, migrou os nós existentes para o Azure Linux ao remover os pools de nós existentes e adicionar novos pools de nós do Azure Linux ou ao efetuar uma migração local do SKU do sistema operativo.
No próximo tutorial, você aprenderá a habilitar a telemetria para monitorar seus clusters.