Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Configurar políticas de injeção de sidecar

Última atualização: Jun 28, 2026

O ASM inclui um injetor de sidecar que adiciona automaticamente um proxy sidecar aos novos pods. Configure as políticas de injeção para controlar quais pods recebem um sidecar, otimizar o uso de recursos e simplificar o gerenciamento. Também é possível ajustar a configuração de recursos do injetor para adequá-lo ao tamanho e à carga do cluster.

Pré-requisitos

Você já adicionou um cluster a uma instância do ASM.

Configurar políticas de injeção automática

Use rótulos de namespace ou rótulos e anotações de pod para controlar quais pods recebem um sidecar.

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Data Plane Component Management > Sidecar Proxy injection.

  3. Na página Sidecar Proxy injection, na seção Injection strategy configuration management, configure a política de injeção automática.

    Um sidecar é injetado automaticamente em um pod somente quando ele atende simultaneamente às condições definidas em The labels of the pod's namespace must meet the conditions. e em The pod's own labels/annotations must meet the conditions..

    Condição de correspondência

    Descrição

    The labels of the pod's namespace must meet the conditions.

    Define a condição baseada nos rótulos do namespace do pod.

    • Include istio-injection: enabled: O pod torna-se elegível para injeção automática quando seu namespace contém o rótulo istio-injection: enabled.

    • A injeção do sidecar ocorre se o namespace do pod não tiver o rótulo istio-injection: disabled.

    The pod's own labels/annotations must meet the conditions.

    Especifica a condição baseada nos rótulos ou anotações do próprio pod.

    • O sidecar é injetado caso o pod não tenha o rótulo ou anotação sidecar.istio.io/inject: "false".

    • Include sidecar.istio.io/inject: "true" or Selected by AlwaysInjectSelector: O pod atende aos critérios de injeção automática quando contém o rótulo ou anotação sidecar.istio.io/inject: "true".

      Nota
      • Para instâncias do ASM anteriores à v1.12, a injeção automática funciona apenas por correspondência de anotações de pod.

      • Nas versões v1.12 e posteriores, há suporte para injeção automática tanto por rótulos quanto por anotações de pod.

        Os rótulos têm precedência sobre as anotações. Por exemplo, se um pod tiver simultaneamente o rótulo sidecar.istio.io/inject: "true" e a anotação sidecar.istio.io/inject: "false", o sistema considerará que ele possui o rótulo sidecar.istio.io/inject: "true".

    Nota

    Se você configurar a política para injetar o sidecar exceto quando um namespace tiver o rótulo istio-injection: disabled ou um pod tiver o rótulo sidecar.istio.io/inject: false, o ASM adicionará automaticamente o rótulo istio-injection: disabled ao namespace kube-system para proteger os componentes do sistema.

  4. (Opcional) Abaixo da seção Injection strategy configuration management, clique em Show Advanced Settings para definir opções avançadas.

    Parâmetro

    Descrição

    The label selector which selector pods to be injected istio-proxy (AlwaysInjectSelector)

    Seletor de rótulos de pod configurável. Os pods correspondentes a este seletor sempre recebem a injeção, comportando-se como se tivessem o rótulo ou anotação sidecar.istio.io/inject:"true".

    The label selector which selector pods which will never be injected (NeverInjectSelector)

    Seletor de rótulos de pod configurável. Os pods correspondentes nunca recebem a injeção, agindo como se tivessem o rótulo ou anotação sidecar.istio.io/inject:"false".

    Nota

    Tanto o AlwaysInjectSelector quanto o NeverInjectSelector são seletores de rótulos de pod e seguem a mesma lógica de configuração. Cada seletor pode conter múltiplas expressões de seleção de rótulos, uma por linha. Um pod será selecionado se seus rótulos corresponderem a qualquer uma das expressões listadas.

    Cada expressão de seleção de rótulos compõe-se de três partes:

    • Chave: A chave do rótulo do pod a ser correspondida.

    • Operador: Define a lógica de correspondência. Estão disponíveis quatro operadores:

      • In: Corresponde se o valor do rótulo do pod estiver dentro do conjunto de valores especificado.

      • NotIn: Corresponde se o valor do rótulo do pod não estiver no conjunto de valores especificado.

      • Exists: Corresponde se o pod tiver um rótulo com a chave especificada.

      • DoesNotExist: Corresponde se o pod não tiver um rótulo com a chave especificada.

    • Valor: O conjunto de valores usado para comparação ao utilizar os operadores In ou NotIn.

  5. Na parte inferior da página, clique em Update Settings.

Configurar o injetor de sidecar

