Provisionar o Cloud Service Mesh gerenciado com o asmcli
Visão geral
O Cloud Service Mesh gerenciado com asmcli é um plano de controle gerenciado e um
plano de dados
gerenciado opcional que basta você configurar. O Google lida com a confiabilidade, os upgrades, o escalonamento e a segurança deles de maneira compatível com versões anteriores. Neste
guia, explicamos como configurar ou migrar aplicativos para o Cloud Service Mesh gerenciado em
uma configuração de um ou vários clusters com asmcli.
Para saber mais sobre os recursos e limitações compatíveis com o Cloud Service Mesh gerenciado, consulte Recursos compatíveis com o Cloud Service Mesh gerenciado.
Pré-requisitos
Como ponto de partida, neste guia presume-se que você:
- Um projeto do Cloud
- Uma Conta de faturamento do Cloud.
- Consiga as permissões necessárias para provisionar o Cloud Service Mesh
- A ferramenta de instalação
asmcli,kpte outras ferramentas especificadas em Como instalar as ferramentas necessárias
Para uma instalação mais rápida, a Identidade da carga de trabalho precisa estar ativada nos clusters. Se a identidade da carga de trabalho não estiver ativada, ela será ativada pela instalação automaticamente.
Requisitos
- Um ou mais clusters com uma versão compatível do GKE, em uma das regiões compatíveis.
- O Cloud Service Mesh gerenciado usa canais de lançamento do GKE para equilibrar estabilidade e velocidade de upgrade. As novas mudanças nos componentes no cluster do Cloud Service Mesh (incluindo CNI, MDPC, proxies e CRDs do Istio) serão lançadas primeiro para os clusters que assinam o canal rápido do GKE. Em seguida, elas serão promovidas para o canal regular do GKE e, por fim, para o canal estável do GKE, quando demonstrarem estabilidade suficiente.
- A prática recomendada é provisionar um subconjunto dos clusters da frota em um canal de lançamento do GKE anterior para garantir que eles recebam atualizações dos componentes do Cloud Service Mesh primeiro.
- O Cloud Service Mesh gerenciado não é compatível com a mudança de canais de lançamento do GKE.
- Se você mudar o canal de lançamento do GKE, o Cloud Service Mesh não vai impedir a operação. O Cloud Service Mesh atualiza automaticamente os componentes no cluster (CNI, MDPC, versão padrão do proxy injetado e CRDs do Istio) para se alinhar ao canal de lançamento atual do GKE.
- Verifique se o cluster tem capacidade suficiente para os componentes necessários que
gerenciaram as instalações do Cloud Service Mesh no cluster.
- A implantação
mdp-controllerno namespacekube-systemsolicita CPU: 50m, memória: 128Mi. - O daemonset
istio-cni-nodeno namespacekube-systemsolicita cpu: 100m, memória: 100Mi em cada nó.
- A implantação
- Verifique se a política da organização
constraints/compute.disableInternetNetworkEndpointGroupestá desativada. Se a política estiver ativada, o ServiceEntry poderá não funcionar. - Verifique se a máquina cliente da qual você instala o Cloud Service Mesh gerenciado tem conexão de rede com o servidor de API.
- Os clusters precisam estar registrados em uma frota.
Isso pode ser feito separadamente antes da instalação ou como parte da
instalação, com a transmissão das sinalizações
--enable-registratione--fleet-id. O projeto precisa ter o recurso da frota Service Mesh ativado. Você pode ativá-lo como parte da instalação transmitindo
--enable-gcp-componentsou executando o seguinte comando:gcloud container fleet mesh enable --project=FLEET_PROJECT_ID
FLEET_PROJECT_ID é o ID do projeto host da frota.
O GKE Autopilot é compatível apenas com o GKE versão 1.21.3 e posterior.
O Cloud Service Mesh pode usar vários clusters do GKE em um ambiente de rede única de projeto único ou de vários projetos.
- Se você mesclar clusters que não estejam no mesmo projeto, eles vão precisar ser registrados no mesmo projeto host da frota, e será preciso que os clusters estejam em um projeto de VPC compartilhada na mesma rede.
- Para um ambiente de vários clusters com um único projeto, o projeto da frota pode ser o mesmo que o do cluster. Para mais informações sobre frotas, consulte Informações gerais das frotas.
- Para um ambiente de vários projetos, recomendamos que você hospede a frota em um projeto separado dos projetos do cluster. Se as políticas da organização e a configuração atual permitirem, recomendamos que você use o projeto da VPC compartilhada como o projeto host da frota. Para mais informações, consulte Como configurar clusters com a VPC compartilhada.
- Se a organização usar o VPC Service Controls e você estiver provisionando
o Cloud Service Mesh em clusters do GKE com uma versão
maior ou igual a 1.22.1-gke.10, talvez seja necessário seguir outras
etapas de configuração:
- Se você estiver provisionando o Cloud Service Mesh no
canal de lançamento
regular ou estável, será necessário usar a flag
--use-vpcscao aplicar o plano de controle gerenciado e seguir o Guia do VPC Service Controls (visualização). Caso contrário, a instalação não vai ter os controles de segurança. - Se você estiver provisionando o Cloud Service Mesh no canal de lançamento
rápido, não será necessário usar a flag
--use-vpcscadicional ao aplicar o plano de controle gerenciado. No entanto, você precisa seguir o Guia do VPC Service Controls (GA).
- Se você estiver provisionando o Cloud Service Mesh no
canal de lançamento
regular ou estável, será necessário usar a flag
Papéis necessários para instalar o Cloud Service Mesh
Na tabela a seguir, descrevemos os papéis necessários para instalar o Cloud Service Mesh gerenciado.
| Nome da função | ID do papel | Conceder local | Descrição |
|---|---|---|---|
| Administrador do GKE Hub | roles/gkehub.admin | Projeto da frota | Acesso total ao GKE Hub e recursos relacionados. |
| Administrador do Service Usage | roles/serviceusage.serviceUsageAdmin | Projeto da frota | Pode ativar, desativar e inspecionar estados de serviço, inspecionar operações, consumir cota e gerar faturamento para o projeto de um consumidor. (Observação 1) |
| Administrador de serviço de CABeta | roles/privateca.admin | Projeto da frota | Acesso completo a todos os recursos de serviço de CA. (Observação 2) |
Papéis necessários para executar o Cloud Service Mesh
Na tabela a seguir, descrevemos os papéis necessários para que a conta de serviço execute o Cloud Service Mesh gerenciado. Se os projetos de rede ou cluster forem diferentes do projeto host da frota, será necessário dar à conta de serviço no projeto da frota acesso a esses papéis nos outros projetos.
| Nome da função | ID do papel | Conceder local | Descrição |
|---|---|---|---|
| Agente de serviço do Anthos Service Mesh | roles/anthosservicemesh.serviceAgent | Projeto da frota | |
| Agente de serviço do plano de controle gerenciado do Mesh (legado) | roles/meshcontrolplane.serviceAgent | Projeto da frota | Essa é uma função legada que fazia parte de instalações mais antigas do Cloud Service Mesh. Se a instalação tiver essa função de serviço, deixe como está. As novas instalações não precisam dessa função. |
Limitações
Recomendamos que você analise a lista de recursos e limitações compatíveis com o Cloud Service Mesh. Observe especificamente o seguinte:
Não há suporte para pods de carga de trabalho executados com
hostNetwork: true.Não há suporte para a API
IstioOperatorporque a finalidade principal dela é controlar componentes no cluster.
Nos clusters do GKE Autopilot, a configuração entre projetos é compatível apenas com o GKE 1.23 e posterior.
Para que os clusters do GKE Autopilot se adaptem ao limite de recursos do Autopilot do GKE, as solicitações e os limites de recursos de proxy padrão são definidos como 500m de CPU e 512MB de memória. É possível modificar os valores padrão usando a injeção personalizada.
Para clusters do Autopilot do GKE, podem aparecer avisos para componentes do Cloud Service Mesh "DaemonSet não tem nós selecionados" até que o NodePool dos clusters seja escalonado.
Durante o processo de provisionamento de um plano de controle gerenciado, os CRDs do Istio são provisionados no cluster especificado. Se houver CRDs atuais do Istio no cluster, eles serão substituídos.
A CNI do Istio e o Traffic Director não são compatíveis com o GKE Sandbox. Portanto, o Cloud Service Mesh gerenciado com a implementação
TRAFFIC_DIRECTORnão é compatível com clusters em que o GKE Sandbox está ativado.A ferramenta
asmcliprecisa ter acesso ao endpoint do Google Kubernetes Engine (GKE). É possível configurar o acesso por meio de um servidor"salto", como uma VM do Compute Engine na nuvem privada virtual (VPC) que dá acesso específico.
Antes de começar
Configurar a gcloud
Siga as etapas abaixo mesmo se estiver usando o Cloud Shell.
Faça a autenticação com a CLI do Google Cloud:
gcloud auth login --project PROJECT_IDem que PROJECT_ID é o identificador exclusivo do projeto do cluster. Execute o seguinte comando para receber seu PROJECT_ID:
gcloud projects list --filter="<PROJECT ID>" --format="value(PROJECT_NUMBER)" ```Atualize os componentes:
gcloud components updateConfigure
kubectlpara apontar para o cluster.gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_LOCATION \ --project PROJECT_ID
Fazer o download da ferramenta de instalação
Faça o download da versão mais recente da ferramenta para o diretório de trabalho atual:
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli > asmcliTorne a ferramenta executável:
chmod +x asmcli
Configurar cada cluster
Siga as etapas abaixo para configurar o Cloud Service Mesh gerenciado para cada cluster na sua malha.
Aplicar o plano de controle gerenciado
Antes de aplicar o plano de controle gerenciado, é preciso selecionar um canal de lançamento. Seu canal do Cloud Service Mesh é determinado pelo canal do cluster do GKE no momento do provisionamento do Cloud Service Mesh gerenciado. Não é possível usar vários canais no mesmo cluster ao mesmo tempo.
Execute a ferramenta de instalação para cada cluster que usará o Cloud Service Mesh gerenciado. Recomendamos que você inclua as duas opções a seguir:
--enable-registration --fleet_id FLEET_PROJECT_IDEssas duas sinalizações registram o cluster em uma frota, em que FLEET_ID é o ID do projeto host da frota. Se você estiver usando um único projeto, FLEET_PROJECT_ID será o mesmo que PROJECT_ID. O projeto host de frota e o projeto de cluster também serão iguais. Em configurações mais complexas, como vários projetos, recomendamos o uso de um projeto host de frota separado.--enable-all. Essa sinalização ativa os componentes necessários e o registro.
A ferramenta asmcli configura o plano de controle gerenciado diretamente usando ferramentas e lógica
dentro da ferramenta CLI. Use o conjunto de instruções abaixo de acordo com
sua CA preferencial.
Autoridades certificadoras
Selecione uma autoridade certificadora para usar na malha.
CA da malha
Execute o comando a seguir para instalar o plano de controle com recursos padrão e CA da malha. Digite seus valores nos marcadores fornecidos.
./asmcli install \
-p PROJECT_ID \
-l LOCATION \
-n CLUSTER_NAME \
--fleet_id FLEET_PROJECT_ID \
--managed \
--verbose \
--output_dir DIR_PATH \
--enable-all
Serviço de CA
- Siga as etapas em Configurar o Certificate Authority Service.
- Execute o comando a seguir para instalar o plano de controle com recursos padrão e o Certificate Authority Service. Digite seus valores nos marcadores fornecidos.
./asmcli install \
-p PROJECT_ID \
-l LOCATION \
-n CLUSTER_NAME \
--fleet_id FLEET_PROJECT_ID \
--managed \
--verbose \
--output_dir DIR_PATH \
--enable-all \
--ca gcp_cas \
--ca_pool pool_name
A ferramenta faz o download de todos os arquivos para configurar o plano de controle gerenciado
para o --output_dir especificado, instalando a ferramenta istioctl e os aplicativos de
amostra. Para seguir as etapas deste guia, é necessário executar istioctl no local
--output_dir especificado ao executar asmcli install, com
istioctl presente no subdiretório <Istio release dir>/bin.
Se você executar novamente asmcli no mesmo cluster, ele substituirá a configuração do plano de controle existente. Especifique as mesmas opções e
sinalizações, se quiser a mesma configuração.
Verificar se o plano de controle foi provisionado
Após alguns minutos, verifique se o status no plano de controle é ACTIVE:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
A resposta é semelhante a:
membershipStates:
projects/746296320118/locations/us-central1/memberships/demo-cluster-1:
servicemesh:
controlPlaneManagement:
details:
- code: REVISION_READY
details: 'Ready: asm-managed'
state: ACTIVE
...
state:
code: OK
description: 'Revision(s) ready for use: asm-managed.'
Se o status não atingir ACTIVE em alguns minutos, consulte
Verificar o status do plano de controle gerenciado
para mais informações sobre possíveis erros.
Upgrades sem toque
Depois que o plano de controle gerenciado for instalado, o Google fará upgrade automaticamente dele quando novas versões ou patches forem disponibilizados.
Plano de dados gerenciado
Se você usa o Cloud Service Mesh gerenciado, o Google gerencia totalmente os upgrades dos proxies.
Com o recurso de plano de dados gerenciado ativado, os proxies sidecar e os gateways injetados são atualizados de forma ativa e automática em conjunto com o plano de controle gerenciado, reiniciando as cargas de trabalho para injetar novas versões do proxy. Isso começa depois que o plano de controle é atualizado e normalmente é concluído em até duas semanas após o início.
Se desativado, o gerenciamento de proxy será feito de forma passiva, determinado pelo ciclo de vida natural dos pods no cluster e precisará ser acionado manualmente pelo usuário para controlar a taxa de atualização.
O plano de dados gerenciado faz o upgrade dos proxies removendo os pods que executam versões anteriores do proxy. As remoções são feitas gradualmente, respeitando o orçamento de interrupção de pods e controlando a taxa de alteração.
Para mais informações, consulte Plano de dados gerenciado.
Configurar a descoberta de endpoint (somente para instalações de vários clusters)
Se a malha tiver apenas um cluster, pule essas etapas de vários clusters e vá para Implantar aplicativos ou Migrar aplicativos.
Antes de continuar, verifique se o Cloud Service Mesh está configurado em cada cluster.
Clusters públicos
Configurar a descoberta de endpoints entre clusters públicos
Se você estiver operando em clusters públicos (clusters não particulares), será possível Configurar a descoberta de endpoints entre clusters públicos ou simplesmente Ativar a descoberta de endpoints entre clusters públicos.
Clusters particulares
Configurar a descoberta de endpoints entre clusters particulares
Ao usar os clusters particulares do GKE, configure o endpoint do plano de controle do cluster para ser o endpoint público, e não o particular. Consulte Configurar a descoberta de endpoints entre clusters particulares.
Para um aplicativo de exemplo com dois clusters, veja Exemplo de serviço HelloWorld.
Implanta aplicativos
Ativar o namespace para injeção. As etapas dependem da sua implementação do plano de controle.
Gerenciado (TD)
- Aplique o rótulo de injeção padrão ao namespace:
kubectl label namespace NAMESPACE \
istio.io/rev- istio-injection=enabled --overwrite
Gerenciado (Istiod)
Recomendado:execute o seguinte comando para aplicar o rótulo de injeção padrão ao namespace:
kubectl label namespace NAMESPACE \
istio.io/rev- istio-injection=enabled --overwrite
Se você já usa o plano de controle gerenciado do Istiod:recomendamos usar a injeção padrão, mas a injeção baseada em revisão é compatível. Siga estas instruções:
Execute o comando a seguir para localizar os canais de lançamento disponíveis:
kubectl -n istio-system get controlplanerevisionO resultado será o seguinte:
NAME AGE asm-managed-rapid 6d7hOBSERVAÇÃO: se duas revisões do plano de controle aparecerem na lista acima, remova uma delas. Não é possível ter vários canais do plano de controle no cluster.
Na saída, o valor na coluna
NAMEé o rótulo de revisão que corresponde ao canal de lançamento disponível para a versão do Cloud Service Mesh.Aplique o rótulo de revisão ao namespace:
kubectl label namespace NAMESPACE \ istio-injection- istio.io/rev=REVISION_LABEL --overwrite
Valide se o rótulo do namespace foi aplicado corretamente usando o comando a seguir.
kubectl get namespace -L istio-injection
Exemplo de saída:
NAME STATUS AGE ISTIO-INJECTION
default Active 5m9s enabled
Você já configurou o Cloud Service Mesh gerenciado. Se você tiver cargas de trabalho em namespaces rotulados, reinicie-os para que possam ser injetados os proxies.
Se você implantar um aplicativo em uma configuração de vários clusters, replique a configuração do Kubernetes e do plano de controle em todos os clusters, a menos que pretenda limitar essa configuração específica a um subconjunto de clusters. A configuração aplicada a um determinado cluster é a fonte da verdade desse cluster.
Personalizar injeção (opcional)
É possível substituir os valores padrão e personalizar as configurações de injeção, mas isso pode levar a erros de configuração imprevistos e problemas resultantes com contêineres sidecar. Antes de personalizar a injeção, leia as informações após o exemplo para ver observações sobre configurações e recomendações específicas.
A configuração por pod está disponível para substituir essas opções em pods individuais.
Para fazer isso, adicione um contêiner istio-proxy ao seu pod. A injeção
de sidecar vai tratar qualquer configuração definida aqui como uma substituição do
modelo de injeção padrão.
Por exemplo, a configuração a seguir personaliza várias configurações, incluindo a redução das solicitações de CPU, adição de uma montagem de volume e adição de um hook preStop:
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: hello
image: alpine
- name: istio-proxy
image: auto
resources:
requests:
cpu: "200m"
memory: "256Mi"
limits:
cpu: "200m"
memory: "256Mi"
volumeMounts:
- mountPath: /etc/certs
name: certs
lifecycle:
preStop:
exec:
command: ["sleep", "10"]
volumes:
- name: certs
secret:
secretName: istio-certs
Em geral, qualquer campo em um pod pode ser definido. No entanto, é preciso ter cuidado com alguns campos:
- O Kubernetes exige que o campo
imageseja definido antes da execução da injeção. Embora seja possível definir uma imagem específica para substituir a padrão, recomendamos definir aimagecomoauto, o que fará com que o injetor do sidecar selecione a imagem automaticamente. - Alguns campos em
containersdependem de configurações relacionadas. Por exemplo, precisa ser menor ou igual ao limite da CPU. Se os dois campos não estiverem configurados corretamente, o pod pode não ser iniciado. - O Kubernetes permite definir
requestselimitspara recursos no Podspec. O GKE Autopilot só considerarequests. Para mais informações, consulte Como definir limites de recursos no Autopilot.
Além disso, alguns campos podem ser configurados por anotações no pod, mas é recomendável usar a abordagem acima para personalizar as configurações. É preciso ter cuidado com algumas anotações:
- Para o GKE Standard, se
sidecar.istio.io/proxyCPUestiver definido, defina explicitamentesidecar.istio.io/proxyCPULimit. Caso contrário, o limite de CPU do arquivo secundário será definido como ilimitado. - Para o GKE Standard, se
sidecar.istio.io/proxyMemoryestiver definido, defina explicitamentesidecar.istio.io/proxyMemoryLimit. Caso contrário, o limite de memória do arquivo secundário será definido como ilimitado. - No GKE Autopilot, configurar o recurso
requestselimitsusando anotações pode superprovisionar recursos. Use a abordagem de modelo de imagem para evitar. Consulte Exemplos de modificação de recursos no Autopilot.
Por exemplo, consulte a anotação de recursos abaixo:
spec:
template:
metadata:
annotations:
sidecar.istio.io/proxyCPU: "200m"
sidecar.istio.io/proxyCPULimit: "200m"
sidecar.istio.io/proxyMemory: "256Mi"
sidecar.istio.io/proxyMemoryLimit: "256Mi"
Verificar as métricas do plano de controle
É possível ver a versão do plano de controle e do plano de dados no Metrics Explorer.
Para verificar se a configuração funciona conforme o esperado:
No console do Google Cloud , veja as métricas do plano de controle:
Escolha o espaço de trabalho e adicione uma consulta personalizada usando os seguintes parâmetros:
- Tipo de recurso: contêiner do Kubernetes
- Métrica: clientes proxy
- Filtro:
container_name="cr-REVISION_LABEL" - Agrupar por: marcador
revisioneproxy_versionmarcador - Soma do agregador
- Período: 1 minuto
Ao executar o Cloud Service Mesh com um plano de controle gerenciado pelo Google e outro no cluster, é possível diferenciar as métricas pelo nome do contêiner. Por exemplo, as métricas gerenciadas têm
container_name="cr-asm-managed", enquanto métricas não gerenciadas têmcontainer_name="discovery". Para exibir métricas de ambos, remova o filtro emcontainer_name="cr-asm-managed".Verifique a versão do plano de controle e a versão do proxy inspecionando os seguintes campos no Metrics Explorer:
- O campo revisão indica a versão do plano de controle.
- O campo proxy_version indica o
proxy_version. - O campo valor indica o número de proxies conectados.
Para o canal atual para o mapeamento de versão do Cloud Service Mesh, consulte Versões do Cloud Service Mesh por canal.
Migrar aplicativos para o Cloud Service Mesh gerenciado
Preparar para a migração
Para preparar a migração de aplicativos do Cloud Service Mesh no cluster para o Cloud Service Mesh gerenciado, execute as seguintes etapas:
Execute a ferramenta conforme indicado na seção Aplicar o plano de controle gerenciado pelo Google.
(Opcional) Para usar o plano de dados gerenciado pelo Google, ative o gerenciamento:
kubectl annotate --overwrite controlplanerevision REVISION_TAG \ mesh.cloud.google.com/proxy='{"managed":"true"}'
Migrar aplicativos
Para migrar aplicativos do Cloud Service Mesh no cluster para o Cloud Service Mesh gerenciado, execute as seguintes etapas:
- Substitua o rótulo de namespace atual. As etapas dependem da sua implementação do plano de controle.
Gerenciado (TD)
- Aplique o rótulo de injeção padrão ao namespace:
kubectl label namespace NAMESPACE \
istio.io/rev- istio-injection=enabled --overwrite
Gerenciado (Istiod)
Recomendado:execute o seguinte comando para aplicar o rótulo de injeção padrão ao namespace:
kubectl label namespace NAMESPACE \
istio.io/rev- istio-injection=enabled --overwrite
Se você já usa o plano de controle gerenciado do Istiod:recomendamos usar a injeção padrão, mas a injeção baseada em revisão é compatível. Siga estas instruções:
Execute o comando a seguir para localizar os canais de lançamento disponíveis:
kubectl -n istio-system get controlplanerevisionO resultado será o seguinte:
NAME AGE asm-managed-rapid 6d7hOBSERVAÇÃO: se duas revisões do plano de controle aparecerem na lista acima, remova uma delas. Não é possível ter vários canais do plano de controle no cluster.
Na saída, o valor na coluna
NAMEé o rótulo de revisão que corresponde ao canal de lançamento disponível para a versão do Cloud Service Mesh.Aplique o rótulo de revisão ao namespace:
kubectl label namespace NAMESPACE \ istio-injection- istio.io/rev=REVISION_LABEL --overwrite
Execute um upgrade contínuo das implantações no namespace:
kubectl rollout restart deployment -n NAMESPACETeste o aplicativo para verificar se as cargas de trabalho funcionam corretamente.
Se você tiver cargas de trabalho em outros namespaces, repita os passos anteriores para cada namespace.
Se você implantou o aplicativo em uma configuração de vários clusters, replique a configuração do Kubernetes e do Istio em todos os clusters, a menos você pretenda limitar essa configuração apenas a um subconjunto de clusters. A configuração aplicada a um determinado cluster é a fonte da verdade desse cluster.
Se o aplicativo funcionar como esperado, é possível remover o
cluster istiod interno depois de alternar todos os namespaces para o plano de controle gerenciado
pelo cliente ou mantê-los como backup. istiod reduzirá automaticamente
para usar menos recursos. Para remover, pule para
Excluir o plano de controle antigo.
Se você encontrar problemas, identifique e resolva-os seguindo as informações em Como resolver problemas do plano de controle gerenciado. Se necessário, reverta para a versão anterior.
Excluir o plano de controle antigo
Depois de instalar e confirmar que todos os namespaces usam o plano de controle gerenciado pelo Google, é possível excluir o plano de controle antigo.
kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
Se você usou istioctl kube-inject em vez da injeção automática ou se
instalou outros gateways, verifique as métricas do plano de controle
e verifique se o número de endpoints conectados é zero.
Reverter
Siga estas etapas se precisar reverter para a versão anterior do plano de controle:
Atualize as cargas de trabalho a serem injetadas com a versão anterior do plano de controle: No comando a seguir, o valor de revisão
asm-191-1é usado apenas como exemplo. Substitua o valor de exemplo pelo rótulo da revisão do plano de controle anterior.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=asm-191-1 --overwriteReinicie os pods para acionar a reinjeção para que os proxies tenham a versão anterior:
kubectl rollout restart deployment -n NAMESPACE
O plano de controle gerenciado será escalonado automaticamente para zero e não usará nenhum recurso quando não estiver em uso. Os webhooks e o provisionamento mutáveis não serão afetados e não afetarão o comportamento do cluster.
O gateway agora está definido para a revisão asm-managed. Para reverter, execute novamente
o comando de instalação do Cloud Service Mesh, que implantará novamente o gateway que aponta para
o plano de controle no cluster:
kubectl -n istio-system rollout undo deploy istio-ingressgateway
Esta é a resposta esperada em caso de êxito:
deployment.apps/istio-ingressgateway rolled back
Desinstalar
O plano de controle gerenciado reduz a escala a zero automaticamente quando nenhum namespace está usando esse recurso. Para etapas detalhadas, consulte Desinstalar o Cloud Service Mesh.
Solução de problemas
Para identificar e resolver problemas ao usar um plano de controle gerenciado, consulte Como resolver problemas do plano de controle gerenciado.
A seguir
- Saiba mais sobre os canais de lançamento.
- Migrar de
IstioOperator. - Migrar um gateway para o plano de controle gerenciado.
- Saiba como ativar recursos opcionais do Cloud Service Mesh gerenciado, como: