Compartilhar via


Solução de problemas de atualização de revisão secundária do complemento do Service Mesh do Istio

Este artigo discute cenários de solução de problemas e restrições nos processos de atualização e reversão de revisão secundária para o complemento de malha de serviço do Istio no AKS (Serviço de Kubernetes do Microsoft Azure).

Observação

O Istio usa o termo "revisões" para implementar o processo de atualização canário e distinguir entre as versões. Cada designação de revisão (escrita como x-y) corresponde a uma designação de versão maior.secundária (x.y). Você pode controlar a revisão do plano de controle, mas não pode controlar a versão específica do patch dentro de uma faixa de revisão.

Pré-requisitos

Matriz de solução de problemas

A tabela a seguir lista vários problemas e os diferentes cenários e soluções para esses problemas.

Cenário Problema Solução
As cargas de trabalho do plano de dados são descartadas da malha. As revisões do plano de dados e do plano de controle não correspondiam antes de você concluir ou reverter uma atualização.

Siga estas etapas:

  1. Rotule novamente os namespaces que contêm cargas de trabalho especificando a revisão que deve existir após a conclusão ou reversão da atualização. Para fazer isso, execute o comando kubectl label :

    kubectl label namespace default istio.io/rev=asm-x-y --overwrite
  2. Reinicie as implantações de carga de trabalho correspondentes para acionar a reinjeção de sidecar da revisão correta. Para fazer isso, execute o comando kubectl rollout restart :

    kubectl rollout restart deployment <deployment name>
  3. Verifique se as imagens auxiliares existem. Para fazer isso, execute o comando kubectl get :

    kubectl get pods --namespace <namespace> --output yaml | grep mcr.microsoft.com/oss/istio/proxyv2:
Os pods do plano de controle estão no estado pendente. Os pods não têm capacidade. Verifique o estado dos pods executando o comando kubectl describe . Se a capacidade for o problema, você poderá escalar verticalmente o cluster para adicionar outro nó. Para obter mais informações, consulte Dimensionar manualmente a contagem de nós em um cluster do AKS (Serviço de Kubernetes do Azure).
O comando az aks mesh get-upgrades não retorna atualizações disponíveis. A revisão mais recente do Istio pode ser incompatível com a versão atual do cluster do AKS. Você pode usar o comando az aks mesh get-revisions para descobrir se existem revisões mais recentes do Istio. A saída inclui uma lista de versões de cluster compatíveis para cada revisão do Istio. Portanto, você pode determinar se uma atualização de cluster é necessária.

Observação

Para evitar comportamento não intencional e funcionalidade interrompida e também garantir que você esteja recebendo atualizações para vulnerabilidades de segurança, é altamente recomendável que você atualize para uma versão do AKS com suporte e atualizada e uma revisão de complemento do Istio. Lembre-se de que a revisão do complemento também deve estar dentro do intervalo de versão do Kubernetes com suporte para o cluster do AKS fornecido. Conforme destacado na seção Atualização de revisão secundária do artigo de atualização do Istio, você pode executar os az aks mesh get-revisions comandos e az aks mesh get-upgrades para saber mais sobre as revisões de complemento, atualizações e informações de compatibilidade disponíveis.

Restrições

  • Um downgrade para uma revisão mais antiga (fora do processo de reversão canário) não é permitido.

  • Ignorar de uma revisão para uma revisão não consecutiva só será permitido se o AKS não der mais suporte à revisão atual e à próxima revisão de atualização. Neste ponto, a única atualização disponível para você é a revisão mais baixa com suporte.

  • O rótulo do Istio sidecar.istio.io/inject não habilita a injeção de sidecar para o complemento do Istio. Você deve usar o istio.io/rev rótulo ao rotular e rotular novamente seus namespaces durante a atualização canário.

  • A rotulagem deve ocorrer em um nível de namespace em vez de em um nível por implantação. Se você quiser substituir pods individualmente, poderá optar por reiniciar implantações individuais em vez de usar a rotulagem de pod.

  • Se você estiver usando o complemento do Istio Shared MeshConfig, precisará copiar ou transferir as configurações do MeshConfig para o novo ConfigMap antes de fazer uma atualização canário. Para obter mais informações, consulte Configuração e atualizações de malha.

  • O complemento do Istio implanta pods e implantações do gateway de entrada do Istio por revisão. Se você estiver fazendo uma atualização canário e tiver duas revisões do painel de controle instaladas em seu cluster, talvez seja necessário solucionar problemas de vários pods de gateway de entrada em ambas as revisões.

Referências

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.