Configuração para instalar o Anthos Service Mesh no GKE

Nesta página, explicamos a configuração instalação do Anthos Service Mesh do seu projeto do Cloud e dos clusters do Google Kubernetes Engine (GKE) para uma malha composta por clusters que estão no mesmo projeto. Quando você usa o script fornecido pelo Google, install_asm, o script pode configurar seu projeto e cluster se você incluir a sinalização --enable_all ou as sinalizações de ativação mais granulares. Se você preferir fazer a configuração por conta própria em vez de deixar que install_asm realize as alterações, siga as etapas nesta página. Se você já tiver uma versão anterior do Anthos Service Mesh instalada, não será necessário fazer alterações no projeto ou no cluster antes de usar install_asm para fazer upgrade para a versão mais recente do Anthos Service Mesh.

Antes de começar

Configurar o projeto

  1. Consiga o ID e o número do projeto em que o cluster foi criado.

    gcloud

    Execute este comando:

    gcloud projects list
    

    Console

    1. Acesse a página Painel no console do Google Cloud:

      Ir para a página "Painel"

    2. Clique na lista suspensa na parte superior da página. Na janela Selecionar a partir de exibida, selecione seu projeto.

      O ID do projeto e o número do projeto são exibidos no card Informações do projeto do painel do projeto:

  2. Crie as variáveis de ambiente a seguir:

    • Defina o pool de carga de trabalho usando o ID do projeto:

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Defina o código da malha usando o número do projeto:

      export MESH_ID="proj-PROJECT_NUMBER"
      
  3. Defina os papéis necessários de gerenciamento de identidade e acesso (IAM, na sigla em inglês). Se você for um proprietário do projeto, terá todas as permissões necessárias para concluir a instalação. Se você não for proprietário do projeto, precisará que o proprietário conceda os seguintes papéis específicos do IAM. No comando a seguir, substitua PROJECT_ID pelo ID do projeto da etapa anterior e GCP_EMAIL_ADDRESS pela conta usada para fazer login no Google Cloud.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    Se você incluir a sinalização --enable_all ou --enable_gcp_iam_roles ao executar install_asm, ela definirá os papéis obrigatórios do IAM para você.

  4. Ative as seguintes APIs do Google:

    gcloud services enable \
        --project=PROJECT_ID \
        container.googleapis.com \
        compute.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        cloudtrace.googleapis.com \
        meshca.googleapis.com \
        meshtelemetry.googleapis.com \
        meshconfig.googleapis.com \
        iamcredentials.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com \
        stackdriver.googleapis.com
    

    A ativação das APIs pode levar um minuto ou mais para ser concluída. Quando as APIs estão ativadas, você vê uma saída semelhante a esta:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    Se você incluir a sinalização --enable_all ou --enable_apis ao executar install_asm, ela ativará as APIs necessárias para você.

Como configurar o cluster

Se você incluir a sinalização --enable_allou um dos recursos de sinalizações de ativação , o campoinstall_asm script configura o cluster para você.

  1. Defina a zona ou a região padrão da Google Cloud CLI. Se você não definir o padrão aqui, especifique a opção --zone ou --region nos comandos gcloud container clusters desta página.

    • Se você tiver um cluster de zona única, defina a zona padrão:

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • Se você tiver um cluster regional, defina a região padrão:

      gcloud config set compute/region CLUSTER_LOCATION
      
  2. Defina o mesh_idrótulo no cluster. Se o cluster tiver rótulos existentes que você quer manter, inclua-os ao adicionar o rótulo mesh_id.

    1. Para ver se o cluster tem rótulos existentes:

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

      Procure o campo resourceLabels na saída. Cada rótulo é armazenado em uma linha separada no campo resourceLabels. Por exemplo:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Para facilitar, é possível adicionar os rótulos a uma variável de ambiente. No exemplo a seguir, substitua YOUR_EXISTING_LABELS por uma lista separada por vírgulas dos rótulos existentes no seu cluster no formato KEY=VALUE. Por exemplo: env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
      
    2. Defina o rótulo mesh_id:

      • Se o cluster tiver rótulos que você quer manter, atualize o cluster com o mesh_id e os rótulos existentes:

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
        
      • Se o cluster não tiver rótulos existentes, atualize o cluster com apenas com o rótulo mesh_id:

        gcloud container clusters update CLUSTER_NAME \
            --project=PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID}
        
  3. Ative a Identidade da carga de trabalho:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    A ativação da Identidade da carga de trabalho pode levar de 10 a 15 minutos.

  4. Inicialize seu projeto para prepará-lo para instalação. Entre outras coisas, este comando cria uma conta de serviço para permitir componentes de plano de dados, como o proxy sidecar, para acessar com segurança os dados e os recursos do seu projeto.

    curl --request POST \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --data '' \
      "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
    

    A resposta do comando mostra chaves vazias: {}

  5. Ative o Cloud Monitoring e o Cloud Logging no GKE:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --logging=SYSTEM,WORKLOAD \
        --monitoring=SYSTEM
    

Seu projeto e o cluster do GKE já estão prontos para uma nova instalação ou migração do Istio usando install_asm. Quando você instala o Anthos Service Mesh usando install_asm, o perfil:

  1. Valida o projeto e o cluster.
  2. Cria uma conta de serviço no projeto para permitir que os componentes do plano de controle acessem os dados e os recursos do seu projeto.
  3. Configura os arquivos de recursos personalizados (CR, na sigla em inglês) IstioOperator necessários com as informações do projeto e do cluster para ativar os recursos padrão.
  4. Chama istioctl install. É possível especificar outros arquivos de CR IstioOperator ao chamar install_asm para ativar recursos opcionais

A seguir