Instale ferramentas dependentes e valide o cluster

Esta página mostra como preparar o ambiente e o cluster para instalar o Cloud Service Mesh no cluster para cargas de trabalho do Kubernetes Google Cloud.

Instale as ferramentas necessárias

Pode executar o comando asmcli no Cloud Shell ou na sua máquina local com o Linux. O Cloud Shell pré-instala todas as ferramentas necessárias.

Se estiver a executar o asmcli localmente, certifique-se de que tem as seguintes ferramentas instaladas:

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

Configure o gcloud

Siga os passos seguintes, mesmo que esteja a usar o Cloud Shell.

  1. Autentique 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 utilizadores:

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

Transfira o asmcli

Esta secção descreve como transferir o asmcli.

  1. Transfira a versão que instala o Cloud Service Mesh 1.21.5 para o diretório de trabalho atual:

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

    Resultado esperado:

    % 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
    

Conceda autorizações de administrador do cluster

  1. Certifique-se de que definiu o contexto para o cluster de utilizadores:

    kubectl config use-context CONTEXT
  2. Conceda autorizações de administrador do cluster à sua conta de utilizador (o seu Google Cloud endereço de email de início de sessão). Precisa destas autorizações para criar as regras de controlo de acesso baseado em funções (CABF) necessárias para o Cloud Service Mesh:

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

Valide o projeto e o cluster

Pode executar asmcli validate para se certificar de que o seu projeto e cluster estão configurados conforme necessário para instalar o Cloud Service Mesh. Com esta opção, asmclinão faz alterações ao seu projeto nem cluster e não instala o Cloud Service Mesh.

asmcli valida que:

Por predefinição, o asmcli transfere e extrai o ficheiro de instalação e transfere o asm pacote de configuração do GitHub para um diretório temporário. Antes de sair, asmcli gera uma mensagem que indica o nome do diretório temporário. Recomendamos que especifique um diretório para as transferências com a opção --output_dir DIR_PATH. A opção --output_dir facilita a utilização da ferramenta de linha de comandos istioctl. Pode precisar do istioctl para resolver problemas de configuração. Além disso, os ficheiros de configuração para ativar funcionalidades opcionais através de asmcli estão incluídos no diretório asm/istio/options.

Execute o seguinte comando para validar a configuração e transferir o ficheiro de instalação e o pacote asm para o diretório OUTPUT_DIR.

Use o seguinte comando para executar o asmcli validate nas seguintes plataformas: Google Distributed Cloud (apenas software) para VMware, Google Distributed Cloud (apenas software) para bare metal, GKE no AWS, GKE no Azure, Amazon EKS e Microsoft AKS.

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

    kubectl config use-context CLUSTER_NAME
    
  2. Execute o seguinte comando para validar a sua configuração e transferir o ficheiro 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 o kubeconfig Pode especificar um caminho relativo ou um caminho completo. A variável de ambiente $PWD não funciona aqui.

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

    • --output_dir Inclua esta opção para especificar um diretório onde asmcli transfere o pacote asm e extrai o ficheiro de instalação, que contém istioctl, exemplos e manifestos. Caso contrário, o 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.

Em caso de êxito, o comando asmcli produz o seguinte resultado:

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 a validação, o asmcli produz uma mensagem de erro. Por exemplo, se o seu projeto não tiver todas as APIs Google necessárias ativadas, é apresentado 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 recebeu uma mensagem de erro a indicar que tem de executar o comando asmcli com uma flag de ativação, tem as seguintes opções:

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

  • Se preferir, pode atualizar o projeto e o cluster antes de executar o comando asmcli, conforme descrito em Configure o seu projeto e cluster do GKE.

Tenha em atenção que o asmcli validate não permite flags de ativação porque apenas valida se o seu projeto e cluster estão prontos para a instalação.

Inspecione os requisitos de instalação e atualização do cluster

Antes de fazer a atualização, deve verificar se a sua configuração é compatível com a nova versão do Cloud Service Mesh.

  1. Altere para o diretório que especificou em --output_dir.

  2. Execute o seguinte comando para inspecionar o cluster do Kubernetes quanto aos requisitos de instalação e atualização. Certifique-se de que usa a versão do istioctl distribuída com a nova versão do Cloud Service Mesh.

    istioctl experimental precheck
    

O que se segue?