Como ativar recursos opcionais

Ao instalar o Anthos Service Mesh, dependendo do seu ambiente, você especifica um perfil de configuração ou especifica um arquivo de sobreposição que define o perfil para você. Os perfis de configuração são arquivos YAML que usam a API IstioOperator. Os perfis de configuração definem e configuram os recursos instalados com o Anthos Service Mesh. Os perfis do Anthos Service Mesh são sobreposições do perfil empty (o que significa que não há configurações) ou do perfil default do Istio (em inglês). Os perfis a seguir são fornecidos com o Anthos Service Mesh:

  • asm-gcp: use este perfil se todos os clusters do GKE estiverem no mesmo projeto. Quando você instala o Anthos Service Mesh com este perfil, os seguintes recursos são ativados:

  • asm-gcp-multiproject: use este perfil se seu cluster do GKE estiver em uma nuvem privada virtual compartilhada e você quiser adicionar clusters de diferentes projetos ao Anthos Service Mesh. Ao instalar o Anthos Service Mesh com o perfil asm-gcp-multiproject:

    • No momento, os painéis do Anthos Service Mesh no Console do Google Cloud não estão disponíveis. No entanto, ainda é possível ver registros no Cloud Logging e métricas no Cloud Monitoring de cada projeto.

    • Osrecursos padrão compatíveis listados na página Recursos compatíveis do perfil de configuração asm-gcp-multiproject estão ativados.

  • asm-multicloud: use esse perfil para clusters em outros ambientes compatíveis: GKE on VMware, GKE na AWS, Amazon Elastic Kubernetes Service (Amazon EKS) e Microsoft Azure Kubernetes Service (Microsoft AKS). Instalar o Anthos Service Mesh com o perfil asm-multicloud.yaml ativa os recursos padrão compatíveis listados na página Recursos compatíveis do perfil de configuração asm-multicloud.

Os perfis estão localizados no subdiretório manifests/profiles no diretório raiz da instalação do Anthos Service Mesh.

Arquivos de sobreposição

Um arquivo de sobreposição é um arquivo YAML contendo um recurso personalizado (CR) IstioOperator usado para configurar o plano de controle. É possível substituir a configuração padrão e ativar os recursos opcionais compatíveis em um arquivo de sobreposição. É possível usar mais camadas, e cada arquivo de sobreposição substitui a configuração nas camadas anteriores.

Quando você instala ou faz upgrade do Anthos Service Mesh usando o comando istioctl install, é possível especificar um ou mais arquivos de sobreposição na linha de comando com a opção de linha de comando -f.

Não inclua várias respostas automáticas em um arquivo YAML Crie arquivos YAML separados para cada resposta automática
várias respostas automáticas em um yaml arquivos yaml separados para cada resposta automática

Embora você possa modificar a configuração especificando parâmetros de configuração na linha de comando usando a opção --set para istioctl install, recomendamos o uso de um arquivo de sobreposição para armazenar o arquivo em seu sistema de controle de versões junto com seus outros arquivos de definição de recursos. É preciso manter esses arquivos para fazer upgrade do Anthos Service Mesh. Assim, a malha de serviço terá a mesma configuração após o upgrade.

Os arquivos de sobreposição nesta página estão no pacote asm (em inglês) no GitHub. Esses arquivos contêm personalizações comuns nos perfis. É possível usar esses arquivos como estão ou fazer outras alterações neles conforme necessário. Você também pode criar seus próprios arquivos de sobreposição, conforme descrito em Como personalizar a configuração.

Ao instalar o Anthos Service Mesh usando o script install_asm fornecido pelo Google, você pode especificar um ou mais arquivos de sobreposição com --option ou o --custom_overlay opções. Caso não precise fazer mudanças nos arquivos, use --option, e o script busca o arquivo no GitHub para você. Caso contrário, você pode fazer alterações no arquivo de sobreposição e usar a opção --custom_overlay para passá-la para o script install_asm. Para exemplos de uso de ambas as opções, consulte exemplos de install_asm.

Para fazer o download do pacote asm:

Nas etapas a seguir, kpt é usado para fazer o download do pacote asm no repositório do GitHub. Se preferir, use git clone.

  1. Instale kpt caso ainda não tenha feito isso:

    gcloud components install kpt
    
  2. Faça o download do pacote que contém os arquivos:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    

Examples

Para ativar um recurso ao instalar ou fazer upgrade do Anthos Service Mesh, inclua o perfil ou o arquivo de sobreposição que define o perfil e o arquivo do recurso que você quer ativar. O comando exato será ligeiramente diferente, dependendo do seu ambiente e se você está usando o script install_asm ou o comando istioctl install.

Todos os comandos a seguir definem um rótulo de revisão em istiod. O rótulo de revisão está no formato istio.io/rev=asm-178-10. O rótulo de revisão é usado pelo webhook do injetor automático de sidecar para associar os sidecars injetados a uma revisão istiod específica. Para ativar a injeção automática de arquivo secundário para um namespace, rotule-o com uma revisão correspondente ao rótulo de revisão em istiod.

Ativar um gateway de saída no GKE On-Prem

Neste exemplo, presume-se que você tenha seguido as etapas do guia Como instalar o Anthos Service Mesh no local ao ponto em que instalar o Anthos Service Mesh e que o pacote asm é no diretório de trabalho atual. O arquivo egressgateways.yaml contém a configuração para ativar um gateway de saída.

  1. Instale o Anthos Service Mesh no GKE no VMware:

    istioctl install \
      --set profile=asm-multicloud \
      -f asm/istio/options/egressgateways.yaml \
      --set revision=asm-178-10
    
  2. Não deixe de voltar ao guia de instalação do GKE no VMware para configurar o webhook de validação, que é necessário para novas instalações.

