Perguntas frequentes sobre pools de nós do Windows Server no AKS

No Serviço Kubernetes do Azure (AKS), você pode criar um pool de nós que executa o Windows Server como o sistema operacional convidado nos nós. Esses nós podem executar aplicativos de contêiner nativos do Windows, como aqueles criados no .NET Framework. Há diferenças na forma como o sistema operacional Linux e Windows fornece suporte a contêineres. Alguns Kubernetes comuns do Linux e recursos relacionados ao pod não estão atualmente disponíveis para pools de nós do Windows.

Este artigo descreve algumas das perguntas frequentes e conceitos de SO para nós do Windows Server no AKS.

Que tipo de discos são suportados para Windows?

Os Discos do Azure e os Arquivos do Azure são os tipos de volume com suporte e são acessados como volumes NTFS no contêiner do Windows Server.

O Linux e o Windows suportam máquinas virtuais (VMs) de geração 2?

As VMs de 2ª geração são suportadas apenas no Linux e no Windows para WS2022. Para obter mais informações, consulte Suporte para VMs de 2ª geração no Azure.

Como faço para corrigir meus nós do Windows?

Para obter os patches mais recentes para nós do Windows, você pode atualizar o pool de nós ou atualizar a imagem do nó. As Atualizações do Windows não estão habilitadas em nós no AKS. O AKS lança novas imagens de pool de nós assim que os patches estiverem disponíveis, e é responsabilidade do usuário atualizar os pools de nós para se manter atualizado sobre patches e hotfixes. Esse processo de patch também é verdadeiro para a versão do Kubernetes que está sendo usada. As notas de versão do AKS indicam quando novas versões estão disponíveis. Para obter mais informações sobre como atualizar o pool de nós do Windows Server, consulte Atualizar um pool de nós no AKS. Se você estiver interessado apenas em atualizar a imagem do nó, consulte Atualizações da imagem do nó AKS.

Nota

A imagem atualizada do Windows Server só será usada se uma atualização de cluster (atualização do plano de controle) tiver sido executada antes da atualização do pool de nós.

A preservação do IP de origem do cliente é suportada?

No momento, a preservação do IP de origem do cliente não é suportada com nós do Windows.

Posso alterar o número máximo de pods por nó?

Sim. Para obter as implicações de fazer uma alteração e as opções disponíveis, consulte Número máximo de pods.

Qual é o tempo limite de TCP padrão no sistema operacional Windows?

O tempo limite de TCP padrão no sistema operacional Windows é de 4 minutos. Esse valor não é configurável. Quando um aplicativo usa um tempo limite maior, as conexões TCP entre contêineres diferentes no mesmo nó fecham após quatro minutos.

Por que estou vendo um erro quando tento criar um novo pool de agentes do Windows?

Se você criou seu cluster antes de fevereiro de 2020 e nunca fez nenhuma operação de atualização de cluster, o cluster ainda usa uma imagem antiga do Windows. Você pode ter visto um erro que se assemelha:

"A seguinte lista de imagens referenciadas a partir do modelo de implantação não foi encontrada: Publisher: MicrosoftWindowsServer, Offer: WindowsServer, Sku: 2019-datacenter-core-smalldisk-2004, Version: latest. Consulte Localizar e usar imagens de VM do Azure Marketplace com o Azure PowerShell para obter instruções sobre como localizar imagens disponíveis."

Para corrigir este erro:

  1. Atualize o plano de controle de cluster para atualizar a oferta de imagem e o editor.
  2. Crie novos pools de agentes do Windows.
  3. Mova pods do Windows de pools de agentes do Windows existentes para novos pools de agentes do Windows.
  4. Exclua pools de agentes antigos do Windows.

Por que estou vendo um erro quando tento implantar pods do Windows?

Se você especificar um valor menor --max-pods do que o número de pods que deseja criar, poderá ver o No available addresses erro.

Para corrigir esse erro, use o az aks nodepool add comando com um valor alto o suficiente --max-pods :

