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 artigo, vai aprender como migrar os conjuntos de nós existentes do AKS para o Azure Container Linux (ACL) para AKS. Você pode migrar seus nós existentes usando um dos seguintes métodos:
- Migração de SKU do SO no local: Mude o SKU do SO dos pools de nós existentes para ACL, que reimagina automaticamente os nós.
- Remova pools de nós existentes e adicione novos pools de nós ACL: Crie novos pools de nós ACL, mude as suas cargas de trabalho e remova os pools de nós antigos.
Importante
Se estiver a usar Azure Container Linux (ACL) no AKS, certifique-se de rever as seguintes considerações e limitações:
- O ACL está geralmente disponível a partir do AKS v1.34.
- ACL requer Trusted Launch com Secure Boot e vTPM. Variantes de Lançamento Não Confiável não estão disponíveis.
- A ACL no Arm64 requer SKUs baseados em Cobalto (v6) para permitir a compatibilidade com o Trusted Launch.
-
NodeImageeNonesão os únicos canais de atualização de sistemas operativos (SO) suportados.UnmanagedeSecurityPatchsão incompatíveis com ACL devido ao diretório imutável/usr. - O Streaming de Artefactos não é suportado.
- O Pod Sandboxing não é suportado.
- Não há suporte para Máquinas Virtuais Confidenciais (CVMs).
- As VMs da Geração 1 não são suportadas.
Limitações de migração de SKUs de SO no local
Para além das limitações gerais da ACL, as seguintes aplicam-se especificamente à migração no local de SKUs do sistema operativo:
- 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 suporta a renomeação de conjuntos de nós existentes.
- Conjuntos de nós com
UseGPUDedicatedVHDativados não podem efetuar uma migração de SKU do SO. - A migração de SKU do sistema operacional Windows não é suportada.
Pré-requisitos
- Um cluster AKS existente com pelo menos um pool de nós Linux.
- CLI do Azure versão 2.86.0 ou posterior. Executar
az --versionpara localizar a versão. Se precisar de instalar ou atualizar, consulte Install CLI do Azure. - Recomendamos que verifique que as suas cargas de trabalho correm com sucesso em ACL, implementando um cluster ACL num ambiente de desenvolvimento ou staging antes de migrar clusters de produção.
- 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.
- Garanta que os seus pods dispõem de um Orçamento de Perturbação de Pods (PDB) suficiente para permitir que o AKS mova os pods entre VMs durante a migração.
Adicionar pools de nós ACL e remover as pools de nós existentes
Adicione um novo pool de nós ACL usando o
az aks nodepool addcomando. Usa--mode Systempara que o novo pool possa servir como pool de agentes do sistema, o que te permite eliminar o pool de nós original no passo seguinte.az aks nodepool add \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <new-node-pool-name> \ --os-sku AzureContainerLinux \ --mode System \ --node-count 3Exemplo de saída:
{ "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/myNewNodePool", "name": "myNewNodePool", "osSku": "AzureContainerLinux", "provisioningState": "Succeeded" }Remove o teu pool de nós existente usando o
az aks nodepool deletecomando.az aks nodepool delete \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <existing-node-pool-name>
Migração de SKU do SO no local
Pode migrar os seus pools de nós Linux existentes para ACL alterando o SKU do sistema operativo do pool de nós, o que faz o cluster passar pelo processo padrão de atualização da imagem dos nós. Este método não requer criar novos pools de nós; Em vez disso, os teus pools de nós existentes são automaticamente reimaginados.
Executar uma migração de SKU do sistema operacional in-loco
Importante
O ACL exige Trusted Launch. Tem de incluir --enable-secure-boot e --enable-vtpm ao migrar para o SKU do SO AzureContainerLinux. O tamanho da máquina virtual (VM) do seu pool de nós também deve suportar o Trusted Launch. Se o tamanho atual da sua VM não o suporta, precisa de redimensionar ou recriar o pool de nós com um tamanho de VM suportado antes de migrar.
Migra o SKU do sistema operativo do teu pool de nós para ACL usando o az aks nodepool update comando. Este comando desencadeia uma reimagem do seu pool de nós, atualizando o SKU do SO para AzureContainerLinux. 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 <existing-node-pool-name> \
--os-sku AzureContainerLinux \
--enable-secure-boot \
--enable-vtpm
Exemplo de saída:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
"name": "nodepool1",
"osSku": "AzureContainerLinux",
"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
Dica
Recomendamos monitorizar o estado do seu serviço durante algumas semanas antes de migrar os seus clusters de produção.
Assim que a migração dos seus clusters de teste estiver concluída, recomendamos monitorizar o cluster e as cargas de trabalho durante algumas semanas para confirmar que tudo está a correr como esperado antes de migrar os clusters de produção. Use os seguintes comandos para verificar a migração e monitorizar o seu cluster:
Confirma que os novos nós estão a executar ACL usando o
kubectl get nodes -o widecomando. A saída deve mostrar a imagem do ACL OS.kubectl get nodes -o wideVerifique se todos os seus pods e daemonsets estão em execução no novo pool de nós utilizando o comando
kubectl get pods -o wide -A.kubectl get pods -o wide -AVerifique se todos os rótulos dos nós no seu pool de nós atualizado correspondem ao esperado utilizando o comando
kubectl get nodes --show-labels.kubectl get nodes --show-labelsVerifique a versão da imagem do nó utilizando o comando
az aks nodepool list.az aks nodepool list \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'Exemplo de saída:
[ { "name": "myNodePool", "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0", "osSku": "AzureContainerLinux" } ]
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 o fazer, altere o campo SKU do SO novamente para o valor anterior e reenvie a implantação, o que aciona outra operação de atualização e recria a imagem do conjunto de nós com o SKU do SO anterior. Se fizer a reversão da ACL para o SKU anterior do sistema operativo, o conjunto de nós utiliza, por defeito, a variante de imagem Trusted Launch (Gen2), a menos que o Trusted Launch tenha sido explicitamente desativado.
Volte para o SKU do sistema operacional anterior usando o comando az aks nodepool update. Este exemplo recua da ACL para o Azure Linux:
az aks nodepool update \
--resource-group <resource-group> \
--cluster-name <cluster-name> \
--name <existing-node-pool-name> \
--os-sku AzureLinux
Conteúdo relacionado
Para mais informações sobre ACL, veja O que é Azure Container Linux (ACL) para Azure Kubernetes Service (AKS)?