Solucionar problemas comuns para o Host de Contêiner do Linux do Azure para AKS

Este artigo fornece etapas de solução de problemas para alguns dos problemas comumente relatados que você pode experimentar ao usar hosts de contêiner do Linux do Azure em Serviço de Kubernetes do Azure (AKS). Para obter mais informações sobre como começar a usar hosts de contêiner do Linux do Azure no AKS, consulte Usar o Azure Linux com AKS.

Antes de começar

Leia o guia oficial para solucionar problemas de clusters do Kubernetes. Além disso, leia o guia do engenheiro da Microsoft para a solução de problemas do Kubernetes. Este guia contém comandos para solucionar problemas de pods, nós, clusters e outros recursos.

Por fim, examine a lista de limitações conhecidas no Azure Linux. Um problema que você está tentando resolve pode ser um em que já estamos trabalhando.

Pré-requisitos

  • CLI do Azure, versão 2.31 ou uma versão posterior. Se a CLI do Azure já estiver instalada, você poderá encontrar o número da versão executando az --version.

Sobre o Host de Contêiner do Azure Linux para AKS

O Azure Linux é uma distribuição do Linux de código aberto que a Microsoft criou. Como um sistema operacional leve, o Azure Linux tem os seguintes recursos:

  • Contém apenas os pacotes necessários para executar cargas de trabalho de contêiner
  • Passa por testes de validação do Azure
  • É compatível com agentes do Azure

O Host de Contêiner do Azure Linux para AKS é uma imagem do sistema operacional para AKS otimizada para executar cargas de trabalho de contêiner. Ele é mantido pela Microsoft e baseado no Azure Linux. Ele fornece confiabilidade e consistência da nuvem para a borda entre os produtos AKS, AKS no Azure Stack HCI e Azure Arc . Você pode usar hosts de contêiner do Linux do Azure para fazer os seguintes processos:

  • Implante pools de nós do Azure Linux em um novo cluster.
  • Adicione pools de nós do Linux do Azure aos clusters existentes do Ubuntu.
  • Migre seus nós do Ubuntu para nós do Linux do Azure.

Para obter mais informações sobre o Azure Linux, consulte o repositório github do Azure Linux .

Lista de verificação de solução de problemas

Etapa 1: examinar comandos equivalentes no Ubuntu e no Linux do Azure

A maioria dos comandos no sistema operacional Linux do Azure, como o comando process status (ps), se assemelha a comandos usados no Ubuntu. No entanto, o gerenciamento de pacotes é feito usando o comando Tiny DNF (tdnf). A tabela a seguir lista alguns comandos comuns no Ubuntu e seus equivalentes no Azure Linux.

Comando Ubuntu Comando Sugerido do Azure Linux
apt -- list installed rpm -qa
apt autoclean tdnf clean all
apt autoremove dnf autoremove
apt dist-upgrade dnf distro-sync
apt download tdnf download
apt install tdnf install
apt install --reinstall tdnf reinstall
apt list - upgradable dnf list updates
apt remove tdnf remove
apt search tdnf search
apt show tdnf list
apt upgrade tdnf upgrade
apt cache dump tdnf list available
apt-cache dumpavail tdnf list available
apt-cache policy tdnf list
apt-cache rdepends dnf repoquery -- alldeps - whatrequires
apt-cache search tdnf search
apt-cache show tdnf info
apt-cache stats (sem equivalente exato; leia o arquivo Pacotes na pasta /var/lib/rpm )
apt-config shell dnf shell
apt-file list dnf repoquery -l
apt-file search tdnf provides
apt-get autoremove dnf autoremove
apt-get install tdnf install
apt-get remove tdnf remove
apt-get update dnf clean expire-cache dnf check-update
apt-mark auto tdnf install dnf mark remove
apt-mark manual dnf mark install
apt-mark showmanual dnf history userinstalled

Etapa 2: verificar a versão do Linux do Azure

Verifique se você está usando a versão correta do Azure Linux. A versão com suporte do Azure Linux para consumo é o Azure Linux 2.0. Na saída do seguinte comando az aks nodepool list , a osSKU propriedade deve ler AzureLinux.

az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name>

Embora esse comando possa não resolver o problema que você está enfrentando, a versão é um problema comum para usuários que relatam que agentes ou extensões não estão funcionando corretamente no Azure Linux.

Etapa 3: entender a diferença nos caminhos do arquivo de certificado

O Azure Linux (e outras distribuições de RPM) armazena certificados de forma diferente do Ubuntu.

No Linux do Azure, o caminho /etc/ssl/certs é um link simbólico para /etc/pki/tls/certs. Se um contêiner espera mapear /etc/ssl/certs para usar o arquivo de certificado ca-certificates.crt no Azure Linux, o contêiner receberá um link simbólico que aponta para nenhum lugar. Esse comportamento causa erros relacionados ao certificado no contêiner. O contêiner também precisa mapear /etc/pki para que o contêiner possa seguir a cadeia de link simbólica. Se o contêiner precisar funcionar em hosts do Ubuntu e do Linux do Azure, você poderá mapear /etc/pki usando o DirectoryOrCreate tipo em um volume hostPath.

Etapa 4: atualizar a CLI do Azure e a extensão de visualização do AKS

Se você tentar implantar um cluster AKS do Azure Linux usando a CLI do Azure, poderá receber uma mensagem de erro que afirma que a opção AzureLinux não tem suporte para o OSSku parâmetro. Essa mensagem significa que você pode estar usando uma versão desatualizada da CLI do Azure ou da extensão de visualização do AKS. Para corrigir esse problema, execute uma ou ambas as duas ações a seguir:

  • Se a CLI do Azure não estiver atualizada, instale a versão mais recente. Para atualizar a CLI do Azure, execute o seguinte comando az upgrade :

    az upgrade
    
  • Se você tiver uma versão mais antiga da aks-preview extensão instalada, instale uma versão mais recente para que o OSSku parâmetro tenha um valor de AzureLinux. Para atualizar a extensão, execute o seguinte comando az extension update :

    az extension update --name aks-preview
    

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.

Aviso de isenção de responsabilidade para contatos de terceiros

A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar informações adicionais sobre esse tópico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão das informações de contato de terceiros.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.