Solucionar problemas de falhas não prontas do nó se houver certificados expirados

Este artigo ajuda você a solucionar problemas de cenários de Nó Não Pronto em um cluster do AKS (Microsoft Serviço de Kubernetes do Azure) se houver certificados expirados.

Pré-requisitos

  • CLI do Azure
  • A ferramenta de linha de comando OpenSSL para exibição e assinatura de certificado

Sintomas

Você descobre que um nó de cluster do AKS está no estado Nó Não Pronto.

Motivo

Há um ou mais certificados expirados.

Prevenção: execute OpenSSL para assinar os certificados

Verifique as datas de validade dos certificados invocando o comando openssl-x509 da seguinte maneira:

  • Para nós de conjunto de dimensionamento de máquina virtual (VM), use o comando az vmss run-command invoke :

    az vmss run-command invoke \
        --resource-group <resource-group-name> \
        --name <vm-scale-set-name> \
        --command-id RunShellScript \
        --instance-id 0 \
        --output tsv \
        --query "value[0].message" \
        --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
    
  • Para nós de conjunto de disponibilidade de VM, use o comando az vm run-command invoke :

    az vm run-command invoke \
        --resource-group <resource-group-name> \
        --name <vm-availability-set-name> \
        --command-id RunShellScript \
        --output tsv \
        --query "value[0].message" \
        --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
    

Você pode receber certos códigos de erro depois de invocar esses comandos. Para obter informações sobre os códigos de erro 50, 51 e 52, consulte os seguintes links, conforme necessário:

Se você receber o código de erro 99, isso indica que o comando apt-get update está sendo impedido de acessar um ou mais dos seguintes domínios:

  • security.ubuntu.com
  • azure.archive.ubuntu.com
  • nvidia.github.io

Para permitir o acesso a esses domínios, atualize a configuração de quaisquer firewalls de bloqueio, NSGs (grupos de segurança de rede) ou NVAs (dispositivos virtuais de rede).

Solução: girar os certificados

Você pode aplicar a rotação automática de certificado para girar certificados nos nós antes que eles expirem. Essa opção não requer tempo de inatividade para o cluster do AKS.

Se você puder acomodar o tempo de inatividade do cluster, você poderá girar manualmente os certificados .

Observação

A partir de 15 de julho de 2021, o lançamento do AKS, uma atualização de cluster do AKS ajuda automaticamente a girar os certificados de cluster. No entanto, essa alteração comportamental não faz efeito para um certificado de cluster expirado. Se uma atualização levar apenas as seguintes ações, os certificados expirados não serão renovados:

  • Atualizar uma imagem de nó.
  • Atualize um pool de nós para a mesma versão.
  • Atualize um pool de nós para uma versão mais recente.

Apenas uma atualização completa (ou seja, uma atualização para o plano de controle e o pool de nós) ajuda a renovar os certificados expirados.

Mais informações