Instale o Cloud Service Mesh para cargas de trabalho do Kubernetes fora do Google Cloud

Esta página explica como instalar o Cloud Service Mesh não gerido e no cluster para cargas de trabalho do Kubernetes Google Cloud:

  • Execute asmcli para fazer uma nova instalação do Cloud Service Mesh 1.26.4-asm.1.
  • Opcionalmente, implemente um gateway de entrada.
  • Implemente ou reimplemente as suas cargas de trabalho para injetar proxies sidecar.

Se precisar de instalar o Cloud Service Mesh não gerido no cluster com um istiod plano de controlo no GKE, consulte o artigo Instale o Cloud Service Mesh no cluster no Google Cloud. Tenha em atenção que, para cargas de trabalho do Kubernetes no Google Cloud, recomendamos que aprovisione um plano de controlo gerido

Para ver instruções sobre como preparar uma instalação offline do Cloud Service Mesh, consulte o artigo Prepare uma instalação offline do Cloud Service Mesh Tem de especificar as opções --offline e --output_dir quando executar o comando asmcli install.

Limitações

Tenha em atenção as seguintes limitações:

Antes de começar

Antes de começar:

Funções necessárias para instalar o Cloud Service Mesh no cluster

A tabela seguinte descreve as funções necessárias para instalar o Cloud Service Mesh no cluster.

Nome da função ID da função Conceda acesso à localização Descrição
Administrador do GKE Hub roles/gkehub.admin Projeto do Fleet Acesso total aos GKE Hubs e recursos relacionados.
Administrador do Kubernetes Engine roles/container.admin Agrupar projetos. Tenha em atenção que esta função tem de ser concedida no projeto do cluster e do Fleet para associações entre projetos. Oferece acesso à gestão total de clusters de contentores e dos respetivos objetos da API Kubernetes.
Administrador de configuração de malha roles/meshconfig.admin Projeto de frota e cluster Fornece as autorizações necessárias para inicializar os componentes geridos da Cloud Service Mesh, como o plano de controlo gerido e a autorização de back-end que permite que as cargas de trabalho comuniquem com o Stackdriver sem que cada uma seja autorizada individualmente (para planos de controlo geridos e no cluster).
Administrador de IAM de projetos roles/resourcemanager.projectIamAdmin Projeto de cluster Concede autorizações para administrar políticas IAM em projetos.
Administrador da conta de serviço roles/iam.serviceAccountAdmin Projeto do Fleet Autentique-se como uma conta de serviço.
Administrador de gestão de serviços roles/servicemanagement.admin Projeto do Fleet Controlo total dos recursos de gestão de serviços Google.
Administrador de utilização do serviço roles/serviceusage.serviceUsageAdmin Projeto do Fleet Capacidade de ativar, desativar e inspecionar estados de serviço, inspecionar operações e consumir quota e faturação para um projeto de consumidor.(Nota 1)
Administrador de serviço de AC Beta roles/privateca.admin Projeto do Fleet Acesso total a todos os recursos do serviço de AC. (Note 2)

Notas:

  1. Administrador de utilização de serviços: esta função é necessária como pré-requisito para ativar a API mesh.googleapis.com quando aprovisiona inicialmente a malha de serviços na nuvem gerida.
  2. Administrador do serviço de AC: esta função só é necessária se estiver a fazer a integração com o serviço de AC.

Instale o Cloud Service Mesh

As instruções seguintes descrevem como instalar o Cloud Service Mesh:

  1. Execute asmcli install para instalar o plano de controlo no cluster num único cluster. Consulte as secções seguintes para ver exemplos de linhas de comandos. Os exemplos contêm argumentos obrigatórios e argumentos opcionais que podem ser úteis. Recomendamos que especifique sempre o argumento output_dir para poder localizar gateways e ferramentas de exemplo, como istioctl. Consulte a barra de navegação à direita para ver uma lista dos exemplos.

  2. Opcionalmente, instale um gateway de entrada. Por predefinição, o asmcli não instala o istio-ingressgateway. Recomendamos que implemente e faça a gestão do plano de controlo e das gateways separadamente. Se precisar do istio-ingressgateway predefinido instalado com o plano de controlo no cluster, inclua o argumento --option legacy-default-ingressgateway.

  3. Para concluir a configuração do Cloud Service Mesh, tem de ativar a injeção automática de sidecars e implementar ou reimplementar cargas de trabalho.

  4. Se estiver a instalar o Cloud Service Mesh em mais do que um cluster, execute o comando asmcli install em cada cluster. Quando executar asmcli install, certifique-se de que usa o mesmo FLEET_PROJECT_ID para cada cluster. Após a instalação do Cloud Service Mesh, consulte as instruções para configurar uma malha de vários clusters desativada Google Cloud.

  5. Se os seus clusters estiverem em redes diferentes (como no modo isolado), deve transmitir um nome de rede exclusivo para asmcli através da flag --network_id.

