Referência da asmcli
Vista geral
O asmcli é uma ferramenta fornecida pela Google que pode usar para instalar ou atualizar o Cloud Service Mesh. Se o permitir, o asmcli vai configurar o seu projeto e cluster da seguinte forma:
- Conceder-lhe as autorizações da gestão de identidade e de acesso (IAM) necessárias no seu Google Cloud projeto.
- Ative as APIs Google necessárias no seu Google Cloud projeto.
- Defina uma etiqueta no cluster que identifique a malha.
- Crie uma conta de serviço que permita que os componentes do plano de dados, como o proxy sidecar, acedam de forma segura aos dados e recursos do seu projeto.
- Registe o cluster na frota, se ainda não estiver registado.
Basta incluir a flag --enable_all quando executar asmcli para permitir que configure o seu projeto e cluster. Para mais informações sobre as asmcliopções e as flags,
consulte a asmcli referência.
Em seguida, asmcli configura os ficheiros YAML com as informações do projeto e do cluster.
Estes ficheiros de configuração são necessários para instalar o plano de controlo do Cloud Service Mesh.
Se não conhece o Cloud Service Mesh nem o Istio, avance para a secção Plataformas suportadas. A secção seguinte destina-se a ajudar os utilizadores do Cloud Service Mesh a atualizarem para o 1.27.
A fazer a transição para asmcli
O asmcli substitui istioctl install e install_asm. Embora ainda possa usar as ferramentas antigas no Cloud Service Mesh 1.11, vamos descontinuá-las e deixarão de ser suportadas no Cloud Service Mesh 1.12 e posterior.
Atualize os seus scripts e ferramentas para usar asmcli.
Todos os clusters têm de estar registados numa frota. Consulte os requisitos da frota para ver detalhes.
Transição de install_asm
Se conhece o install_asm, o asmcli é semelhante, mas com as seguintes diferenças notáveis:
Usa o
asmcli installpara novas instalações e atualizações. Não existe uma opção--modecomo com oinstall_asm. Quando executaasmcli install, verifica se existe um plano de controlo no cluster. Se não existir um plano de controlo, oasmcliinstala o Cloud Service Mesh. Se o cluster tiver um plano de controlo existente (um plano de controlo do Cloud Service Mesh ou um plano de controlo do Istio de código aberto):Se a etiqueta de revisão no painel de controlo existente não corresponder à etiqueta de revisão do novo painel de controlo, o
asmclifaz uma atualização canary.Se as etiquetas de revisão do plano de controlo forem as mesmas, o
asmclifaz uma atualização no local.
A maioria das
asmcliopções e flags comporta-se da mesma forma que as doinstall_asm.
Transição de istioctl install
Se estiver familiarizado com o istioctl install, se normalmente transmitir um ficheiro YAML IstioOperator através do argumento da linha de comandos -f para configurar o plano de controlo, pode transmitir o ficheiro para asmcli através da opção --custom_overlay. Na documentação do Cloud Service Mesh, referimo-nos a estes ficheiros como ficheiros de sobreposição.
Plataformas suportadas
As instalações do Cloud Service Mesh na lista de plataformas suportadas podem ser configuradas ou atualizadas por asmcli.
No entanto, nem todas as funcionalidades estão disponíveis nas plataformas fora do Google Cloud. Para ver detalhes, consulte o artigo Funcionalidades suportadas do plano de controlo no cluster.
asmcli referência
Esta secção descreve os argumentos disponíveis para asmcli.
Opções
Identifique o cluster Tem as seguintes opções para identificar o cluster:
Apenas GKE
-p|--project_id CLUSTER_PROJECT_ID- O ID do projeto no qual o cluster foi criado.
-n|--cluster_name CLUSTER_NAME- O nome do cluster.
-l|--cluster_location CLUSTER_LOCATION- A zona (para clusters de zona única) ou a região (para clusters regionais) em que o cluster foi criado.
Todas as plataformas
--kubeconfig KUBECONFIG_FILE
O caminho completo para o ficheiro kubeconfig. A variável de ambiente $PWD não funciona aqui.
--ctx|--context KUBE_CONTEXT
O contexto kubeconfig a usar. Se não for especificado,
asmcli usa o contexto predefinido.
-c|--ca {mesh_ca|gcp_cas|citadel}A autoridade de certificação (AC) a usar para gerir os certificados de TLS mútuo. Especifique
mesh_capara usar a autoridade de certificação do Cloud Service Mesh (autoridade de certificação do Cloud Service Mesh),gcp_caspara usar o serviço de autoridade de certificação oucitadelpara usar a AC do Istio. O Managed Cloud Service Mesh não suporta a AC do Istio. Consulte o seguinte para ver informações adicionais:--channel CLOUD_SERVICE_MESH_CHANNELUse o
--channelcom um canal de lançamento do Cloud Service Mesh específico para aprovisionar a revisão do plano de controlo associada a esse canal de lançamento. Por exemplo,--channel rapid,--channel regulare--channel stable. Esta flag é necessária quando configura determinadas funcionalidades da malha de serviços na nuvem em clusters do GKE Autopilot.
A opção --channel já não é suportada para a malha de serviços na nuvem gerida, conforme mencionado nas notas de lançamento do CSM.
O canal de lançamento é determinado com base no canal de lançamento do cluster do GKE.
Para mais informações, consulte o artigo Canais de lançamento da malha de serviços na nuvem gerida.
--co|--custom_overlay OVERLAY_FILE- Use
--custom_overlycom o nome de um ficheiro YAML (denominado ficheiro de sobreposição) que contenha o recurso personalizadoIstioOperatorpara configurar o plano de controlo no cluster. Especifica um ficheiro de sobreposição para ativar uma funcionalidade que não está ativada por predefinição. O Managed Cloud Service Mesh não suporta a APIIstioOperator, pelo que não pode usar o--custom_overlaypara configurar o plano de controlo gerido.asmclitem de conseguir localizar o ficheiro de sobreposição. Por isso, tem de estar no mesmo diretório queasmcliou pode especificar um caminho relativo. Para adicionar vários ficheiros, especifique--co|--custom_overlaye o nome do ficheiro, por exemplo:--co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml --hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS- Se usar clusters do Amazon EKS anexados, use
--hub-registration-extra-flagspara registar o cluster na frota se ainda não estiver registado. -k|--key_file FILE_PATH- O ficheiro de chave de uma conta de serviço. Omita esta opção se não estiver a usar uma conta de serviço.
--network_id NETWORK_ID- Use
--network_idpara definir a etiquetatopology.istio.io/networkaplicada ao espaço de nomesistio-system. Para o GKE, a predefinição de--network_idé o nome da rede do cluster. Para outros ambientes, é usado odefault. -o|--option OVERLAY_FILEO nome do ficheiro de sobreposição (sem a extensão
.yaml) queasmclié transferido do repositórioanthos-service-meshpara ativar uma funcionalidade opcional. Precisa de uma ligação à Internet para usar o--option. As opções--optione--custom_overlaysão semelhantes, mas têm um comportamento ligeiramente diferente:Use
--custom_overlayquando precisar de alterar as definições no ficheiro de sobreposição.Use
--optionpara ativar uma funcionalidade que não requer alterações ao ficheiro de sobreposição, por exemplo, para configurar políticas de auditoria para os seus serviços.
Para adicionar vários ficheiros, especifique
-o|--optione o nome do ficheiro, por exemplo:-o option_file1 -o option_file2 -o option_file3-D|--output_dir DIR_PATHSe não for especificado,
asmclicria um diretório temporário onde transfere ficheiros e configurações necessários para instalar o Cloud Service Mesh. Especifique o sinalizador--output-dirpara especificar um caminho relativo para um diretório a usar em alternativa. Após a conclusão, o diretório especificado contém os subdiretóriosasmeistio-1.27.1-asm.5. O diretórioasmcontém a configuração para a instalação. O diretórioistio-1.27.1-asm.5contém os conteúdos extraídos do ficheiro de instalação, que contémistioctl, exemplos e manifestos. Se especificar--output-dire o diretório já contiver os ficheiros necessários,asmcliusa esses ficheiros em vez de os transferir novamente.--platform PLATFORM {gcp|multicloud}A plataforma ou o fornecedor do cluster do Kubernetes. A predefinição é
gcp(para clusters do GKE). Para todas as outras plataformas,multicloud.-r|--revision_name REVISION NAMEUma etiqueta de revisão é um par de chave-valor que é definido no plano de controlo. A chave da etiqueta de revisão é sempre
istio.io/rev. Por predefinição,asmclidefine o valor da etiqueta de revisão com base na versão do Cloud Service Mesh, por exemplo:asm-1271-5. Inclua esta opção se quiser substituir o valor predefinido e especificar o seu próprio valor. O argumentoREVISION NAMEtem de ser uma etiqueta DNS-1035. Isto significa que o nome tem de:- Conter, no máximo, 63 carateres
- conter apenas carateres alfanuméricos minúsculos ou "-"
- Começar com um caráter alfabético
- Terminar com um caráter alfanumérico
A regex usada para validação é: '[a-z]([-a-z0-9]*[a-z0-9])?'
-s|--service_account ACCOUNT- O nome de uma conta de serviço usada para instalar o Cloud Service Mesh. Se não for especificado, é usada a conta de utilizador ativa na configuração atual do
gcloud. Se precisar de alterar a conta de utilizador ativa, execute o comando gcloud auth login.
Opções para o certificado personalizado da AC do Istio
Se especificou --ca citadel e estiver a usar uma AC personalizada, inclua as seguintes opções:
--ca_cert FILE_PATH: O certificado intermédio--ca_key FILE_PATH: a chave do certificado intermédio--root_cert FILE_PATH: o certificado de raiz--cert_chain FILE_PATH: a cadeia de certificados
Para mais informações, consulte o artigo Inserir certificados de AC existentes.
Sinalizações de ativação
As flags que começam com --enable permitem que asmcli ative as APIs Google necessárias, defina as autorizações de gestão de identidade e de acesso (IAM) necessárias e atualize o cluster. Se preferir, pode
atualizar o projeto e o cluster
antes de executar asmcli. Todas as flags de ativação são incompatíveis com
asmcli validate. Se especificar uma flag de ativação quando executar o comando
asmcli validate, o comando termina com um erro.
-e|--enable_all- Permitir que
asmclirealize todas as ações de ativação individuais descritas abaixo. --enable_cluster_roles- Permitir que o
asmclitente associar o utilizador ou a conta de serviço que executa oasmclià funçãocluster-adminno seu cluster. Google Cloudasmclidetermina a conta de utilizador a partir do comandogcloud config get core/account. Se estiver a executar oasmclilocalmente com uma conta de utilizador, certifique-se de que chama o comandogcloud auth loginantes de executar oasmcli. Se precisar de alterar a conta de utilizador, execute o comandogcloud config set core/account GCP_EMAIL_ADDRESS, em que GCP_EMAIL_ADDRESS é a conta que usa para iniciar sessão no Google Cloud. --enable_cluster_labels- Permitir que
asmclidefina etiquetas de cluster necessárias. --enable_gcp_componentsPermita que
asmcliative os seguintes serviços e componentes geridos Google Cloud obrigatórios:Workload Identity, que permite que as aplicações do GKE acedam em segurança aos serviços do Google Cloud.
--enable_gcp_apisPermita que o
asmcliative todas as APIs Google necessárias.--enable_gcp_iam_rolesPermita que o
asmclidefina as autorizações de IAM necessárias.--enable_meshconfig_initPermitir que o script inicialize o ponto final meshconfig em seu nome. Implícito por
--enable_gcp_componentse--managed.--enable_namespace_creationPermitir que o
asmclicrie o espaço de nomesistio-systemraiz.--enable_registrationPermita que o
asmcliregiste o cluster no projeto em que o cluster se encontra. Se não incluir esta flag, siga os passos em Registar um cluster para registar manualmente o cluster. Tenha em atenção que, ao contrário das outras flags de ativação, a flag--enable_registrationsó é incluída em--enable_allquando especifica uma opção (como--option hub-meshca) que requer o registo do cluster. Caso contrário, tem de especificar esta flag separadamente.
Outras sinalizações
--dry_run- Imprimir comandos, mas não os executar.
--fleet_id- Registe um cluster numa frota através do ID do projeto anfitrião da frota. Esta flag é obrigatória para clusters que não sejam do tipoGoogle Cloud . Quando não é fornecido para
Google Cloud clusters, a predefinição é o ID do projeto do cluster. Pode executar
asmcli installjuntamente com--fleet_idantes da instalação ou como parte da instalação transmitindo as flags--enable-registratione--fleet-id. Não é possível alterar esta definição depois de configurada. --managed- Descontinuado. Aprovisionar um painel de controlo gerido remotamente em vez de instalar um no cluster.
--offline- Faça uma instalação offline usando o pacote pré-transferido no diretório de saída. Se o diretório não for especificado ou não contiver os ficheiros necessários, o script é terminado com um erro.
--only_enable- Executa os passos especificados para configurar o utilizador/cluster atual, mas não instala nada.
--only_validate- Executar a validação, mas não atualizar o projeto nem o cluster, e não instalar o
Cloud Service Mesh. Esta flag é incompatível com as flags de ativação.
asmclitermina com um erro se especificar--only_validatecom qualquer sinalização de ativação. --print_config- Em vez de instalar o Cloud Service Mesh, imprima todo o YAML compilado para a saída padrão (stdout). Toda a outra saída é escrita no erro padrão (stderr), mesmo que normalmente fosse para stdout.
asmcliignora todas as validações e a configuração quando especifica este sinalizador. --disable_canonical_service- Descontinuado. O controlador de serviços canónico gerido é sempre aprovisionado.
-h|--help- Mostrar uma mensagem de ajuda que descreve as opções e as flags, e sair.
--use_managed_cni- Use a CNI gerida. Se esta flag não for transmitida, o
asmcliaplica os manifestos CNI estáticos. --use_vpcsc- Se a sua organização aplicar os
VPC Service Controls ao seu projeto, tem de
configurar o Cloud Service Mesh gerido com a flag
--use_vpcsc. Caso contrário, a instalação falha os controlos de segurança. -v|--verbose- À medida que o
asmclié executado, imprime o comando que vai executar a seguir. Com a flag--verbose,asmclitambém imprime o comando após a execução. --version- Imprima a versão de
asmclie saia. Se não tiver a versão mais recente, pode transferir a versão mais recente doasmcli_1.27.