az aks nodepool add \
    --cluster-name $CLUSTER_NAME \
    --resource-group $RESOURCE_GROUP \
    --name $NODEPOOL_NAME \
    --max-pods 3

Para obter mais detalhes, consulte a --max-pods documentação.

Por que há um usuário inesperado chamado "sshd" no meu nó VM?

O AKS adiciona um usuário chamado "sshd" ao instalar o serviço OpenSSH. Este usuário não é malicioso. Recomendamos que os clientes atualizem seus alertas para ignorar essa conta de usuário inesperada.

Como faço para girar a entidade de serviço para meu pool de nós do Windows?

Os conjuntos de nós do Windows não suportam a rotação do principal de serviço. Para atualizar o principal de serviço, crie um novo conjunto de nós do Windows e migre os pods do conjunto mais antigo para o novo. Depois que seus pods forem migrados para o novo pool, exclua o pool de nós mais antigo.

Em vez de entidades de serviço, use identidades gerenciadas, que são essencialmente wrappers em torno de entidades de serviço. Para obter mais informações, consulte Usar identidades gerenciadas no Serviço Kubernetes do Azure.

Como posso alterar a palavra-passe de administrador para nós do Windows Server no meu cluster?

Ao criar seu cluster AKS, você especifica os --windows-admin-password parâmetros e --windows-admin-username para definir as credenciais de administrador para qualquer nó do Windows Server no cluster. Se você não especificou credenciais de administrador quando criou um cluster usando o portal do Azure ou ao definir --vm-set-type VirtualMachineScaleSets e --network-plugin azure usando a CLI do Azure, o nome de usuário assume como padrão azureuser e uma senha aleatória.

Para alterar a senha de administrador, use o az aks update comando:

az aks update \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER_NAME \
    --windows-admin-password $NEW_PW

Importante

A execução da az aks update operação atualiza apenas os pools de nós do Windows Server e causará uma reinicialização. Os pools de nós do Linux não são afetados.

Quando você estiver alterando --windows-admin-passwordo , a nova senha deve ter pelo menos 14 caracteres e atender aos requisitos de senha do Windows Server.

Quantos pools de nós posso criar?

Um cluster AKS com pools de nós do Windows não tem um limite de recursos AKS diferente do padrão especificado para o serviço AKS. Para obter mais informações, consulte Cotas, restrições de tamanho de máquina virtual e disponibilidade de região no Serviço Kubernetes do Azure (AKS).

Como posso nomear meus pools de nós do Windows?

Um pool de nós do Windows pode ter um nome de seis caracteres.

Todos os recursos são suportados com nós do Windows?

Kubenet atualmente não é suportado com nós do Windows.

Posso executar controladores de entrada em nós do Windows?

Sim, um controlador de entrada que suporte contêineres do Windows Server pode ser executado em nós do Windows no AKS.

Meus contêineres do Windows Server podem usar o gMSA?

O suporte a contas de serviço gerenciadas por grupo (gMSA) está geralmente disponível para Windows no AKS. Consulte Habilitar contas de serviço gerenciado de grupo (GMSA) para seus nós do Windows Server no cluster do Serviço Kubernetes do Azure (AKS)

Posso usar o Azure Monitor para contêineres com nós e contêineres do Windows?

Sim, pode. No entanto, o Azure Monitor está em visualização pública para coletar logs (stdout, stderr) e métricas de contêineres do Windows. Você também pode anexar à transmissão ao vivo de logs stdout de um contêiner do Windows.

Há alguma limitação no número de serviços em um cluster com nós do Windows?

Um cluster com nós do Windows pode ter aproximadamente 500 serviços (às vezes menos) antes de encontrar o esgotamento da porta. Essa limitação se aplica a um Serviço Kubernetes com a Política de Tráfego Externo definida como "Cluster".

Quando a política de tráfego externo em um Serviço é configurada como Cluster, o tráfego sofre um NAT de origem adicional no nó que também resulta na reserva de uma porta do pool de portas dinâmicas TCPIP. Esse pool de portas é um recurso limitado (~16K portas por padrão) e muitas conexões ativas com um Serviço (s) podem levar ao esgotamento dinâmico do pool de portas, resultando em quedas de conexão.