Instale as funcionalidades predefinidas e a AC de malha

Esta secção mostra como executar asmcli para instalar a Cloud Service Mesh com as funcionalidades suportadas predefinidas para a sua plataforma e ativar a autoridade de certificação da Cloud Service Mesh como autoridade de certificação.

Nas instalações

Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --ca mesh_ca Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. asmcliconfigura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota

Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

AWS

Execute os seguintes comandos no GKE no AWS para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --ca mesh_ca Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. asmcliconfigura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.

Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

Azul-celeste

Execute os seguintes comandos no GKE no Azure para instalar o plano de controlo com funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --ca mesh_ca Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. asmcliconfigura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.

Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

Amazon EKS

Execute os seguintes comandos no Amazon EKS para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --option attached-cluster Altera a utilidade de assinatura predefinida para istiod.
    • --network_id Se estiver a configurar uma malha de várias redes, defina o --network_id para um valor único para cada cluster na malha.
    • --ca mesh_ca Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. asmcliconfigura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.

Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

Microsoft AKS

Execute os seguintes comandos no Microsoft AKS para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Permite o registo no GKE Hub.
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --option attached-cluster Altera a utilidade de assinatura predefinida para istiod.
    • --network_id Se estiver a configurar uma malha de várias redes, defina o --network_id para um valor único para cada cluster na malha.
    • --ca mesh_ca Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. asmcliconfigura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.

Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

Instale as funcionalidades predefinidas e o serviço de autoridade de certificação (AC)

Esta secção mostra como executar o asmcli para instalar a Cloud Service Mesh com as funcionalidades suportadas predefinidas para a sua plataforma e ativar o serviço de AC como a autoridade de certificação.

Além da autoridade de certificação do Cloud Service Mesh, pode configurar o Cloud Service Mesh para usar o Certificate Authority Service. Este guia oferece-lhe uma oportunidade de integração com o serviço de CA, que é recomendado para os seguintes exemplos de utilização:

  • Se precisar de diferentes autoridades de certificação para assinar certificados de carga de trabalho em diferentes clusters.
  • Se precisar de fazer uma cópia de segurança das suas chaves de assinatura num HSM na nuvem.
  • Se estiver num setor altamente regulamentado e estiver sujeito a conformidade.
  • Se quiser encadear a sua AC do Cloud Service Mesh a um certificado de raiz empresarial personalizado para assinar certificados de carga de trabalho.

O custo da autoridade de certificação do Cloud Service Mesh está incluído nos preços do Cloud Service Mesh. O serviço de AC não está incluído no preço base da Cloud Service Mesh e é cobrado separadamente. Além disso, o serviço de AC inclui um SLA explícito, mas a autoridade de certificação da malha de serviços na nuvem não.

Configure o serviço de CA

  1. Crie o conjunto de ACs no nível DevOps e na mesma região que o cluster que serve para evitar problemas de latência excessiva ou potenciais interrupções entre regiões. Para mais informações, consulte o artigo Níveis otimizados para cargas de trabalho.
  2. Crie a AC para ter, pelo menos, uma autoridade de certificação ativa no grupo de ACs no mesmo projeto que o cluster do GKE. Use ACs subordinadas para assinar certificados de carga de trabalho da Cloud Service Mesh. Anote o conjunto de ACs correspondente à AC subordinada.
  3. Se se destinar apenas a certificados de serviço para cargas de trabalho da Cloud Service Mesh, configure a seguinte política de emissão para o conjunto de ACs:

    policy.yaml

    baselineValues:
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
          serverAuth: true
          clientAuth: true
      caOptions:
        isCa: false
    identityConstraints:
      allowSubjectPassthrough: false
      allowSubjectAltNamesPassthrough: true
      celExpression:
        expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
    
  4. Para atualizar a política de emissão do conjunto de ACs, use o seguinte comando:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

    Para obter informações sobre como definir uma política num conjunto, consulte o artigo Usar uma política de emissão de certificados.

  5. Se estiver a usar um modelo de certificado, configure-o agora. Para mais informações, siga o guia do serviço de AC para certificados de identidade de carga de trabalho. Certifique-se de que o modelo de certificado é criado na mesma região que o conjunto de ACs. Se existirem várias regiões para pools de ACs, crie um modelo de certificado por região.

