Instantâneo do pool de nós do AKS (Serviço de Kubernetes do Azure)

O AKS lança uma nova imagem de nó semanalmente. Cada novo cluster, novo pool de nós ou cluster de atualização sempre recebe a imagem mais recente, o que pode dificultar a manutenção da consistência e ter ambientes reproduzíveis.

Os instantâneos do pool de nós permitem que você capture um instantâneo de configuração do pool de nós e crie pools de nós ou clusters com base nesse instantâneo enquanto houver suporte para essa configuração e versão do Kubernetes. Para obter mais informações sobre as janelas de suporte, confira Versões do Kubernetes com suporte no AKS.

O instantâneo é um recurso do Azure que contém as informações da configuração do pool de nós de origem, como a versão da imagem do nó, a versão do Kubernetes, o tipo de sistema operacional e a SKU do sistema operacional. Em seguida, você pode referenciar esse recurso de instantâneo e os respectivos valores de sua configuração para criar qualquer pool de nós ou cluster com base nele.

Antes de começar

Este artigo considera que já existe um cluster do AKS. Se você não tiver um cluster do AKS, para obter diretrizes sobre como criar uma implementação em escala empresarial do AKS, consulte Planejar o design do AKS.

Limitações

  • Qualquer pool de nós ou cluster criado com base em um instantâneo deve usar uma VM da mesma família de máquinas virtuais que o instantâneo, por exemplo, você não pode criar um pool de nós da Série N com base em um instantâneo capturado de um pool de nós da Série D porque as imagens de nó nesses casos são estruturalmente diferentes.
  • Os instantâneos devem ser criados na mesma região que o pool de nós de origem. Esses instantâneos podem ser usados para criar ou atualizar clusters e pools de nós em outras regiões.

Capturar um instantâneo do pool de nós

Para capturar um instantâneo de um pool de nó, você precisa da ID de recurso do pool de nós, que pode ser extraída do seguinte comando:

NODEPOOL_ID=$(az aks nodepool show --name nodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --query id -o tsv)

Importante

O pool de nós do AKS deve ser criado ou atualizado após 10 de novembro de 2021 para que seja capturado um instantâneo dele. Se você estiver usando a versão aks-preview da extensão da CLI do Azure 0.5.59 ou mais recente, os comandos para o instantâneo do pool de nós foram alterados. Para obter comandos atualizados, confira a referência da CLI do Instantâneo do Pool de Nós.

Agora, para capturar um instantâneo do pool de nós anterior, você usa o comando az aks snapshot da CLI.

az aks nodepool snapshot create --name MySnapshot --resource-group MyResourceGroup --nodepool-id $NODEPOOL_ID --location eastus

Criar um pool de nós de um instantâneo

Primeiro, você precisa da ID do recurso do instantâneo criado anteriormente, que pode ser feito no seguinte comando:

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

Agora, podemos usar o seguinte comando para adicionar um novo pool de nós com base nesse instantâneo.

az aks nodepool add --name np2 --cluster-name myAKSCluster --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

Como atualizar um pool de nós para um instantâneo

Você pode atualizar um pool de nós para uma configuração de instantâneo, desde que a versão do kubernetes de instantâneo e a versão da imagem do nó sejam mais recentes do que as versões no pool de nós atual.

Primeiro, você precisa da ID do recurso do instantâneo criado anteriormente, que pode ser feito no seguinte comando:

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

Agora, podemos usar esse comando para atualizar esse pool de nós para essa configuração de instantâneo.

az aks nodepool upgrade --name nodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

Observação

A versão da imagem do pool de nós é a mesma contida no instantâneo e permanece a mesma em todas as operações de escala. No entanto, se esse pool de nós for atualizado ou uma atualização de imagem do nó for executada sem fornecer uma ID de instantâneo, a imagem do nó será atualizada para a versão mais recente.

Observação

Para atualizar apenas a versão do nó para o seu pool de nós, use o sinalizador --node-image-only. Isso é obrigatório quando você atualiza a versão da imagem do nó para um pool de nós com base em um instantâneo com uma versão idêntica do Kubernetes.

Criar um cluster de um instantâneo

Quando você cria um cluster de um instantâneo, a configuração do instantâneo cria o pool de sistema original do cluster.

Primeiro, você precisa da ID do recurso do instantâneo criado anteriormente, que pode ser feito no seguinte comando:

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

Agora, podemos usar esse comando para criar esse cluster fora da configuração de instantâneo.

az aks create \
    --name myAKSCluster2 \
    --resource-group myResourceGroup \
    --snapshot-id $SNAPSHOT_ID \
    --generate-ssh-keys

Próximas etapas