Instalar ferramentas dependentes e verificar clusters

Nesta página, mostramos como preparar o ambiente e o cluster para instalar o Cloud Service Mesh no cluster para cargas de trabalho do Kubernetes fora do Google Cloud.

Instalar 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 CLI do Google Cloud
  • 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 CLI do Google Cloud:

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

    gcloud components update
    

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

Defina o contexto kubectl para apontar para o cluster fora doGoogle Cloud , de acordo com as instruções específicas da plataforma.

Baixar o asmcli

Nesta seção, descrevemos como baixar o asmcli.

  1. Baixe a versão que instala o Cloud Service Mesh 1.23.6 no diretório de trabalho atual:

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.23 > 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ê vai usá-las 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 ou no cluster e também não instala o Cloud Service Mesh.

O asmcli valida se:

Por padrão, o asmcli baixa e extrai o arquivo de instalação e baixa o pacote de configuração asm do GitHub para um diretório temporário. Antes de sair, o asmcli gera uma mensagem que fornece o nome do diretório temporário. Recomendamos especificar um diretório para os arquivos baixados com a opção --output_dir DIR_PATH. A opção --output_dir facilita o uso da ferramenta de linha de comando istioctl. Talvez o istioctl seja necessário para resolver problemas de configuração. Além disso, os arquivos de configuração para ativar recursos opcionais usando o asmcli estão incluídos no diretório asm/istio/options.

Execute o comando a seguir para validar a configuração e baixar o arquivo de instalação e o pacote asm para o diretório OUTPUT_DIR.

Use o comando a seguir para executar asmcli validate nas seguintes plataformas: Google Distributed Cloud (somente software) para VMware, Google Distributed Cloud (somente software) para bare metal, GKE na AWS, GKE no Azure, 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 baixar o arquivo de instalação e o 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 baixa o pacote asm e extrai o arquivo de instalação, que contém istioctl, amostras e manifestos. Caso contrário, asmcli baixará os 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 de Google Cloud, como no local ou multicloud.

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 flag de ativação, tem as seguintes opções:

O asmcli validate não permite flags de ativação porque ele apenas confirma que o projeto e o cluster estão 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