Ativar um gateway de saída no GKE no Google Cloud

Recomendamos que você use o script install_asm para configurar clusters independentes ou vários clusters no mesmo projeto. O script usa o perfil asm-gcp e define um rótulo de revisão em istiod. Para seguir este exemplo, é necessário que você tenha seguido o guia Como instalar o Anthos Service Mesh no GKE para fazer o download da versão do script install_asm na ramificação release-1.7-asm que instala o Anthos Service Mesh 1.7.8.

Para usar o script install_asm para instalar um gateway de saída:

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_apis \
  --option egressgateways

Esse comando executa o script para uma nova instalação, define oasm-gcp configurar seu cluster com as opções exigidas pelo Anthos Service Mesh, ativar o Mesh CA (a autoridade de certificação padrão para novas instalações), permitir que o script ative as APIs do Google necessárias e buscar o { 1.01}egressgateways.yaml do GitHub.

Ativar um gateway de saída em clusters do GKE em diferentes projetos

Atualmente, o script install_asm não é compatível com a instalação do Anthos Service Mesh com o perfil asm-gcp-multiproject, que é o perfil necessário quando você quer configurar vários clusters em diferentes para o Anthos Service Mesh.

A linha de comando a seguir pressupõe que você seguiu todas as etapas em instalação e migração de vários projetos até o ponto em que instala o Anthos Service Mesh e que o pacote asm está no diretório de trabalho atual.

  1. Instale o Anthos Service Mesh:

    istioctl install \
     -f asm/istio/istio-operator.yaml \
     -f asm/istio/options/multiproject.yaml \
     -f asm/istio/options/multicluster.yaml\
     -f asm/istio/options/egressgateways.yaml \
     --set revision=asm-178-10
    

    Os arquivos a seguir se sobrepõem às configurações do arquivo istio-operator.yaml:

    • O arquivo multiproject.yaml define o perfil do asm-gcp-multiproject. Como esse arquivo define o perfil, você precisa especificá-lo antes dos outros arquivos de sobreposição.

    • O arquivo multicluster.yaml define as configurações que o Anthos Service Mesh precisa para uma configuração de vários clusters.

    • O arquivo egressgateways.yaml configura o gateway de saída.

  2. Volte para o guia de instalação de vários projetos para configurar o webhook de validação, que é necessário para novas instalações.

YAML para recursos opcionais

As seções a seguir fornecem o YAML para ativar recursos opcionais e compatíveis.

Modo mTLS STRICT

A configuração global.mtls.enabled foi removida para evitar problemas com os upgrades e fornecer uma instalação mais flexível. Para ativar o mTLS STRICT, configure uma política de autenticação de peering.

Envoy direto para stdout

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: "/dev/stdout"

Para mais informações, consulte Ativar a geração de registros de acesso do Envoy.

Cloud Trace

Para instalações no GKE, é possível ativar o Cloud Trace. Para informações detalhadas de preço do Cloud Trace, consulte esta página.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    global:
      proxy:
        tracer: stackdriver

A taxa de amostragem padrão é de 1%, mas é possível substituir o padrão especificando um valor tracing.sampling. O valor precisa estar no intervalo de 0,0 a 100,0 com uma precisão de 0,01. Por exemplo, para gerar traces de cinco solicitações de cada 10.000, use 0,05.

O exemplo a seguir mostra uma taxa de amostragem de 100%, que é o que você faria apenas para fins de demonstração ou solução de problemas.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100
  values:
    global:
      proxy:
        tracer: stackdriver

Propagação do contexto de trace

Os proxies secundários podem enviar períodos de trace automaticamente, mas eles precisam de algumas dicas para unir todo o trace. Os aplicativos precisam propagar os cabeçalhos HTTP apropriados para que, quando os proxies enviarem informações de período, os períodos possam ser correlacionados corretamente em um único trace.

Para fazer isso, um aplicativo precisa coletar e propagar os seguintes cabeçalhos da solicitação de entrada para qualquer solicitação de saída:

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-paispan
  • x-b3
  • x-b3-flags
  • x-ot-span-context
  • x-cloud-trace-context
  • traceparent
  • grpc-trace-bin

Para exemplos de propagação dos cabeçalhos, consulte Rastrear a propagação de contexto.

Criar um trace do cliente com um ID personalizado.

Para criar um trace de um cliente com um ID personalizado, use o comando curl para criar uma solicitação com um cliente externo e forçá-lo a mostrar um trace. Exemplo:

curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"

Para mais informações sobre x-client-trace-id, consulte a documentação do Envoy (em inglês).

Saída por meio de gateways

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    egressGateways:
    - name: istio-egressgateway
      enabled: true

Para mais informações, consulte Gateways de saída.

Interface de rede de contêiner do Istio

A forma como você ativa a interface de rede de contêiner do Istio (CNI, na sigla em inglês) depende do ambiente em que o Anthos Service Mesh está instalado. Você também precisa ativar uma política de rede.

Ativar a CNI no GKE

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /home/kubernetes/bin
      excludeNamespaces:
      - istio-system
      - kube-system

Ativar CNI no GKE no VMware

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /opt/cni/bin
      excludeNamespaces:
      - istio-system
      - kube-system
      - gke-system

Ativar um balanceador de carga interno

Para instalações no GKE, é possível ativar um balanceador de carga interno para o gateway de entrada do Istio.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      k8s:
        serviceAnnotations:
          cloud.google.com/load-balancer-type: "internal"
        service:
          ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443

Gerenciamento de certificados externos no gateway de entrada

Para informações sobre como ativar o gerenciamento de certificados externos no gateway de entrada usando o Envoy SDS, consulte Gateways seguros.