Configure a malha de serviço na nuvem para usar o serviço de AC

Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou no Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com as funcionalidades predefinidas e o serviço de autoridade de certificação. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --enable_all \
      --ca gcp_cas \
      --platform multicloud \
      --ca_pool  projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --ca gcp_cas Use o Certificate Authority Service como a autoridade de certificação. A alteração das autoridades de certificação durante uma atualização causa tempo de inatividade. O asmcliconfigura o serviço de autoridade de certificação para usar a identidade da carga de trabalho da frota
    • --ca_pool O identificador completo do serviço de autoridade de certificação CA Pool. Se estiver a usar um modelo de certificado, anexe o ID do modelo separado por :. Por exemplo:
        --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
        

    Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

Instale funcionalidades predefinidas com a AC do Istio

Esta secção explica como:

  • Gere certificados e chaves para a AC do Istio que o Cloud Service Mesh usa para assinar as suas cargas de trabalho.
  • Execute asmcli para instalar a malha de serviço na nuvem com as funcionalidades predefinidas e ativar a AC do Istio.

Por predefinição, os ambientes que instalam o Cloud Service Mesh com a AC do Istio comunicam métricas ao Prometheus. Se quiser usar os painéis de controlo da Cloud Service Mesh, tem de ativar o Stackdriver. Para mais informações, consulte o artigo Instale com funcionalidades opcionais.

Para a melhor segurança, recomendamos vivamente que mantenha uma AC raiz offline e use as ACs subordinadas para emitir certificados para cada cluster. Para mais informações, consulte o artigo Instale certificados de AC. Nesta configuração, todas as cargas de trabalho na malha de serviços usam a mesma autoridade de certificação (AC) raiz. Cada CA do Cloud Service Mesh usa uma chave de assinatura e um certificado da CA intermédia, assinados pela CA de raiz. Quando existem várias ACs numa malha, isto estabelece uma hierarquia de confiança entre as ACs. Pode repetir estes passos para aprovisionar certificados e chaves para qualquer número de autoridades de certificação.