O injetor de sidecar é um serviço de admission webhook implantado no cluster Kubernetes do plano de dados. Ele injeta automaticamente os proxies sidecar, mas não atua como um proxy sidecar. Os serviços e workloads desse componente residem no namespace istio-system do cluster Kubernetes e seus nomes começam com istio-sidecar-injector. Ajuste as configurações de recursos e o número de réplicas do injetor para garantir disponibilidade durante a injeção simultânea de muitos pods. Para configurar monitoramento de métricas e regras de alerta para o serviço de admission webhook do injetor, consulte Gerenciamento de alertas do Container Service e Métricas de monitoramento do componente kube-apiserver.

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Data Plane Component Management > Sidecar Proxy injection.

  3. Na página Sidecar Proxy injection, na seção Injection service, ajuste as configurações do injetor de sidecar e clique em Update Settings na parte inferior da página.

    Parâmetro

    Descrição

    Resource Settings for Sidecar Injection

    Defina os Limits on Resources e os Required Resources para o contêiner do injetor de sidecar.

    • Limits on Resources: Estabelece os limites de CPU e memória para o contêiner do injetor. A unidade para limites de CPU é núcleos (cores) e para memória é MiB.

    • Required Resources: Especifica as solicitações de recursos de CPU e memória para o contêiner do injetor. As unidades seguem o padrão de núcleos para CPU e MiB para memória.

    pod replicas

    Quantidade de réplicas para o injetor de sidecar.

    Nota

    Aumentar o número de réplicas melhora a disponibilidade do serviço de injeção durante a criação simultânea de diversos pods. Para garantir alta disponibilidade, defina pelo menos 2 réplicas.

    Rewrite App Probe

    Determina se as verificações de integridade do pod devem ser reescritas durante a injeção. Para saber se é necessário ativar essa reescrita, consulte Ativar redirecionamento de verificação de integridade para aplicações em uma malha de serviços.

    Sidecar-injector NodeSelector

    Permite especificar rótulos de nó para controlar onde os pods do injetor de sidecar serão implantados.

    Clique em Add Match Label e insira o Name e o Value de um rótulo de nó existente no cluster do plano de dados para definir os nós de implantação.

