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 oOSSku
parâmetro tenha um valor deAzureLinux
. 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.