O Makefile para gerar os certificados encontra-se no subdiretório istio-1.26.4-asm.1 no diretório --output_dir que especificou no comando asmcli validate. Se não executou asmcli validate ou não tiver o diretório transferido localmente, pode obter o ficheiro Makefile transferindo o ficheiro de instalação do Cloud Service Mesh e extraindo o conteúdo.

  1. Mude para o diretório istio-1.26.4-asm.1.

  2. Crie um diretório para os certificados e as chaves:

    mkdir -p certs && \
    pushd certs
  3. Gere um certificado de raiz e uma chave:

    make -f ../tools/certs/Makefile.selfsigned.mk root-ca
    

    Isto gera os seguintes ficheiros:

    • root-cert.pem: o certificado de raiz
    • root-key.pem: a chave de raiz
    • root-ca.conf: a configuração para o openssl gerar o certificado de raiz
    • root-cert.csr: o CSR para o certificado de raiz
  4. Gere um certificado e uma chave intermédios:

    make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts

    Isto gera estes ficheiros num diretório denominado cluster1:

    • ca-cert.pem: os certificados intermédios
    • ca-key.pem: a chave intermédia
    • cert-chain.pem: a cadeia de certificados que o istiod usa
    • root-cert.pem: o certificado de raiz

    Se executar estes passos num computador offline, copie o diretório gerado para um computador com acesso aos clusters.

  5. Regresse ao diretório anterior:

    popd
  6. Execute asmcli para instalar uma malha com a AC do Istio:

    Nas instalações

    Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou no Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com as funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Corrida asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio
      • --ca_key A chave do certificado intermédio
      • --root_cert O certificado de raiz
      • --cert_chain A cadeia de certificados

    AWS

    Execute os seguintes comandos no GKE no AWS para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.

    Público

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Corrida asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio.
      • --ca_key A chave do certificado intermédio.
      • --root_cert O certificado de raiz.
      • --cert_chain A cadeia de certificados.

    Privado

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Guarde o seguinte YAML num ficheiro denominado istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Corrida asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio.
      • --ca_key A chave do certificado intermédio.
      • --root_cert O certificado de raiz.
      • --cert_chain A cadeia de certificados.
      • --custom_overlay O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte o artigo Ativar funcionalidades opcionais no plano de controlo no cluster

    Azul-celeste

    Execute os seguintes comandos no GKE no Azure para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.

    Público

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Corrida asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio.
      • --ca_key A chave do certificado intermédio.
      • --root_cert O certificado de raiz.
      • --cert_chain A cadeia de certificados.

    Privado

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Guarde o seguinte YAML num ficheiro denominado istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Corrida asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio.
      • --ca_key A chave do certificado intermédio.
      • --root_cert O certificado de raiz.
      • --cert_chain A cadeia de certificados.
      • --custom_overlay O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte o artigo Ativar funcionalidades opcionais no plano de controlo no cluster

    Amazon EKS

    Execute os seguintes comandos no Amazon EKS para instalar o plano de controlo com as funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Corrida asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --option attached-cluster \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --network_id default
      
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • --option attached-cluster Altera a utilidade de assinatura predefinida para istiod.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio
      • --ca_key A chave do certificado intermédio
      • --root_cert O certificado de raiz
      • --cert_chain A cadeia de certificados
      • --network_id Se estiver a configurar uma malha de várias redes, defina o --network_id para um valor único para cada cluster na malha.

    Microsoft AKS

    Execute os seguintes comandos no Microsoft AKS para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.

    1. Defina o contexto atual para o cluster de utilizadores:

      kubectl config use-context CLUSTER_NAME
      
    2. Corrida asmcli install:

      HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --option attached-cluster \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --network_id default
      
      • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Permite o registo no GKE Hub.
      • --fleet_id O ID do projeto do projeto anfitrião da frota.
      • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
      • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
      • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
      • --enable_all Permite que o script:
        • Conceda as autorizações de IAM necessárias.
        • Ative as APIs Google necessárias.
        • Defina uma etiqueta no cluster que identifique a malha.
        • Registe o cluster na frota se ainda não estiver registado.
      • --option attached-cluster Altera a utilidade de assinatura predefinida para istiod.
      • -ca citadel Use a AC do Istio como autoridade de certificação.
      • --ca_cert O certificado intermédio
      • --ca_key A chave do certificado intermédio
      • --root_cert O certificado de raiz
      • --cert_chain A cadeia de certificados
      • --network_id Se estiver a configurar uma malha de várias redes, defina o --network_id para um valor único para cada cluster na malha.

Instale com a AC do Istio com a observabilidade do Google Cloud ativada

Se quiser usar os painéis de controlo do Cloud Service Mesh, tem de ativar o Stackdriver.

Nas instalações

Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou no Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
       --fleet_id FLEET_PROJECT_ID \
       --kubeconfig KUBECONFIG_FILE \
       --output_dir DIR_PATH \
       --platform multicloud \
       --enable_all \
       --ca citadel \
       --ca_cert CA_CERT_FILE_PATH \
       --ca_key CA_KEY_FILE_PATH \
       --root_cert ROOT_CERT_FILE_PATH \
       --cert_chain CERT_CHAIN_FILE_PATH
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio
    • --ca_key A chave do certificado intermédio
    • --root_cert O certificado de raiz
    • --cert_chain A cadeia de certificados
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver.

    Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.

AWS

Execute os seguintes comandos no GKE no AWS para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais, bem como a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.

Público

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio.
    • --ca_key A chave do certificado intermédio.
    • --root_cert O certificado de raiz.
    • --cert_chain A cadeia de certificados.
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver.

