Instale o Cloud Service Mesh para cargas de trabalho do Kubernetes fora do Google Cloud
Esta página explica como instalar o Cloud Service Mesh não gerido e no cluster para cargas de trabalho do Kubernetes Google Cloud:
- Execute
asmcli
para fazer uma nova instalação do Cloud Service Mesh 1.22.8-asm.5. - Opcionalmente, implemente um gateway de entrada.
- Implemente ou reimplemente as suas cargas de trabalho para injetar proxies sidecar.
Se precisar de instalar o Cloud Service Mesh não gerido no cluster com um
istiod
plano de controlo no GKE, consulte o artigo
Instale o Cloud Service Mesh no cluster no Google Cloud. Tenha em atenção que, para cargas de trabalho do Kubernetes no
Google Cloud, recomendamos que
aprovisione um plano de controlo gerido
Para ver instruções sobre como preparar uma instalação offline do Cloud Service Mesh,
consulte o artigo
Prepare uma instalação offline do Cloud Service Mesh
Tem de especificar as opções --offline
e --output_dir
quando executar o comando
asmcli install
.
Limitações
Tenha em atenção as seguintes limitações:
Todos os clusters do Cloud Service Mesh para uma malha têm de estar registados na mesma frota em todos os momentos para usar o Cloud Service Mesh. Outros clusters no projeto de um cluster do Cloud Service Mesh não podem ser registados numa frota diferente.
A ferramenta
asmcli
tem de ter acesso ao ponto final do Google Kubernetes Engine (GKE). Pode configurar o acesso através de um servidor de"salto", como uma VM do Compute Engine na nuvem virtual privada (VPC) que dá acesso específico.
Antes de começar
Antes de começar:
- Reveja os pré-requisitos.
- Reveja as informações em Planeie a instalação.
- Instale as ferramentas necessárias.
- Transferir
asmcli
. - Conceda autorizações de administrador do cluster.
- Valide o projeto e o cluster.
Funções necessárias para instalar o Cloud Service Mesh no cluster
A tabela seguinte descreve as funções necessárias para instalar o Cloud Service Mesh no cluster.
Nome da função | ID da função | Conceda acesso à localização | Descrição |
---|---|---|---|
Administrador do GKE Hub | roles/gkehub.admin | Projeto do Fleet | Acesso total aos GKE Hubs e recursos relacionados. |
Administrador do Kubernetes Engine | roles/container.admin | Agrupar projetos. Tenha em atenção que esta função tem de ser concedida no projeto do cluster e do Fleet para associações entre projetos. | Oferece acesso à gestão total de clusters de contentores e dos respetivos objetos da API Kubernetes. |
Administrador de configuração de malha | roles/meshconfig.admin | Projeto de frota e cluster | Fornece as autorizações necessárias para inicializar os componentes geridos da Cloud Service Mesh, como o plano de controlo gerido e a autorização de back-end que permite que as cargas de trabalho comuniquem com o Stackdriver sem que cada uma seja autorizada individualmente (para planos de controlo geridos e no cluster). |
Administrador de IAM de projetos | roles/resourcemanager.projectIamAdmin | Projeto de cluster | Concede autorizações para administrar políticas IAM em projetos. |
Administrador da conta de serviço | roles/iam.serviceAccountAdmin | Projeto do Fleet | Autentique-se como uma conta de serviço. |
Administrador de gestão de serviços | roles/servicemanagement.admin | Projeto do Fleet | Controlo total dos recursos de gestão de serviços Google. |
Administrador de utilização do serviço | roles/serviceusage.serviceUsageAdmin | Projeto do Fleet | Capacidade de ativar, desativar e inspecionar estados de serviço, inspecionar operações e consumir quota e faturação para um projeto de consumidor.(Nota 1) |
Administrador de serviço de AC Beta | roles/privateca.admin | Projeto do Fleet | Acesso total a todos os recursos do serviço de AC. (Note 2) |
Notas:
- Administrador de utilização de serviços: esta função é necessária como pré-requisito para ativar a API
mesh.googleapis.com
quando aprovisiona inicialmente a malha de serviços na nuvem gerida. - Administrador do serviço de AC: esta função só é necessária se estiver a fazer a integração com o serviço de AC.
Instale o Cloud Service Mesh
As instruções seguintes descrevem como instalar o Cloud Service Mesh:
Execute
asmcli install
para instalar o plano de controlo no cluster num único cluster. Consulte as secções seguintes para ver exemplos de linhas de comandos. Os exemplos contêm argumentos obrigatórios e argumentos opcionais que podem ser úteis. Recomendamos que especifique sempre o argumentooutput_dir
para poder localizar gateways e ferramentas de exemplo, comoistioctl
. Consulte a barra de navegação à direita para ver uma lista dos exemplos.Opcionalmente, instale um gateway de entrada. Por predefinição, o
asmcli
não instala oistio-ingressgateway
. Recomendamos que implemente e faça a gestão do plano de controlo e das gateways separadamente. Se precisar doistio-ingressgateway
predefinido instalado com o plano de controlo no cluster, inclua o argumento--option legacy-default-ingressgateway
.Para concluir a configuração do Cloud Service Mesh, tem de ativar a injeção automática de sidecars e implementar ou reimplementar cargas de trabalho.
Se estiver a instalar o Cloud Service Mesh em mais do que um cluster, execute o comando
asmcli install
em cada cluster. Quando executarasmcli install
, certifique-se de que usa o mesmoFLEET_PROJECT_ID
para cada cluster. Após a instalação do Cloud Service Mesh, consulte as instruções para configurar uma malha de vários clusters desativada Google Cloud.Se os seus clusters estiverem em redes diferentes (como no modo isolado), deve transmitir um nome de rede exclusivo para
asmcli
através da flag--network_id
.
Instale as funcionalidades predefinidas e a AC de malha
Esta secção mostra como executar asmcli
para instalar a Cloud Service Mesh com as funcionalidades suportadas predefinidas para a sua plataforma e ativar a autoridade de certificação da Cloud Service Mesh como autoridade de certificação.
Nas instalações
Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--ca mesh_ca
Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação.asmcli
configura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
AWS
Execute os seguintes comandos no GKE no AWS para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--ca mesh_ca
Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação.asmcli
configura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
Azul-celeste
Execute os seguintes comandos no GKE no Azure para instalar o plano de controlo com funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--ca mesh_ca
Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação.asmcli
configura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
Amazon EKS
Execute os seguintes comandos no Amazon EKS para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--option attached-cluster
Altera a utilidade de assinatura predefinida para istiod.--network_id
Se estiver a configurar uma malha de várias redes, defina o--network_id
para um valor único para cada cluster na malha.--ca mesh_ca
Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação.asmcli
configura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
Microsoft AKS
Execute os seguintes comandos no Microsoft AKS para instalar o plano de controlo com as funcionalidades predefinidas e a autoridade de certificação do Cloud Service Mesh. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
Permite o registo no GKE Hub.--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--option attached-cluster
Altera a utilidade de assinatura predefinida para istiod.--network_id
Se estiver a configurar uma malha de várias redes, defina o--network_id
para um valor único para cada cluster na malha.--ca mesh_ca
Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação.asmcli
configura a autoridade de certificação do Cloud Service Mesh para usar a identidade de carga de trabalho da frota.
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
Instale as funcionalidades predefinidas e o serviço de autoridade de certificação (AC)
Esta secção mostra como executar o asmcli
para instalar a Cloud Service Mesh com as funcionalidades suportadas predefinidas para a sua plataforma e ativar o serviço de AC como a autoridade de certificação.
Além da autoridade de certificação do Cloud Service Mesh, pode configurar o Cloud Service Mesh para usar o Certificate Authority Service. Este guia oferece-lhe uma oportunidade de integração com o serviço de CA, que é recomendado para os seguintes exemplos de utilização:
- Se precisar de diferentes autoridades de certificação para assinar certificados de carga de trabalho em diferentes clusters.
- Se precisar de fazer uma cópia de segurança das suas chaves de assinatura num HSM gerido.
- Se estiver num setor altamente regulamentado e estiver sujeito a conformidade.
- Se quiser encadear a sua AC do Cloud Service Mesh a um certificado de raiz empresarial personalizado para assinar certificados de carga de trabalho.
O custo da autoridade de certificação do Cloud Service Mesh está incluído nos preços do Cloud Service Mesh. O serviço de AC não está incluído no preço base da Cloud Service Mesh e é cobrado separadamente. Além disso, o serviço de AC inclui um SLA explícito, mas a autoridade de certificação da malha de serviços na nuvem não.
Configure o serviço de CA
- Crie o conjunto de ACs
no nível
DevOps
e na mesma região que o cluster que serve para evitar problemas de latência excessiva ou potenciais interrupções entre regiões. Para mais informações, consulte o artigo Níveis otimizados para cargas de trabalho. - Crie a AC para ter, pelo menos, uma autoridade de certificação ativa no grupo de ACs no mesmo projeto que o cluster do GKE. Use ACs subordinadas para assinar certificados de carga de trabalho da Cloud Service Mesh. Anote o conjunto de ACs correspondente à AC subordinada.
Se se destinar apenas a certificados de serviço para cargas de trabalho da Cloud Service Mesh, configure a seguinte política de emissão para o conjunto de ACs:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
Para atualizar a política de emissão do conjunto de ACs, use o seguinte comando:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Para obter informações sobre como definir uma política num conjunto, consulte o artigo Usar uma política de emissão de certificados.
Se estiver a usar um modelo de certificado, configure-o agora. Para mais informações, siga o guia do serviço de AC para certificados de identidade de carga de trabalho. Certifique-se de que o modelo de certificado é criado na mesma região que o conjunto de ACs. Se existirem várias regiões para pools de ACs, crie um modelo de certificado por região.
Configure a malha de serviço na nuvem para usar o serviço de AC
Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou no Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com as funcionalidades predefinidas e o serviço de autoridade de certificação. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--ca gcp_cas
Use o Certificate Authority Service como a autoridade de certificação. A alteração das autoridades de certificação durante uma atualização causa tempo de inatividade. Oasmcli
configura o serviço de autoridade de certificação para usar a identidade da carga de trabalho da frota--ca_pool
O identificador completo do serviço de autoridade de certificação CA Pool. Se estiver a usar um modelo de certificado, anexe o ID do modelo separado por:
. Por exemplo:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
Instale funcionalidades predefinidas com a AC do Istio
Esta secção explica como:
- Gere certificados e chaves para a AC do Istio que o Cloud Service Mesh usa para assinar as suas cargas de trabalho.
- Execute
asmcli
para instalar a malha de serviço na nuvem com as funcionalidades predefinidas e ativar a AC do Istio.
Por predefinição, os ambientes que instalam o Cloud Service Mesh com a AC do Istio comunicam métricas ao Prometheus. Se quiser usar os painéis de controlo da Cloud Service Mesh, tem de ativar o Stackdriver. Para mais informações, consulte o artigo Instale com funcionalidades opcionais.
Para a melhor segurança, recomendamos vivamente que mantenha uma AC raiz offline e use as ACs subordinadas para emitir certificados para cada cluster. Para mais informações, consulte o artigo Instale certificados de AC. Nesta configuração, todas as cargas de trabalho na malha de serviços usam a mesma autoridade de certificação (AC) raiz. Cada CA do Cloud Service Mesh usa uma chave de assinatura e um certificado da CA intermédia, assinados pela CA de raiz. Quando existem várias ACs numa malha, isto estabelece uma hierarquia de confiança entre as ACs. Pode repetir estes passos para aprovisionar certificados e chaves para qualquer número de autoridades de certificação.
O Makefile para gerar os certificados encontra-se no subdiretório istio-1.22.8-asm.5
no diretório --output_dir
que especificou no comando asmcli validate
. Se não executou asmcli validate
ou não tiver o diretório transferido localmente, pode obter o ficheiro Makefile
transferindo o ficheiro de instalação do Cloud Service Mesh
e extraindo o conteúdo.
Mude para o diretório
istio-1.22.8-asm.5
.Crie um diretório para os certificados e as chaves:
mkdir -p certs && \ pushd certs
Gere um certificado de raiz e uma chave:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
Isto gera os seguintes ficheiros:
- root-cert.pem: o certificado de raiz
- root-key.pem: a chave de raiz
- root-ca.conf: a configuração para o openssl gerar o certificado de raiz
- root-cert.csr: o CSR para o certificado de raiz
Gere um certificado e uma chave intermédios:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
Isto gera estes ficheiros num diretório denominado
cluster1
:- ca-cert.pem: os certificados intermédios
- ca-key.pem: a chave intermédia
- cert-chain.pem: a cadeia de certificados que o
istiod
usa - root-cert.pem: o certificado de raiz
Se executar estes passos num computador offline, copie o diretório gerado para um computador com acesso aos clusters.
Regresse ao diretório anterior:
popd
Execute
asmcli
para instalar uma malha com a AC do Istio:Nas instalações
Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou no Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com as funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio--ca_key
A chave do certificado intermédio--root_cert
O certificado de raiz--cert_chain
A cadeia de certificados
AWS
Execute os seguintes comandos no GKE no AWS para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.
Público
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.
Privado
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Guarde o seguinte YAML num ficheiro denominado
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.--custom_overlay
O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte o artigo Ativar funcionalidades opcionais no plano de controlo no cluster
Azul-celeste
Execute os seguintes comandos no GKE no Azure para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.
Público
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.
Privado
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Guarde o seguinte YAML num ficheiro denominado
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.--custom_overlay
O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte o artigo Ativar funcionalidades opcionais no plano de controlo no cluster
Amazon EKS
Execute os seguintes comandos no Amazon EKS para instalar o plano de controlo com as funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--option attached-cluster
Altera a utilidade de assinatura predefinida para istiod.-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio--ca_key
A chave do certificado intermédio--root_cert
O certificado de raiz--cert_chain
A cadeia de certificados--network_id
Se estiver a configurar uma malha de várias redes, defina o--network_id
para um valor único para cada cluster na malha.
Microsoft AKS
Execute os seguintes comandos no Microsoft AKS para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
Permite o registo no GKE Hub.--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--option attached-cluster
Altera a utilidade de assinatura predefinida para istiod.-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio--ca_key
A chave do certificado intermédio--root_cert
O certificado de raiz--cert_chain
A cadeia de certificados--network_id
Se estiver a configurar uma malha de várias redes, defina o--network_id
para um valor único para cada cluster na malha.
Instale com a AC do Istio com a observabilidade do Google Cloud ativada
Se quiser usar os painéis de controlo do Cloud Service Mesh, tem de ativar o Stackdriver.
Nas instalações
Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware ou no Google Distributed Cloud (apenas software) para bare metal para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio--ca_key
A chave do certificado intermédio--root_cert
O certificado de raiz--cert_chain
A cadeia de certificados--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
.
Para ver os SLOs e as métricas de infraestrutura na IU do Cloud Service Mesh, também tem de realizar os três primeiros passos em Ative o registo e a monitorização de aplicações. Se o registo e a monitorização não estiverem ativados e não receber registos personalizados nem métricas, o painel de controlo do Cloud Service Mesh não apresenta SLOs, registos de erros nem métricas de CPU e memória.
AWS
Execute os seguintes comandos no GKE no AWS para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais, bem como a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.
Público
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
.
Privado
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Guarde o seguinte YAML num ficheiro denominado
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.--custom_overlay
O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte Ativar funcionalidades opcionais no plano de controlo no cluster--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
. Em alternativa, pode ativar o Stackdriver através do--custom_overlay stackdriver.yaml
. Tem de transferir o anthos-service-mesh-package ou criarstackdriver.yaml
a partir do manifesto fornecido.
Azul-celeste
Execute os seguintes comandos no GKE no Azure para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais e a AC do Istio. Introduza os seus valores nos marcadores de posição fornecidos. Pode optar por ativar a entrada para a sub-rede pública ou a sub-rede privada.
Público
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
.
Privado
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Guarde o seguinte YAML num ficheiro denominado
istio-operator-internal-lb.yaml
:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio.--ca_key
A chave do certificado intermédio.--root_cert
O certificado de raiz.--cert_chain
A cadeia de certificados.--custom_overlay
O nome do ficheiro de sobreposição criado. Para mais informações sobre ficheiros de sobreposição, consulte Ativar funcionalidades opcionais no plano de controlo no cluster--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
. Em alternativa, pode ativar o Stackdriver através do--custom_overlay stackdriver.yaml
. Tem de transferir o anthos-service-mesh-package ou criarstackdriver.yaml
a partir do manifesto fornecido.
Amazon EKS
Execute os seguintes comandos no Amazon EKS para instalar o plano de controlo com o Stackdriver e outras funcionalidades opcionais, bem como a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-cluster
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio--ca_key
A chave do certificado intermédio--root_cert
O certificado de raiz--cert_chain
A cadeia de certificados--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
.--option stackdriver
Altera o utilitário de assinatura predefinido paraistiod
.
Microsoft AKS
Execute os seguintes comandos no Microsoft AKS para instalar o plano de controlo com funcionalidades predefinidas e a CA do Istio. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Corrida
asmcli install
:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-cluster
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
Permite o registo no GKE Hub.--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
-ca citadel
Use a AC do Istio como autoridade de certificação.--ca_cert
O certificado intermédio--ca_key
A chave do certificado intermédio--root_cert
O certificado de raiz--cert_chain
A cadeia de certificados--option stackdriver
Ativa a opção do Stackdriver. Tenha em atenção que também pode ativar o Stackdriver e o Prometheus usando--option prometheus-and-stackdriver
.--option stackdriver
Altera o utilitário de assinatura predefinido paraistiod
.
Instale com funcionalidades opcionais
Um ficheiro de sobreposição é um ficheiro YAML que contém um IstioOperator
recurso personalizado
(CR) que transmite ao asmcli
para configurar o plano de controlo. Pode
substituir a configuração predefinida do plano de controlo e
ativar uma funcionalidade opcional transmitindo
o ficheiro YAML para asmcli
. Pode aplicar mais sobreposições e cada ficheiro de sobreposição
substitui a configuração nas camadas anteriores. Como prática recomendada,
sugerimos que guarde os ficheiros de sobreposição no seu sistema de controlo de versões.
Existem duas opções para ativar funcionalidades opcionais:
--option
e
--custom_overlay
.
Use --option
se não precisar de alterar o ficheiro de sobreposição. Com este método, o ficheiro é asmcli
obtido do
repositório do GitHub
por si.
Use --custom_overlay
quando precisar de personalizar o ficheiro de sobreposição.
Para mais informações, consulte o artigo Ativar funcionalidades opcionais no plano de controlo no cluster.
Execute os seguintes comandos no Google Distributed Cloud (apenas software) para VMware, Google Distributed Cloud (apenas software) para bare metal, GKE no AWS, GKE no Azure, Amazon EKS ou Microsoft AKS. Introduza os seus valores nos marcadores de posição fornecidos.
Defina o contexto atual para o cluster de utilizadores:
kubectl config use-context CLUSTER_NAME
Execute
asmcli install
para instalar o plano de controlo com uma funcionalidade opcional. Para adicionar vários ficheiros, especifique--custom_overlay
e o nome do ficheiro, por exemplo:--custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml
./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca \ --custom_overlay OVERLAY_FILE
--fleet_id
O ID do projeto do projeto anfitrião da frota.--kubeconfig
O caminho completo para o ficheirokubeconfig
. A variável de ambiente$PWD
não funciona aqui. Além disso, as localizações de ficheiroskubeconfig
relativas que usam um "~" não funcionam.--output_dir
Inclua esta opção para especificar um diretório ondeasmcli
transfere o pacoteanthos-service-mesh
e extrai o ficheiro de instalação, que contémistioctl
, exemplos e manifestos. Caso contrário,asmcli
transfere os ficheiros para um diretóriotmp
. 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.-
--enable_all
Permite que o script:- Conceda as autorizações de IAM necessárias.
- Ative as APIs Google necessárias.
- Defina uma etiqueta no cluster que identifique a malha.
- Registe o cluster na frota se ainda não estiver registado.
--ca mesh_ca
Use a autoridade de certificação do Cloud Service Mesh como a autoridade de certificação. Tenha em atenção queasmcli
configura a autoridade de certificação do Cloud Service Mesh para usar a identidade da carga de trabalho da frota--custom_overlay
Especifique o nome do ficheiro de sobreposição.
Instalação de gateways
O Cloud Service Mesh dá-lhe a opção de implementar e gerir gateways como parte da sua malha de serviços. Um gateway descreve um balanceador de carga que opera no limite da malha e recebe ligações HTTP/TCP de entrada ou saída. As gateways são proxies Envoy que lhe oferecem um controlo detalhado sobre o tráfego que entra e sai da malha.
Crie um espaço de nomes para o gateway de entrada, se ainda não tiver um. Os gateways são cargas de trabalho do utilizador e, como prática recomendada, não devem ser implementados no espaço de nomes do plano de controlo. Substitua
GATEWAY_NAMESPACE
pelo nome do seu espaço de nomes.kubectl create namespace GATEWAY_NAMESPACE
Resultado esperado:
namespace/GATEWAY_NAMESPACE created
Ative a injeção automática no gateway. Os passos necessários dependem de querer usar etiquetas de injeção predefinidas (por exemplo,
istio-injection=enabled
) ou a etiqueta de revisão no espaço de nomes do gateway. A etiqueta de revisão e a etiqueta de revisão predefinidas são usadas pelo webhook do injetor sidecar para associar proxies injetados a uma revisão do plano de controlo específica.Predefinição (recomendado)
Se usou uma revisão da etiqueta predefinida para ativar a injeção automática no gateway, verifique se a etiqueta predefinida existe no diretório que especificou em
--output_dir
e se está a apontar para a revisão instalada recentemente.DIR_PATH/istioctl tag list
Aplique as etiquetas de injeção predefinidas ao espaço de nomes.
kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
Etiqueta de revisão
Use o seguinte comando para localizar a etiqueta de revisão em
istiod
:kubectl get deploy -n istio-system -l app=istiod -o \ "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
O comando produz a etiqueta de revisão que corresponde à versão do Cloud Service Mesh, por exemplo:
asm-1228-5
Aplique a etiqueta de revisão ao espaço de nomes. No comando seguinte,
REVISION
é o valor da etiqueta de revisãoistiod
que anotou no passo anterior.kubectl label namespace GATEWAY_NAMESPACE \ istio.io/rev=REVISION --overwrite
Resultado esperado:
namespace/GATEWAY_NAMESPACE labeled
Pode ignorar a mensagem
"istio.io/rev" not found
no resultado. Isto significa que o espaço de nomes não tinha anteriormente a etiquetaistio.io/rev
, o que deve esperar em novas instalações do Cloud Service Mesh ou novas implementações. Uma vez que a injeção automática falha se um espaço de nomes tiver a etiquetaistio.io/rev
e a etiquetaistio-injection
, todos os comandoskubectl label
na documentação do Cloud Service Mesh especificam explicitamente ambas as etiquetas.Se o espaço de nomes do gateway não estiver etiquetado, os pods
istio-ingressgateway
falham com um erroImagePullBackOff
quando o gateway tenta extrair a imagemauto
. Esta imagem deve ser substituída pelo webhook.Transfira o ficheiro de configuração .yaml do gateway de entrada de exemplo do repositório.
anthos-service-mesh-packages
Aplique a configuração .yaml do gateway de entrada de exemplo tal como está ou modifique-a conforme necessário.
kubectl apply -n GATEWAY_NAMESPACE \ -f CONFIG_PATH/istio-ingressgateway
Resultado esperado:
deployment.apps/istio-ingressgateway created poddisruptionbudget.policy/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created service/istio-ingressgateway created serviceaccount/istio-ingressgateway created
Saiba mais acerca das práticas recomendadas para gateways.
Implemente e reimplemente cargas de trabalho
O Cloud Service Mesh usa proxies sidecar para melhorar a segurança, a fiabilidade e a observabilidade da rede. Com a malha de serviços na nuvem, estas funções são abstraídas do contentor principal da aplicação e implementadas num proxy fora do processo comum fornecido como um contentor separado no mesmo Pod.
A instalação não está concluída até ativar a injeção automática do proxy sidecar (injeção automática) e reiniciar os pods para todas as cargas de trabalho que estavam a ser executadas no cluster antes de instalar o Cloud Service Mesh.
Para ativar a injeção automática, etiquete os seus espaços de nomes com as
etiquetas de injeção predefinidas
se a etiqueta predefinida estiver configurada ou uma etiqueta de revisão
que foi definida no istiod
quando instalou o Cloud Service Mesh. A etiqueta de revisão predefinida e a etiqueta de revisão são usadas pelo webhook do injetor de contentores auxiliares para associar contentores auxiliares injetados a uma revisão istiod
. Depois de adicionar a etiqueta, todos os Pods existentes no espaço de nomes têm de ser reiniciados para que os sidecars sejam injetados.
Antes de implementar novas cargas de trabalho num novo espaço de nomes, certifique-se de que configura a injeção automática para que o Cloud Service Mesh possa monitorizar e proteger o tráfego.
Os passos necessários para ativar a injeção automática dependem de querer usar as etiquetas de injeção predefinidas ou a etiqueta de revisão:
Predefinição (recomendado)
Se usou uma revisão da etiqueta predefinida para ativar a injeção automática no gateway, verifique se a etiqueta predefinida existe no diretório que especificou em
--output_dir
e se está a apontar para a revisão instalada recentemente.DIR_PATH/istioctl tag list
Execute o seguinte comando.
NAMESPACE
é o nome do espaço de nomes onde quer ativar a injeção automática.kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
As etiquetas de injeção predefinidas injetam a revisão para a qual a etiqueta predefinida está a apontar.
Etiqueta de revisão
Use o seguinte comando para localizar a etiqueta de revisão em
istiod
:kubectl -n istio-system get pods -l app=istiod --show-labels
O resultado tem um aspeto semelhante ao seguinte:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1228-5-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1228-5,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1228-5-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1228-5,istio=istiod,pod-template-hash=5788d57586
Na saída, na coluna
LABELS
, repare no valor da etiqueta de revisãoistiod
, que segue o prefixoistio.io/rev=
. Neste exemplo, o valor éasm-1228-5
.Aplique a etiqueta de revisão e remova a etiqueta
istio-injection
, se existir. No comando seguinte,NAMESPACE
é o nome do espaço de nomes onde quer ativar a injeção automática eREVISION
é a etiqueta de revisão que anotou no passo anterior.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
Pode ignorar a mensagem
"istio-injection not found"
no resultado. Isto significa que o espaço de nomes não tinha anteriormente a etiquetaistio-injection
, o que deve esperar em novas instalações do Cloud Service Mesh ou novas implementações. Uma vez que o comportamento de injeção automática não está definido quando um espaço de nomes tem a etiquetaistio-injection
e a etiqueta de revisão, todos os comandoskubectl label
na documentação do Cloud Service Mesh garantem explicitamente que apenas uma está definida.
Se as cargas de trabalho estavam a ser executadas no cluster antes de instalar o Cloud Service Mesh, reinicie os pods para acionar a reinjeção.
A forma como reinicia os pods depende da sua aplicação e do ambiente em que o cluster se encontra. Por exemplo, no ambiente de preparação, pode simplesmente eliminar todos os pods, o que faz com que sejam reiniciados. No entanto, no seu ambiente de produção, pode ter um processo que implementa uma implementação azul-verde para que possa reiniciar os pods em segurança para evitar a interrupção do tráfego.
Pode usar
kubectl
para fazer um reinício contínuo:kubectl rollout restart deployment -n NAMESPACE
O que se segue?
Se a sua malha consistir em clusters fora de Google Cloud, consulte Configure uma malha de vários clusters fora de Google Cloud.