Se o Serviço Kubernetes estiver configurado com a Política de Tráfego Externo definida como "Local", não é provável que ocorram problemas de exaustão de porta em 500 serviços.

Posso usar o Benefício Híbrido do Azure com nós do Windows?

Sim. O Benefício Híbrido do Azure para Windows Server reduz os custos operacionais permitindo que você traga sua licença do Windows Server local para nós do Windows AKS.

O Benefício Híbrido do Azure pode ser usado em todo o cluster AKS ou em nós individuais. Para nós individuais, você precisa navegar até o grupo de recursos de nó e aplicar o Benefício Híbrido do Azure diretamente aos nós. Para obter mais informações sobre como aplicar o Benefício Híbrido do Azure a nós individuais, consulte Benefício Híbrido do Azure para Windows Server.

Para usar o Benefício Híbrido do Azure em um novo cluster AKS, execute o az aks create comando e use o --enable-ahub argumento.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --load-balancer-sku Standard \
    --windows-admin-password 'Password1234$' \
    --windows-admin-username azure \
    --network-plugin azure
    --enable-ahub

Para usar o Benefício Híbrido do Azure em um cluster AKS existente, execute o az aks update comando e use a atualização do cluster usando o --enable-ahub argumento.

az aks update \
    --resource-group myResourceGroup
    --name myAKSCluster
    --enable-ahub

Para verificar se o Benefício Híbrido do Azure está definido nos nós do Windows no cluster, execute o az vmss show comando com os --name argumentos e --resource-group para consultar o conjunto de escala da máquina virtual. Para identificar o grupo de recursos no qual o conjunto de escala para o pool de nós do Windows é criado, você pode executar o az vmss list -o table comando.

az vmss show --name myScaleSet --resource-group MC_<resourceGroup>_<clusterName>_<region>

Se os nós do Windows no conjunto de escala tiverem o Benefício Híbrido do Azure habilitado, a saída do az vmss show será semelhante à seguinte:

""hardwareProfile": null,
    "licenseType": "Windows_Server",
    "networkProfile": {
      "healthProbe": null,
      "networkApiVersion": null,

Como faço para alterar o fuso horário de um contêiner em execução?

Para alterar o fuso horário de um contêiner do Windows Server em execução, conecte-se ao contêiner em execução com uma sessão do PowerShell. Por exemplo:

kubectl exec -it CONTAINER-NAME -- powershell

No contêiner em execução, use Set-TimeZone para definir o fuso horário do contêiner em execução. Por exemplo:

Set-TimeZone -Id "Russian Standard Time"

Para ver o fuso horário atual do contêiner em execução ou uma lista disponível de fusos horários, use Get-TimeZone.

Posso manter afinidade de sessão de conexões de cliente para pods com contêineres do Windows?

Embora a manutenção da afinidade de sessão de conexões de cliente para pods com contêineres do Windows seja suportada na versão do sistema operacional Windows Server 2022, você obtém afinidade de sessão por IP do cliente atualmente limitando o pod desejado para executar uma única instância por nó e configurando seu serviço Kubernetes para direcionar o tráfego para o pod no nó local.

Utilize a seguinte configuração:

  1. Use um cluster AKS executando uma versão mínima de 1.20.
  2. Restrinja seu pod para permitir apenas uma instância por nó do Windows. Você pode conseguir isso usando antiafinidade em sua configuração de implantação.
  3. Na configuração do serviço Kubernetes, defina externalTrafficPolicy=Local. Isso garante que o serviço Kubernetes direcione o tráfego apenas para pods dentro do nó local.
  4. Na configuração do serviço Kubernetes, defina sessionAffinity: ClientIP. Isso garante que o Balanceador de Carga do Azure seja configurado com afinidade de sessão.

Próximos passos

Para começar a usar contêineres do Windows Server no AKS, consulte Criar um pool de nós que executa o Windows Server no AKS.