Privado

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Guarde o seguinte YAML num ficheiro denominado istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio.
    • --ca_key A chave do certificado intermédio.
    • --root_cert O certificado de raiz.
    • --cert_chain A cadeia de certificados.
    • --custom_overlay O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte Ativar funcionalidades opcionais no plano de controlo no cluster
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver. Em alternativa, pode ativar o Stackdriver através do --custom_overlay stackdriver.yaml. Tem de transferir o anthos-service-mesh-package ou criar stackdriver.yaml a partir do manifesto fornecido.

Azul-celeste

Execute os seguintes comandos no GKE no Azure para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais e a AC do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.

Público

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio.
    • --ca_key A chave do certificado intermédio.
    • --root_cert O certificado de raiz.
    • --cert_chain A cadeia de certificados.
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver.

Privado

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Guarde o seguinte YAML num ficheiro denominado istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio.
    • --ca_key A chave do certificado intermédio.
    • --root_cert O certificado de raiz.
    • --cert_chain A cadeia de certificados.
    • --custom_overlay O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte Ativar funcionalidades opcionais no plano de controlo no cluster
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver. Em alternativa, pode ativar o Stackdriver através do --custom_overlay stackdriver.yaml. Tem de transferir o anthos-service-mesh-package ou criar stackdriver.yaml a partir do manifesto fornecido.

Amazon EKS

Execute os seguintes comandos no Amazon EKS para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais, bem como a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver \
      --option attached-cluster
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio
    • --ca_key A chave do certificado intermédio
    • --root_cert O certificado de raiz
    • --cert_chain A cadeia de certificados
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver.
    • --option stackdriver Altera o utilitário de assinatura predefinido para istiod.

Microsoft AKS

Execute os seguintes comandos no Microsoft AKS para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Corrida asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver \
      --option attached-cluster
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Permite o registo no GKE Hub.
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • -ca citadel Use a AC do Istio como autoridade de certificação.
    • --ca_cert O certificado intermédio
    • --ca_key A chave do certificado intermédio
    • --root_cert O certificado de raiz
    • --cert_chain A cadeia de certificados
    • --option stackdriver Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando --option prometheus-and-stackdriver.
    • --option stackdriver Altera o utilitário de assinatura predefinido para istiod.

Instale com funcionalidades opcionais

Um ficheiro de sobreposição é um ficheiro YAML que contém um IstioOperator recurso personalizado (CR) que transmite ao asmcli para configurar o plano de controlo. Pode substituir a configuração predefinida do plano de controlo e ativar uma funcionalidade opcional transmitindo o ficheiro YAML para asmcli. Pode aplicar mais sobreposições e cada ficheiro de sobreposição substitui a configuração nas camadas anteriores. Como prática recomendada, sugerimos que guarde os ficheiros de sobreposição no seu sistema de controlo de versões.

Existem duas opções para ativar funcionalidades opcionais: --option e --custom_overlay.

Use --option se não precisar de alterar o ficheiro de sobreposição. Com este método, o ficheiro é asmcliobtido do repositório do GitHub por si.

Use --custom_overlay quando precisar de personalizar o ficheiro de sobreposição.

Para mais informações, consulte o artigo Ativar funcionalidades opcionais no plano de controlo no cluster.

Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware, Google Distributed Cloud (apenas software) para bare metal, GKE no AWS, GKE no Azure, Amazon EKS ou Microsoft AKS. Introduza os seus valores nos marcadores de posição fornecidos.

  1. Defina o contexto atual para o cluster de utilizadores:

    kubectl config use-context CLUSTER_NAME
    
  2. Execute asmcli install para instalar o plano de controlo com uma funcionalidade opcional. Para adicionar vários ficheiros, especifique --custom_overlay e o nome do ficheiro, por exemplo: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml

    ./asmcli install \
    --fleet_id FLEET_PROJECT_ID \
    --kubeconfig KUBECONFIG_FILE \
    --output_dir DIR_PATH \
    --platform multicloud \
    --enable_all \
    --ca mesh_ca \
    --custom_overlay OVERLAY_FILE
    
    • --fleet_id O ID do projeto do projeto anfitrião da frota.
    • --kubeconfig O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui. Além disso, as localizações de ficheiros kubeconfig relativas que usam um "~" não funcionam.
    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote anthos-service-mesh e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, asmcli transfere os ficheiros para um diretório tmp. Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.
    • --platform multicloud Especifica que a plataforma é algo diferente de Google Cloud, como no local ou na nuvem múltipla.
    • --enable_all Permite que o script:
      • Conceda as autorizações de IAM necessárias.
      • Ative as APIs Google necessárias.
      • Defina uma etiqueta no cluster que identifique a malha.
      • Registe o cluster na frota se ainda não estiver registado.
    • --ca mesh_ca Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. Tenha em atenção que asmcliconfigura a autoridade de certificação do Cloud Service Mesh para usar a identidade da carga de trabalho da frota
    • --custom_overlay Especifique o nome do ficheiro de sobreposição.