Exemplo 1: Desativar injeção para pods específicos

  1. Configure a política de injeção automática.

    1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Data Plane Component Management > Sidecar Proxy injection.

    3. Na página Sidecar Proxy injection, ajuste as configurações na seção Injection strategy configuration management.

      A configuração abaixo injeta automaticamente um sidecar em todos os pods de um namespace rotulado com istio-injection: enabled, exceto se o pod tiver o rótulo ou anotação sidecar.istio.io/inject: "false".

      Parâmetro

      Descrição

      The labels of the pod's namespace must meet the conditions.

      Selecione Include istio-injection: enabled.

      The pod's own labels/annotations must meet the conditions.

      Escolha Not Include sidecar.istio.io/inject: "false" or Selected by NeverInjectSelector.

  2. Crie um namespace global e ative a injeção automática para ele.

    1. Na página de detalhes da instância do ASM, navegue até ASM Instance > Global Namespace no painel de navegação à esquerda. Na página exibida, clique em Create.

    2. No painel Create Namespace, insira um Name para o namespace (por exemplo, test1). Clique em Add ao lado de Tag, defina o Name como istio-injection e o Value como enabled, e clique em OK.

    3. No topo da página, clique em Sync Automatic Sidecar Injection to Kubernetes Cluster para sincronizar o namespace global com o cluster Kubernetes do plano de dados.

  3. Implante uma aplicação.

    1. Implante a aplicação details no namespace test1 do cluster ACK no plano de dados. Para mais informações, consulte Implantar uma aplicação em um cluster associado a uma instância do ASM.

    2. Verifique se o proxy sidecar foi injetado no pod da aplicação.

      1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

      2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

      3. No topo da página Deployments, defina o Namespace como test1 e clique no nome da aplicação details.

        Na aba Pods, observe que o pod details-v1 contém duas imagens: a imagem do proxy sidecar do Istio (proxyv2) e a imagem da aplicação (examples-bookinfo-details-v1). O status Running indica que a injeção do sidecar ocorreu com sucesso.

  4. Adicione um rótulo ao pod para desativar a injeção automática.

    1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

    3. Na página Deployments, localize a aplicação details no namespace test1 e clique em More > View YAML na coluna Actions.

    4. Na caixa de diálogo Edit, modifique a configuração YAML e clique em Update.

      • Para versões do ASM 1.12.4 e posteriores: no parâmetro labels, adicione um rótulo com a Chave sidecar.istio.io/inject e o Valor "false", definido como sidecar.istio.io/inject: 'false'.

        spec:
          progressDeadlineSeconds: 600
          replicas: 1
          revisionHistoryLimit: 10
          selector:
            matchLabels:
              app: details
              version: v1
          strategy:
            rollingUpdate:
              maxSurge: 25%
              maxUnavailable: 25%
            type: RollingUpdate
          template:
            metadata:
              labels:
                sidecar.istio.io/inject: "false"
                app: details
                version: v1
      • Para versões do ASM anteriores à 1.12.4: No parâmetro annotations, adicione uma anotação com a Chave sidecar.istio.io/inject e o Valor "false", resultando em sidecar.istio.io/inject: "false".

  5. Confirme que a injeção automática está desativada para o pod do serviço details, permanecendo ativa para o namespace test1.

    1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

    3. No topo da página Deployments, defina o Namespace como test1 e clique no nome da aplicação details.

      Na aba Pods, verifique se o pod details-v1 apresenta o status Running e contém apenas a imagem docker.io/istio/examples-bookinfo-details-v1:1.16.2. Isso confirma que o sidecar do Istio não foi injetado neste pod.

  6. Exemplo 2: Configurar injeção por pod individual

    É possível definir uma política de injeção para um pod específico em vez de aplicá-la a todo um namespace.

    1. Configure a política de injeção automática.

      1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

      2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Data Plane Component Management > Sidecar Proxy injection.

      3. Na página Injection strategy configuration management, ajuste as opções na seção Injection strategy configuration management e clique em Update Settings na parte inferior da página.

        Esta configuração injeta automaticamente um sidecar em pods que possuem o rótulo sidecar.istio.io/inject: "true" em qualquer namespace, excluindo pods situados em namespaces com o rótulo istio-injection: disabled.

        Parâmetro

        Descrição

        The labels of the pod's namespace must meet the conditions.

        Selecione Not include istio-injection: disabled.

        The pod's own labels/annotations must meet the conditions.

        Escolha Include sidecar.istio.io/inject: "true" or Selected by AlwaysInjectSelector.

    2. No cluster ACK, crie um namespace chamado test2 sem nenhum rótulo. Para mais detalhes, consulte Gerenciar namespaces e cotas.

    3. No namespace test2 do cluster ACK, implante a aplicação reviews. Consulte Implantar uma aplicação em um cluster associado a uma instância do ASM para obter instruções.

    4. Adicione um rótulo ao pod para ativar a injeção automática.

      1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

      2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

      3. No topo da página Deployments, defina o Namespace como test2. Na linha referente ao serviço reviews, clique em More > View YAML na coluna Actions.

      4. Na caixa de diálogo Edit YAML, sob o parâmetro labels, adicione o rótulo sidecar.istio.io/inject: "true" e clique em Update.

        Nota

        Para configurar a injeção automática de Pod via rótulos, a versão do Service Mesh ASM deve ser 1.12.4 ou superior. Para saber como atualizar sua instância, veja Atualizar uma instância do ASM.

        spec:
          progressDeadlineSeconds: 600
          replicas: 1
          revisionHistoryLimit: 10
          selector:
            matchLabels:
              app: reviews
              version: v1
          strategy:
            rollingUpdate:
              maxSurge: 25%
              maxUnavailable: 25%
            type: RollingUpdate
          template:
            metadata:
              labels:
                app: reviews
                sidecar.istio.io/inject: 'true'
                version: v1
    5. Valide se a política de injeção automática para o pod foi configurada corretamente.

      1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

      2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

      3. No topo da página Deployments, defina o Namespace como test2 e clique no nome da aplicação reviews.

        Na aba Pods, a lista de imagens do pod reviews-v1 exibe tanto a imagem do proxy sidecar do Istio (proxyv2) quanto a imagem do contêiner da aplicação (examples-bookinfo-reviews-v1). O status Running confirma que o sidecar foi injetado com êxito.

    6. Documentos relacionados

      • As políticas de injeção aplicam-se apenas a pods recém-criados. Reinicie os pods em execução para que a nova política tenha efeito. Consulte Reiniciar um pod para mais informações.

      • Caso suas aplicações habilitadas para Istio ainda utilizem uma versão antiga do proxy sidecar após uma atualização do plano de controle, siga as instruções em Atualizar proxies sidecar para atualizá-los.

      • É possível configurar consumo de recursos, política de interceptação de tráfego, proxy DNS e ciclo de vida de um proxy sidecar em diferentes níveis, como global, namespace, workload e pod. Veja Configurar um proxy sidecar para detalhes.