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,sedetr. gitkubectljq- Opcional, para testar a conectividade: netcat (
nc).
Configurar a gcloud
Siga as etapas abaixo mesmo se estiver usando o Cloud Shell.
Faça a autenticação com a Google Cloud CLI:
gcloud auth login --project PROJECT_IDAtualize os componentes:
gcloud components updateSe você estiver instalando o Cloud Service Mesh em um cluster do GKE, configure
kubectlpara 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.
Faça o download da versão que instala o Cloud Service Mesh 1.27.1 no diretório de trabalho atual:
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.27 > asmcliSaí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 --:--:-- --:--:-- --:--:-- 701kTorne o script executável:
chmod +x asmcli
Conceder permissões de administrador de cluster
Verifique se você definiu o contexto para o cluster de usuário:
kubectl config use-context CONTEXT
Conceda permissões de administrador de cluster à sua conta de usuário (seu Google Cloud endereço de e-mail de login). 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:
seu ambiente tem as ferramentas necessárias;
O cluster atende aos requisitos mínimos.
você tem a permissão necessária no projeto especificado;
O projeto tem todas as APIs do Google necessárias ativadas.
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_namee--cluster_locationespecifique o ID do projeto em que o cluster está, o nome dele e a zona ou região do cluster.--fleet_idO ID do projeto host da frota.asmcli validateverifica se o cluster está registrado na frota especificada.--output_dirInclua essa opção para especificar um diretório em queasmclifaz o download do pacoteasme extrai o arquivo de instalação, que contémistioctl, amostras e manifestos. Caso contrário,asmclifará o download dos arquivos para um diretóriotmp. É possível especificar um caminho relativo ou um caminho completo. A variável de ambiente$PWDnã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.
Defina o contexto atual para o cluster de usuário:
kubectl config use-context CLUSTER_NAMEExecute o seguinte comando para validar a configuração e fazer o download do arquivo de instalação e do pacote
asmpara o diretórioOUTPUT_DIR:./asmcli validate \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --platform multicloud--kubeconfigO caminho parakubeconfig. É possível especificar um caminho relativo ou completo. A variável de ambiente$PWDnão funciona aqui.--fleet_idO ID do projeto host da frota.asmcli validateverifica se o cluster está registrado na frota especificada.--output_dirInclua essa opção para especificar um diretório em queasmclifaz o download do pacoteasme extrai o arquivo de instalação, que contémistioctl, amostras e manifestos. Caso contrário,asmclifará o download dos arquivos para um diretóriotmp. É possível especificar um caminho relativo ou um caminho completo. A variável de ambiente$PWDnão funciona aqui.--platform multicloudEspecifica que a plataforma é algo diferente de 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_allao executarasmclipara 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.
Altere para o diretório especificado em
--output_dir.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
istioctldistribuída com a nova versão do Cloud Service Mesh.istioctl experimental precheck