Instalação de gateways

O Cloud Service Mesh dá-lhe a opção de implementar e gerir gateways como parte da sua malha de serviços. Um gateway descreve um balanceador de carga que opera no limite da malha e recebe ligações HTTP/TCP de entrada ou saída. As gateways são proxies Envoy que lhe oferecem um controlo detalhado sobre o tráfego que entra e sai da malha.

  1. Crie um espaço de nomes para o gateway de entrada, se ainda não tiver um. Os gateways são cargas de trabalho do utilizador e, como prática recomendada, não devem ser implementados no espaço de nomes do plano de controlo. Substitua GATEWAY_NAMESPACE pelo nome do seu espaço de nomes.

    kubectl create namespace GATEWAY_NAMESPACE
    

    Resultado esperado:

    namespace/GATEWAY_NAMESPACE created
    
  2. Ative a injeção automática no gateway. Os passos necessários dependem de querer usar etiquetas de injeção predefinidas (por exemplo, istio-injection=enabled) ou a etiqueta de revisão no espaço de nomes do gateway. A etiqueta de revisão e a etiqueta de revisão predefinidas são usadas pelo webhook do injetor sidecar para associar proxies injetados a uma revisão do plano de controlo específica.

    1. Se usou uma revisão da etiqueta predefinida para ativar a injeção automática no gateway, verifique se a etiqueta predefinida existe no diretório que especificou em --output_dir e se está a apontar para a revisão instalada recentemente.

      DIR_PATH/istioctl tag list
      
    2. Aplique as etiquetas de injeção predefinidas ao espaço de nomes.

      kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
      

    Etiqueta de revisão

    1. Use o seguinte comando para localizar a etiqueta de revisão em istiod:

      kubectl get deploy -n istio-system -l app=istiod -o \
        "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
      

      O comando produz a etiqueta de revisão que corresponde à versão do Cloud Service Mesh, por exemplo: asm-1264-1

    2. Aplique a etiqueta de revisão ao espaço de nomes. No comando seguinte, REVISION é o valor da etiqueta de revisão istiod que anotou no passo anterior.

      kubectl label namespace GATEWAY_NAMESPACE \
        istio.io/rev=REVISION --overwrite
      

      Resultado esperado:

      namespace/GATEWAY_NAMESPACE labeled
      

    Pode ignorar a mensagem "istio.io/rev" not found no resultado. Isto significa que o espaço de nomes não tinha anteriormente a etiqueta istio.io/rev, o que deve esperar em novas instalações do Cloud Service Mesh ou novas implementações. Uma vez que a injeção automática falha se um espaço de nomes tiver a etiqueta istio.io/rev e a etiqueta istio-injection, todos os comandos kubectl label na documentação do Cloud Service Mesh especificam explicitamente ambas as etiquetas.

    Se o espaço de nomes do gateway não estiver etiquetado, os pods istio-ingressgateway falham com um erro ImagePullBackOff quando o gateway tenta extrair a imagem auto. Esta imagem deve ser substituída pelo webhook.

  3. Transfira o ficheiro de configuração .yaml do gateway de entrada de exemplo do repositório.anthos-service-mesh-packages

  4. Aplique a configuração .yaml do gateway de entrada de exemplo tal como está ou modifique-a conforme necessário.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f CONFIG_PATH/istio-ingressgateway
    

    Resultado esperado:

    deployment.apps/istio-ingressgateway created
    poddisruptionbudget.policy/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created
    service/istio-ingressgateway created
    serviceaccount/istio-ingressgateway created
    

