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 asmcli
opçõ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.21.
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 install
para novas instalações e atualizações. Não existe uma opção--mode
como com oinstall_asm
. Quando executaasmcli install
, verifica se existe um plano de controlo no cluster. Se não existir um plano de controlo, oasmcli
instala 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
asmcli
faz uma atualização canary.Se as etiquetas de revisão do plano de controlo forem as mesmas, o
asmcli
faz uma atualização no local.
A maioria das
asmcli
opçõ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_ca
para usar a autoridade de certificação do Cloud Service Mesh (autoridade de certificação do Cloud Service Mesh),gcp_cas
para usar o serviço de autoridade de certificação oucitadel
para 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_CHANNEL
Use o
--channel
com 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 regular
e--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_overly
com o nome de um ficheiro YAML (denominado ficheiro de sobreposição) que contenha o recurso personalizadoIstioOperator
para 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_overlay
para configurar o plano de controlo gerido.asmcli
tem de conseguir localizar o ficheiro de sobreposição. Por isso, tem de estar no mesmo diretório queasmcli
ou pode especificar um caminho relativo. Para adicionar vários ficheiros, especifique--co|--custom_overlay
e 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-flags
para 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_id
para definir a etiquetatopology.istio.io/network
aplicada 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_FILE
O nome do ficheiro de sobreposição (sem a extensão
.yaml
) queasmcli
é transferido do repositórioanthos-service-mesh
para ativar uma funcionalidade opcional. Precisa de uma ligação à Internet para usar o--option
. As opções--option
e--custom_overlay
são semelhantes, mas têm um comportamento ligeiramente diferente:Use
--custom_overlay
quando precisar de alterar as definições no ficheiro de sobreposição.Use
--option
para 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|--option
e o nome do ficheiro, por exemplo:-o option_file1 -o option_file2 -o option_file3
-D|--output_dir DIR_PATH
Se não for especificado,
asmcli
cria um diretório temporário onde transfere ficheiros e configurações necessários para instalar o Cloud Service Mesh. Especifique o sinalizador--output-dir
para 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óriosasm
eistio-1.21.5-asm.34
. O diretórioasm
contém a configuração para a instalação. O diretórioistio-1.21.5-asm.34
contém os conteúdos extraídos do ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Se especificar--output-dir
e o diretório já contiver os ficheiros necessários,asmcli
usa 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 NAME
Uma 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,asmcli
define o valor da etiqueta de revisão com base na versão do Cloud Service Mesh, por exemplo:asm-1215-34
. Inclua esta opção se quiser substituir o valor predefinido e especificar o seu próprio valor. O argumentoREVISION NAME
tem 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
asmcli
realize todas as ações de ativação individuais descritas abaixo. --enable_cluster_roles
- Permitir que o
asmcli
tente associar o utilizador ou a conta de serviço que executa oasmcli
à funçãocluster-admin
no seu cluster. Google Cloudasmcli
determina a conta de utilizador a partir do comandogcloud config get core/account
. Se estiver a executar oasmcli
localmente com uma conta de utilizador, certifique-se de que chama o comandogcloud auth login
antes 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
asmcli
defina etiquetas de cluster necessárias. --enable_gcp_components
Permita que
asmcli
ative 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_apis
Permita que o
asmcli
ative todas as APIs Google necessárias.--enable_gcp_iam_roles
Permita que o
asmcli
defina as autorizações de IAM necessárias.--enable_meshconfig_init
Permitir que o script inicialize o ponto final meshconfig em seu nome. Implícito por
--enable_gcp_components
e--managed
.--enable_namespace_creation
Permitir que o
asmcli
crie o espaço de nomesistio-system
raiz.--enable_registration
Permita que o
asmcli
registe 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_registration
só é incluída em--enable_all
quando 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 install
juntamente com--fleet_id
antes da instalação ou como parte da instalação transmitindo as flags--enable-registration
e--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.
asmcli
termina com um erro se especificar--only_validate
com 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.
asmcli
ignora todas as validações e a configuração quando especifica este sinalizador. --disable_canonical_service
- Por predefinição, o
asmcli
implementa o controlador de serviços canónico no seu cluster. Se não quiser que oasmcli
implemente o controlador, especifique--disable_canonical_service
. Para mais informações, consulte o artigo Ativar e desativar o controlador de serviços canónico. -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
asmcli
aplica 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
,asmcli
também imprime o comando após a execução. --version
- Imprima a versão de
asmcli
e saia. Se não tiver a versão mais recente, pode transferir a versão mais recente doasmcli_1.21
.