Instalar ferramentas dependentes e verificar cluster

Nesta página, mostramos como preparar o ambiente e o cluster para instalar o Cloud Service Mesh.

Instale as ferramentas necessárias

Execute asmcli no Cloud Shell ou na máquina local em que o Linux é executado. Todas as ferramentas necessárias são pré-instaladas no Cloud Shell.

Se você estiver executando asmcli no local, verifique se você tem as seguintes ferramentas instaladas:

  • A Google Cloud CLI
  • As ferramentas de linha de comando padrão: awk, curl, grep, sed e tr.
  • git
  • kubectl
  • jq
  • Opcional, para testar a conectividade: netcat (nc).

Configurar a gcloud

Siga as etapas abaixo mesmo se estiver usando o Cloud Shell.

  1. Faça a autenticação com a Google Cloud CLI:

    gcloud auth login --project PROJECT_ID
    
  2. Atualize os componentes:

    gcloud components update
    
  3. Se você estiver instalando o Cloud Service Mesh em um cluster do GKE, configure kubectl para apontar para o cluster.

    gcloud container clusters get-credentials CLUSTER_NAME \
         --location CLUSTER_LOCATION \
         --project PROJECT_ID
    

Fazer o download do asmcli

Nesta seção, descrevemos como fazer o download do asmcli.

  1. Faça o download da versão que instala o Cloud Service Mesh 1.19.10 no diretório de trabalho atual:

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.19 > asmcli
    

    Saída esperada:

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
    100  167k  100  167k    0     0   701k      0 --:--:-- --:--:-- --:--:--  701k
    
  2. Torne o script executável:

    chmod +x asmcli
    

Conceder permissões de administrador de cluster

  1. Verifique se você definiu o contexto para o cluster de usuário:

    kubectl config use-context CONTEXT
  2. Conceda permissões de administrador de cluster à sua conta de usuário (seu endereço de e-mail de login do Google Cloud). Você precisa dessas permissões para criar as regras necessárias de controle de acesso baseado em papéis (RBAC, na sigla em inglês) para o Cloud Service Mesh:

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user=USER_ACCOUNT

Validar o projeto e o cluster

É possível executar asmcli validate para garantir que o projeto e o cluster estejam configurados conforme necessário para instalar o Cloud Service Mesh. Com essa opção, o asmcli não faz alterações no projeto nem no cluster e também não instala o Cloud Service Mesh.

asmcli valida se:

Por padrão, asmcli faz o download e extrai o arquivo de instalação e faz o download do pacote de configuração asm do GitHub para um diretório temporário. Antes de sair, asmcli gera uma mensagem que fornece o nome do diretório temporário. Recomendamos que você especifique um diretório para os downloads com a opção --output_dir DIR_PATH. A opção --output_dir facilita o uso da ferramenta de linha de comando istioctl. Talvez seja necessário istioctl para solucionar problemas de configuração ou configurar uma malha de vários clusters em clusters particulares do GKE. Além disso, os arquivos de configuração para ativar recursos opcionais usando asmcli estão incluídos no diretório asm/istio/options.

Execute o seguinte comando para validar a configuração e fazer o download do arquivo de instalação e do pacote asm para o diretório OUTPUT_DIR.

GKE;

./asmcli validate \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH
  • --project_id, --cluster_name e --cluster_location especifique o ID do projeto em que o cluster está, o nome dele e a zona ou região do cluster.

  • --fleet_id O ID do projeto host da frota. asmcli validate verifica se o cluster está registrado na frota especificada.

  • --output_dir Inclua essa opção para especificar um diretório em que asmcli faz o download do pacote asm e extrai o arquivo de instalação, que contém istioctl, amostras e manifestos. Caso contrário, asmcli fará o download dos arquivos para um diretório tmp. É possível especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.

Fora do Google Cloud

Use o comando a seguir para executar asmcli validate nas seguintes plataformas: Google Distributed Cloud, GKE na AWS, Amazon EKS e Microsoft AKS.

  1. Defina o contexto atual para o cluster de usuário:

    kubectl config use-context CLUSTER_NAME
    
  2. Execute o seguinte comando para validar a configuração e fazer o download do arquivo de instalação e do pacote asm para o diretório OUTPUT_DIR:

    ./asmcli validate \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --platform multicloud
    
    • --kubeconfig O caminho para kubeconfig. É possível especificar um caminho relativo ou completo. A variável de ambiente $PWD não funciona aqui.

    • --fleet_id O ID do projeto host da frota. asmcli validate verifica se o cluster está registrado na frota especificada.

    • --output_dir Inclua essa opção para especificar um diretório em que asmcli faz o download do pacote asm e extrai o arquivo de instalação, que contém istioctl, amostras e manifestos. Caso contrário, asmcli fará o download dos arquivos para um diretório tmp. É possível 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 do Google Cloud, como no local ou em várias nuvens.

Se for bem-sucedido, o asmcli gerará o seguinte:

asmcli: Setting up necessary files...
asmcli: Using asm_kubeconfig as the kubeconfig...
asmcli: Checking installation tool dependencies...
asmcli: Fetching/writing GCP credentials to kubeconfig file...
asmcli: Verifying connectivity (10s)...
asmcli: kubeconfig set to asm_kubeconfig
asmcli: using context gke_example-project-12345_us-central1_cluster-2
asmcli: Getting account information...
asmcli: Downloading ASM..
asmcli: Downloading ASM kpt package...
fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm"
asmcli: Checking required APIs...
asmcli: Checking for project example-project-12345...
asmcli: Reading labels for us-central1/cluster-2...
asmcli: Checking for istio-system namespace...
asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2...
asmcli: Checking Istio installations...
asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized.
asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized
asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components
asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh
asmcli: [WARNING]: will not function correctly.
asmcli: Successfully validated all requirements to install ASM.

Se um dos testes falhar na validação, o asmcli exibirá uma mensagem de erro. Por exemplo, se seu projeto não tiver todas as APIs do Google necessárias ativadas, você verá o seguinte erro:

ERROR: One or more APIs are not enabled. Please enable them and retry, or run
`asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them
on your behalf.

Se você recebeu uma mensagem de erro sobre a necessidade de executar asmcli com uma sinalização de ativação, terá as seguintes opções:

  • Inclua a sinalização específica da mensagem de erro ou a sinalização --enable_all ao executar asmcli para fazer a instalação real.

  • Se preferir, atualize você mesmo seu projeto e cluster antes de executar asmcli, conforme descrito em Configurar seu projeto e o cluster do GKE por conta própria.

asmcli validate não permite nenhuma sinalização de ativação porque valida apenas que o projeto e o cluster estejam prontos para instalação.

Inspecionar requisitos de instalação e upgrade do cluster

Antes de fazer upgrade, verifique se a configuração é compatível com a nova versão do Cloud Service Mesh.

  1. Altere para o diretório especificado em --output_dir.

  2. Execute o comando a seguir para inspecionar o cluster do Kubernetes e verificar os requisitos de instalação e upgrade. Use a versão de istioctl distribuída com a nova versão do Cloud Service Mesh.

    istioctl experimental precheck
    

A seguir