Saiba mais acerca das práticas recomendadas para gateways.

Implemente e reimplemente cargas de trabalho

O Cloud Service Mesh usa proxies sidecar para melhorar a segurança, a fiabilidade e a observabilidade da rede. Com a malha de serviços na nuvem, estas funções são abstraídas do contentor principal da aplicação e implementadas num proxy fora do processo comum fornecido como um contentor separado no mesmo Pod.

A instalação não está concluída até ativar a injeção automática do proxy sidecar (injeção automática) e reiniciar os pods para todas as cargas de trabalho que estavam a ser executadas no cluster antes de instalar o Cloud Service Mesh.

Para ativar a injeção automática, etiquete os seus espaços de nomes com as etiquetas de injeção predefinidas se a etiqueta predefinida estiver configurada ou uma etiqueta de revisão que foi definida no istiod quando instalou o Cloud Service Mesh. A etiqueta de revisão predefinida e a etiqueta de revisão são usadas pelo webhook do injetor de contentores auxiliares para associar contentores auxiliares injetados a uma revisão istiod. Depois de adicionar a etiqueta, todos os Pods existentes no espaço de nomes têm de ser reiniciados para que os sidecars sejam injetados.

Antes de implementar novas cargas de trabalho num novo espaço de nomes, certifique-se de que configura a injeção automática para que o Cloud Service Mesh possa monitorizar e proteger o tráfego.

  1. Os passos necessários para ativar a injeção automática dependem de querer usar as etiquetas de injeção predefinidas ou a etiqueta de revisão:

    1. Se usou uma revisão da etiqueta predefinida para ativar a injeção automática no gateway, verifique se a etiqueta predefinida existe no diretório que especificou em --output_dir e se está a apontar para a revisão instalada recentemente.

      DIR_PATH/istioctl tag list
      
    2. Execute o seguinte comando. NAMESPACE é o nome do espaço de nomes onde quer ativar a injeção automática.

      kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
      

    As etiquetas de injeção predefinidas injetam a revisão para a qual a etiqueta predefinida está a apontar.

    Etiqueta de revisão

    1. Use o seguinte comando para localizar a etiqueta de revisão em istiod:

      kubectl -n istio-system get pods -l app=istiod --show-labels
      

      O resultado tem um aspeto semelhante ao seguinte:

      NAME                                READY   STATUS    RESTARTS   AGE   LABELS
      istiod-asm-1264-1-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1264-1,istio=istiod,pod-template-hash=5788d57586
      istiod-asm-1264-1-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1264-1,istio=istiod,pod-template-hash=5788d57586

      Na saída, na coluna LABELS, repare no valor da etiqueta de revisão istiod, que segue o prefixo istio.io/rev=. Neste exemplo, o valor é asm-1264-1.

    2. Aplique a etiqueta de revisão e remova a etiqueta istio-injection, se existir. No comando seguinte, NAMESPACE é o nome do espaço de nomes onde quer ativar a injeção automática e REVISION é a etiqueta de revisão que anotou no passo anterior.

      kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
      

      Pode ignorar a mensagem "istio-injection not found" no resultado. Isto significa que o espaço de nomes não tinha anteriormente a etiqueta istio-injection, o que deve esperar em novas instalações do Cloud Service Mesh ou novas implementações. Uma vez que o comportamento de injeção automática não está definido quando um espaço de nomes tem a etiqueta istio-injection e a etiqueta de revisão, todos os comandos kubectl label na documentação do Cloud Service Mesh garantem explicitamente que apenas uma está definida.

  2. Se as cargas de trabalho estavam a ser executadas no cluster antes de instalar o Cloud Service Mesh, reinicie os pods para acionar a reinjeção.

    A forma como reinicia os pods depende da sua aplicação e do ambiente em que o cluster se encontra. Por exemplo, no ambiente de preparação, pode simplesmente eliminar todos os pods, o que faz com que sejam reiniciados. No entanto, no seu ambiente de produção, pode ter um processo que implementa uma implementação azul-verde para que possa reiniciar os pods em segurança para evitar a interrupção do tráfego.

    Pode usar kubectl para fazer um reinício contínuo:

    kubectl rollout restart deployment -n NAMESPACE
    

O que se segue?