Neste guia, explicamos como fazer downgrade do Anthos Service Mesh de 1.6.14 para 1.5.10 no GKE no VMware.
A reimplantação dos componentes do plano de controle do Anthos Service Mesh leva cerca de 5 a 10 minutos para ser concluída. Além disso, é necessário injetar novos proxies sidecar em todas as cargas de trabalho para que eles sejam atualizados com a versão atual do Anthos Service Mesh. O tempo necessário para atualizar os proxies sidecar depende de muitos fatores, como o número de pods, o número de nós, as configurações de escalonamento da implantação, os orçamentos de interrupção dos pods e outras definições de configuração. Uma estimativa aproximada do tempo necessário para atualizar os proxies sidecar é de 100 pods por minuto.
Visão geral do downgrade
Nesta seção, descrevemos as etapas necessárias para fazer downgrade do Anthos Service Mesh.
Preparação
Veja os Recursos compatíveis e este guia para conhecer os recursos e o processo de downgrade.
Se você ativou recursos opcionais ao instalar a versão anterior do Anthos Service Mesh, precisa ativar os mesmos recursos quando fizer o downgrade. Para ativar recursos opcionais, adicione sinalizações
--set values
ou especifique a sinalização-f
com um arquivo YAML ao executar o comandoistioctl install
.
Fazer downgrade
Siga as etapas deste guia para se preparar para o downgrade do Anthos Service Mesh.
Teste o aplicativo para verificar se as cargas de trabalho estão funcionando corretamente.
Como configurar o ambiente
Você precisa das seguintes ferramentas na máquina onde quer instalar o Anthos Service Mesh. Observe que só é possível instalar o Anthos Service malha em um cluster de usuários, não em um cluster de administrador.
- Ferramenta de linha de comando
curl
- A Google Cloud CLI.
Depois de instalar a Google Cloud CLI:
Faça a autenticação com a Google Cloud CLI:
gcloud auth login
Atualize os componentes:
gcloud components update
Instale
kubectl
:gcloud components install kubectl
Instale a versão necessária de
kpt
:curl -L https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.2/kpt_linux_amd64 > kpt_0_39_2 chmod +x kpt_0_39_2 alias kpt="$(readlink -f kpt_0_39_2)"
Alterne o contexto para seu cluster de usuário:
kubectl config use-context CLUSTER_NAME
Conceda permissões de administrador de cluster à sua conta de usuário (seu endereço de e-mail de login do Google Cloud). Você precisa dessas permissões para criar as regras necessárias de controle de acesso baseado em papéis (RBAC, na sigla em inglês) para o Anthos Service Mesh:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user=USER_ACCOUNT
Como fazer o download do arquivo de instalação
-
Faça o download do arquivo de instalação do Anthos Service Mesh no diretório de trabalho
atual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz
-
Faça o download do arquivo de assinatura e use
openssl
para verificar a assinatura:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz.1.sig openssl dgst -verify /dev/stdin -signature istio-1.5.10-asm.2-linux.tar.gz.1.sig istio-1.5.10-asm.2-linux.tar.gz <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
A saída esperada é
Verified OK
. -
Extraia o conteúdo do arquivo em qualquer local no sistema. Por
exemplo, para extrair o conteúdo para o diretório de trabalho atual:
tar xzf istio-1.5.10-asm.2-linux.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual chamado
istio-1.5.10-asm.2
, que contém:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
usada para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh estão no
diretório
manifests/profiles
.
- Exemplos de aplicativos no diretório
-
Faça o download do arquivo de instalação do Anthos Service Mesh no diretório de trabalho
atual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz
-
Faça o download do arquivo de assinatura e use
openssl
para verificar a assinatura:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz.1.sig openssl dgst -sha256 -verify /dev/stdin -signature istio-1.5.10-asm.2-osx.tar.gz.1.sig istio-1.5.10-asm.2-osx.tar.gz <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
A saída esperada é
Verified OK
. -
Extraia o conteúdo do arquivo em qualquer local no sistema. Por
exemplo, para extrair o conteúdo para o diretório de trabalho atual:
tar xzf istio-1.5.10-asm.2-osx.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual chamado
istio-1.5.10-asm.2
, que contém:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
usada para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh estão no
diretório
manifests/profiles
.
- Exemplos de aplicativos no diretório
-
Faça o download do arquivo de instalação do Anthos Service Mesh no diretório de trabalho
atual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip
-
Faça o download do arquivo de assinatura e use
openssl
para verificar a assinatura:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip.1.sig openssl dgst -verify - -signature istio-1.5.10-asm.2-win.zip.1.sig istio-1.5.10-asm.2-win.zip <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
A saída esperada é
Verified OK
. -
Extraia o conteúdo do arquivo em qualquer local no sistema. Por
exemplo, para extrair o conteúdo para o diretório de trabalho atual:
tar xzf istio-1.5.10-asm.2-win.zip
O comando cria um diretório de instalação no seu diretório de trabalho atual chamado
istio-1.5.10-asm.2
, que contém:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
usada para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh estão no
diretório
manifests/profiles
.
- Exemplos de aplicativos no diretório
-
Verifique se você está no diretório raiz da instalação do Anthos Service Mesh.
cd istio-1.5.10-asm.2
-
Para facilitar, adicione as ferramentas ao diretório
/bin
/bin do seu PATH.export PATH=$PWD/bin:$PATH
Linux
macOS
Windows
Como fazer downgrade do Anthos Service Mesh
Para fazer downgrade do Anthos Service Mesh:
istioctl install --set profile=asm-multicloud
Verificar os componentes do plano de controle
O downgrade requer a reinstalação dos componentes do plano de controle, o que leva
cerca de 5 a 10 minutos para ser concluído. Os antigos componentes do plano de controle são
encerrados e, em seguida, excluídos, à medida que os novos componentes são instalados. É possível verificar
o progresso observando o valor na coluna AGE
das cargas de trabalho.
kubectl get pod -n istio-system
Exemplo de saída:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-5bfdf7c586-v6wxx 2/2 Terminating 0 25m istio-ingressgateway-7b598c5557-b88md 2/2 Running 0 5m44s istiod-78cdbbbdb-d7tps 1/1 Running 0 5m16s promsd-576b8db4d6-lqf64 2/2 Running 1 5m26s
Neste exemplo, há duas instâncias de istio-ingressgateway
. A
instância com 25m
na coluna AGE
está sendo encerrada. Os demais
componentes foram instalados recentemente.
Como atualizar proxies sidecar
Todas as cargas de trabalho que estavam em execução no cluster antes do downgrade precisam ter o proxy sidecar reinjetado para que tenham a versão atual do Anthos Service Mesh.
Com a injeção automática de sidecar, é possível reiniciar os pods atuais para atualizar os sidecars deles. A maneira como você reinicia os pods depende se eles foram criados como parte de uma implantação.
Se você usou uma implantação, reinicie-a. Isso reinicia todos os pods com sidecars:
kubectl rollout restart deployment -n YOUR_NAMESPACE
Se você não usou uma implantação, exclua os pods. Eles serão recriados automaticamente com os sidecars:
kubectl delete pod -n YOUR_NAMESPACE --all
Confira se todos os pods no namespace têm sidecars injetados:
kubectl get pod -n YOUR_NAMESPACE
Neste exemplo de saída do comando anterior, observe que a coluna
READY
indica que há dois contêineres para cada uma das cargas de trabalho: o principal e o contêiner do proxy sidecar.NAME READY STATUS RESTARTS AGE YOUR_WORKLOAD 2/2 Running 0 20s ...