Como ativar recursos opcionais

Quando você instala o Anthos Service Mesh, os recursos do plano de controle ativados por padrão diferem por plataforma. Para ativar os recursos opcionais, inclua um arquivo de sobreposição ao instalar (ou fazer upgrade) do Anthos Service Mesh. Um arquivo de sobreposição é um arquivo YAML que contém um recurso personalizado (CR) IstioOperator usado para configurar o plano de controle. É possível substituir a configuração padrão e ativar um recurso opcional em um arquivo de sobreposição. É possível usar mais camadas, e cada arquivo de sobreposição substitui a configuração nas camadas anteriores.

Sobre os arquivos de sobreposição

Os arquivos de sobreposição nesta página estão no pacote anthos-service-mesh (em inglês) no GitHub. Esses arquivos contêm personalizações comuns da configuração padrão. É possível usar esses arquivos como estão ou fazer outras alterações neles conforme necessário.

  • Ao instalar o Anthos Service Mesh usando o comando istioctl install, especifique um ou mais arquivos de sobreposição com a opção de linha de comando -f. Mesmo que seja possível 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 recursos personalizados. É necessário manter esses arquivos para fazer upgrade do Anthos Service Mesh. Assim, o plano de controle terá a mesma configuração após o upgrade.

  • Ao instalar o Anthos Service Mesh usando o script install_asm fornecido pelo Google, é possível especificar um ou mais arquivos de sobreposição com as opções --option ou --custom_overlay. Caso não precise fazer mudanças nos arquivos no repositório anthos-service-mesh, 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.

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

Como fazer o download do pacote anthos-service-mesh

Para fazer o download do pacote anthos-service-mesh:

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.8-asm asm
    

    Os exemplos a seguir presumem que o pacote asm está no seu diretório de trabalho atual.

Examples

Para ativar um recurso ao instalar o Anthos Service Mesh, o comando exato varia um pouco dependendo da sua plataforma e se você estiver 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 nome de implantação istiod será definido como istiod-asm-186-8. Um rótulo de revisão está no formato istio.io/rev=asm-186-8. 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 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 até que esteja instalando o Anthos Service Mesh. O guia inclui as etapas para definir a variável de ambiente CTX_CLUSTER1 e para configurar o cluster.yaml. Uma das configurações que você define em cluster.yaml é a revisão. 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 --context="${CTX_CLUSTER1}" \
      -f cluster.yaml \
      -f asm/istio/options/egressgateways.yaml
    
  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.

A ordem dos arquivos na linha de comando é importante. Especifique cluster.yaml primeiro, que tenha a configuração necessária para os recursos padrão e, em seguida, os arquivos de sobreposição depois disso.

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

Recomendamos que você use o script install_asm para configurar um ou mais clusters no mesmo projeto. O script 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.8-asm que instala o Anthos Service Mesh 1.8.6.

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_all \
  --option egressgateways

Esse comando executa o script para uma nova instalação e ativa o Mesh CA, que é a CA padrão para instalações. A sinalização --enable_all permite que o script ative as APIs do Google necessárias, defina as permissões de gerenciamento de identidade e acesso e faça as atualizações necessárias no cluster, que inclui a ativação da Identidade da carga de trabalho do GKE. O script busca o arquivo egressgateways.yaml do GitHub, que é usado para configurar o plano de controle.

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 em clusters em projetos diferentes.

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.

  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-186-8
    

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

    • O arquivo multiproject.yaml é usado para especificar os recursos padrão para uma malha de vários projetos. É necessário 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

Atualmente, a configuração do rastreador faz parte da configuração de inicialização do proxy. Por isso, o pod precisa ser reiniciado e reinjetado para coletar a atualização do rastreador. Por exemplo, é possível usar o comando a seguir para reiniciar os pods de uma implantação:

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

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.