Como fazer upgrade para a versão 1.5.10.
Os procedimentos para fazer upgrade da Apigee híbrida são organizados nas seguintes seções:
- Faça o backup da instalação híbrida.
- Verifique sua versão do Kubernetes e faça upgrade conforme apropriado.
- Fazer upgrade do ASM.
- Instale o ambiente de execução híbrido versão 1.5.
Pré-requisito
- Apigee híbrida versão 1.4. Se você estiver atualizando de uma versão anterior, consulte as instruções sobre Como fazer upgrade da Apigee híbrida para a versão 1.4.
Fazer upgrade para a versão 1.5
- Estas instruções usam a variável de ambiente APIGEECTL_HOME para o diretório
no seu sistema de arquivos em que você instalou
apigeectl
. Se necessário,cd
no diretórioapigeectl
e defina a variável com o seguinte comando:export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- (Recomendado) Faça uma cópia de backup do diretório
$APIGEECTL_HOME/
da versão 1.4. Exemplo:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.4-backup.tar.gz $APIGEECTL_HOME
- (Recomendado) Faça o backup do banco de dados do Cassandra seguindo as instruções em Backup e recuperação do Cassandra.
- Faça upgrade da plataforma do Kubernetes para as versões compatíveis com a versão híbrida 1.5.
Siga a documentação da plataforma se precisar de ajuda.
Clique para expandir uma lista de plataformas compatíveis
Versões da Apigee híbrida Plataformas
1.5 1.6 Anthos(3) (Google Cloud) 1.18.x
1.19.x1.19.x
1.20.x
1.21.xAnthos(3) (AWS) 1.6.x
1.7.x
1.8.x(1)1.7.x
1.8.x(1)
1.9.3+
1.10.xAnthos(3) (Azure) N/A 1.8.x Anthos(3) (no local: - VMware) 1.6.x
1.7.x
1.8.x(1)1.7.x
1.8.x(1)
1.9.3+
1.10.xAnthos(3) (Bare Metal) 1.6.x
1.7.x1.7.x
1.8.2+
1.9.3+
1.10.xAnthos(3) (clusters anexados - várias nuvens)
Versão do Kubernetes (EKS)1.18.x
1.19.x1.19.x
1.20.x
1.21.xAnthos(3) (clusters anexados - várias nuvens)
Versão do Kubernetes (AKS)1.18.x
1.19.x1.19.x
1.20.x
1.21.xAnthos(3) (clusters anexados - várias nuvens)
Versão do OpenShift4.5
4.6
4.74.6
4.7
4.8Anthos(3) (clusters anexados - várias nuvens)
Versão do Konvoy1.7.x 1.7.x Componentes
1.5 1.6 Anthos Service Mesh (ASM)(2) 1.7.x
1.8.x
1.9.x
1.12.x (para a Apigee híbrida 1.5 a partir da versão 1.5.9)1.9.x
1.10.x
1.12.x (versão 1.6.6 e mais recente da Apigee híbrida)JDK JDK 11 JDK 11 cert-manager. 1.2.0 1.2.0
1.5.4Cassandra 3.11.6 3.11.6 (1) Na versão 1.8.2 e mais recentes, siga as instruções deste documento: Conflito com o gerenciador de certificados ao fazer upgrade para a versão 1.8.2 ou mais recente.
(2) Instalar apenas Versões suportadas do ASM.
(3) Instalar apenas versões suportadas do Anthos.
- Se você estiver executando uma versão do
cert-manager
anterior à v1.2.0, precisará fazer upgrade para a v1.2.0.-
Verifique a versão atual do
cert-manager
usando o seguinte comando:kubectl -n cert-manager get deployment -o yaml | grep 'image:'
Algo semelhante ao seguinte é retornado:
image: quay.io/jetstack/cert-manager-controller:v1.2.0 image: quay.io/jetstack/cert-manager-cainjector:v1.2.0 image: quay.io/jetstack/cert-manager-webhook:v1.2.0
-
Remova as implantações usando este comando:
kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
-
Faça upgrade do
cert-manager
para a versão v1.2.0 usando o seguinte comando:kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.yaml
-
Fazer upgrade do ASM para a versão 1.12
Execute o upgrade usando a documentação do ASM apropriada para sua plataforma:
As instruções para instalar e configurar o ASM variam de acordo com a plataforma. As plataformas são divididas nas seguintes categorias:
- GKE: clusters do Google Kubernetes Engine em execução no Google Cloud.
- Fora do Google Cloud: os clusters do Anthos são executados em:
- Clusters do Anthos no VMware (GKE On-Prem)
- Anthos em bare metal
- Clusters do Anthos no AWS
- Amazon EKS
- Outras plataformas do Kubernetes: clusters compatíveis criados e em execução em:
- AKS
- EKS
- OpenShift
A sequência de upgrade para a versão 1.8.x do ASM para sua instalação híbrida é a seguinte:
- prepare-se para o upgrade;
- instale a nova versão do ASM;
- exclua as implantações, os serviços e os webhooks da versão anterior do ASM da instalação atual;
- faça upgrade dos gateways e configure os novos webhooks.
Para fazer upgrade para a versão 1.8.x do ASM para híbrida no GKE:
- Veja os requisitos em Fazer upgrade do Anthos Service Mesh, mas ainda não faça o upgrade.
- Antes de instalar a nova versão, determine a revisão atual. Você precisará
dessas informações para excluir as implantações, os serviços e os webhooks da versão anterior do ASM da
instalação atual. Use o seguinte comando para armazenar a
revisão atual do istiod em uma variável de ambiente:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Crie um novo arquivo
overlay.yaml
ou verifique se ooverlay.yaml
atual contém o seguinte conteúdo:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP:
STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' - Siga as instruções nas seguintes seções da documentação do ASM:
- faça o download do asmcli;
- conceda permissões de administrador de cluster;
- Valide o projeto e o cluster;
- faça upgrade com recursos opcionais. Pare antes de iniciar a seção "Fazer upgrade dos gateways";
- exclua o webhook de mutação e valide o webhook:
cd
no diretório em que você instalouasmcli
;- armazene a nova revisão atual em uma variável de ambiente a ser usada no script
para excluir os webhooks:
UPGRADE_REV="asm-1129-3"
- crie um script de shell contendo os seguintes comandos:
#!/bin/bash set -ex PROJECT_ID="
YOUR_PROJECT_ID " CLUSTER_NAME="YOUR_CLUSTER_NAME " CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION " kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - execute o script para excluir os webhooks atuais;
- siga as etapas em Fazer upgrade de gateways para criar os novos webhooks e alternar o tráfego para os novos gateways.
Estas instruções abrangem o upgrade do ASM em:
- Clusters do Anthos no VMware (GKE On-Prem)
- Anthos em bare metal
- Clusters do Anthos no AWS
- Amazon EKS
- Veja os requisitos em Fazer upgrade do Anthos Service Mesh, mas ainda não faça o upgrade.
- Antes de instalar a nova versão, determine a revisão atual. Você precisará
dessas informações para excluir o Webhook de validação e desativar o webhook
da instalação atual do ASM. Use o seguinte comando para armazenar a revisão
atual do istiod em uma variável de ambiente:
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- Crie um novo arquivo
overlay.yaml
ou verifique se ooverlay.yaml
atual contém o seguinte conteúdo:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP:
STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 values: gateways: istio-ingressgateway: runAsRoot: true meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' - Siga as instruções nas seguintes seções da documentação do ASM:
- faça o download do asmcli;
- conceda permissões de administrador de cluster;
- Valide o projeto e o cluster;
- faça upgrade com recursos opcionais. Pare antes de iniciar a seção "Fazer upgrade dos gateways";
- exclua o webhook de mutação e valide o webhook:
cd
no diretório em que você instalouasmcli
;- armazene a nova revisão atual em uma variável de ambiente a ser usada no script
para excluir os webhooks:
UPGRADE_REV="asm-1129-3"
- crie um script de shell contendo os seguintes comandos:
#!/bin/bash set -ex PROJECT_ID="
YOUR_PROJECT_ID " CLUSTER_NAME="YOUR_CLUSTER_NAME " CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION " gcloud config configurations activate ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID} kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - execute o script para excluir os webhooks atuais;
- siga as etapas em Fazer upgrade de gateways para criar os novos webhooks e alternar o tráfego para os novos gateways.
Nestas instruções, o processo de upgrade da versão istio-1.12.9-asm.3 do Anthos Service Mesh (ASM) nos clusters anexados ao Anthos é igual ao de uma nova instalação.
Como preparar a instalação do Anthos Service Mesh
- 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.12.9-asm.3-linux-amd64.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.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 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.12.9-asm.3-linux-amd64.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual, chamado
istio-1.12.9-asm.3
, que contém o seguinte:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
que você usa 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.12.9-asm.3
- Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
export PATH=$PWD/bin:$PATH
- 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.12.9-asm.3-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.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 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.12.9-asm.3-osx.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual, chamado
istio-1.12.9-asm.3
, que contém o seguinte:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
que você usa 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.12.9-asm.3
- Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
export PATH=$PWD/bin:$PATH
- 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.12.9-asm.3-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.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 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.12.9-asm.3-win.zip
O comando cria um diretório de instalação no seu diretório de trabalho atual, chamado
istio-1.12.9-asm.3
, que contém o seguinte:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
que você usa 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.12.9-asm.3
- Para facilitar, adicione as ferramentas que estão no diretório \bin ao seu PATH:
set PATH=%CD%\bin:%PATH%
- Agora que o ASM Istio está instalado, verifique a versão de
istioctl
:istioctl version
- Crie um namespace chamado istio-system para os componentes do plano de controle:
kubectl create namespace istio-system
Configurar o webhook de validação
Ao instalar o Anthos Service Mesh, você define um rótulo de revisão em istiod. Você precisa definir a mesma revisão no webhook de validação.
- Crie um arquivo chamado
istiod-service.yaml
com o conteúdo a seguir.apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Use
kubectl
para aplicar a configuração de validação do webhook:kubectl apply -f istiod-service.yaml
- Verifique se a configuração foi aplicada:
kubectl get svc -n istio-system
A resposta será semelhante a:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Como instalar o Anthos Service Mesh
- Instale o Anthos Service Mesh com
istioctl
usando o perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3"
A saída será semelhante a esta:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
O argumento
--set revision
adiciona um rótulo de revisão no formatoistio.io/rev=asm-1129-3
a istiod. O rótulo de revisão é usado pelo webhook do injetor automático de sidecar para associar os sidecars injetados a uma revisão istiod específica. Para ativar a injeção automática de sidecar para um namespace, você precisa rotulá-lo com uma revisão que corresponda ao rótulo em istiod. - Verifique se a instalação foi concluída:
kubectl get svc -n istio-system
A saída será semelhante a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Nestas instruções, o processo de upgrade da versão istio-1.12.9-asm.3 do Anthos Service Mesh (ASM) nos clusters anexados ao Anthos é igual ao de uma nova instalação.
Como preparar a instalação do Anthos Service Mesh
- Conceda a restrição de contexto de segurança
anyuid
(SCC) ao istio-system com o seguinte comando da CLI do OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- 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.12.9-asm.3-linux-amd64.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.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 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.12.9-asm.3-linux-amd64.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual, chamado
istio-1.12.9-asm.3
, que contém o seguinte:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
que você usa 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.12.9-asm.3
- Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
export PATH=$PWD/bin:$PATH
- Conceda a restrição de contexto de segurança
anyuid
(SCC) ao istio-system com o seguinte comando da CLI do OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- 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.12.9-asm.3-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.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 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.12.9-asm.3-osx.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual, chamado
istio-1.12.9-asm.3
, que contém o seguinte:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
que você usa 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.12.9-asm.3
- Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
export PATH=$PWD/bin:$PATH
- Conceda a restrição de contexto de segurança
anyuid
(SCC) ao istio-system com o seguinte comando da CLI do OpenShift (oc
):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- 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.12.9-asm.3-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.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - 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.12.9-asm.3-win.zip
O comando cria um diretório de instalação no seu diretório de trabalho atual, chamado
istio-1.12.9-asm.3
, que contém o seguinte:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
que você usa 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.12.9-asm.3
- Para facilitar, adicione as ferramentas que estão no diretório \bin ao seu PATH:
set PATH=%CD%\bin:%PATH%
- Agora que o ASM Istio está instalado, verifique a versão de
istioctl
:istioctl version
- Crie um namespace chamado istio-system para os componentes do plano de controle:
kubectl create namespace istio-system
Configurar o webhook de validação
Ao instalar o Anthos Service Mesh, você define um rótulo de revisão em istiod. Você precisa definir a mesma revisão no webhook de validação.
- Crie um arquivo chamado
istiod-service.yaml
com o conteúdo a seguir.apiVersion: v1 kind: Service metadata: name: istiod namespace: istio-system labels: istio.io/rev: asm-1129-3 app: istiod istio: pilot release: istio spec: ports: - port: 15010 name: grpc-xds # plaintext protocol: TCP - port: 15012 name: https-dns # mTLS with k8s-signed cert protocol: TCP - port: 443 name: https-webhook # validation and injection targetPort: 15017 protocol: TCP - port: 15014 name: http-monitoring # prometheus stats protocol: TCP selector: app: istiod istio.io/rev: asm-1129-3 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
- Use
kubectl
para aplicar a configuração de validação do webhook:kubectl apply -f istiod-service.yaml
- Verifique se a configuração foi aplicada:
kubectl get svc -n istio-system
A resposta será semelhante a:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 22s
Como instalar o Anthos Service Mesh
- Instale o Anthos Service Mesh com
istioctl
usando o perfilasm-multicloud
:istioctl install \ --set profile=asm-multicloud \ --set revision=istio-1.12.9-asm.3
A saída será semelhante a esta:
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
O argumento
--set revision
adiciona um rótulo de revisão no formatoistio.io/rev=1.8.6-asm.1
a istiod. O rótulo de revisão é usado pelo webhook do injetor automático de sidecar para associar os sidecars injetados a uma revisão istiod específica. Para ativar a injeção automática de sidecar para um namespace, você precisa rotulá-lo com uma revisão que corresponda ao rótulo em istiod. - Verifique se a instalação foi concluída:
kubectl get svc -n istio-system
A saída será semelhante a esta:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
Instalar o ambiente de execução híbrido 1.5.10
Faça o download do pacote de lançamento para seu sistema operacional:
Mac 64 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_64.tar.gz
Linux de 64 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_64.tar.gz
Mac 32 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_mac_32.tar.gz
Linux de 32 bits:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.5.10/apigeectl_linux_32.tar.gz
- Renomeie o diretório
apigeectl/
atual para um nome de diretório de backup. Exemplo:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/
-
Extraia o conteúdo do arquivo gzip baixado para seu diretório base híbrido. Exemplo:
tar xvzf
FILENAME .tar.gz -CHYBRID_BASE_DIRECTORY cd
ao diretório base.-
O conteúdo de tar é, por padrão, expandido em um diretório com a versão e a plataforma no nome. Por exemplo,
./apigeectl_1.5.0-d591b23_linux_64
. Renomeie esse diretório paraapigeectl
:mv
apigeectl_1.5.0-d591b23_linux_64 apigeectl - No novo diretório
apigeectl/
, executeapigeectl init
,apigeectl apply
eapigeectl check-ready
:- Inicialize a Apigee híbrida 1.5.10:
apigeectl init -f
OVERRIDES .yaml
Em que OVERRIDES
.yaml
é o arquivooverrides.yaml
editado. - Verifique se ele foi inicializado corretamente com os seguintes comandos:
apigeectl check-ready -f
OVERRIDES .yaml
kubectl describe apigeeds -n apigee
A saída será semelhante a esta:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running
- A sintaxe da sinalização
apigeectl
--dry-run
depende da versão dekubectl
que você está executando. Verifique a versão dekubectl
:gcloud version
- Verifique se há erros com uma simulação usando o comando apropriado para a versão do
kubectl
:kubectl
versão 1.17 e anteriores:apigeectl apply -f
OVERRIDES .yaml
--dry-run=truekubectl
versão 1.18 e mais recentes:apigeectl apply -f
OVERRIDES .yaml
--dry-run=client - Aplique as substituições. Selecione e siga as instruções para ambientes de
produção ou ambientes de demonstração/experimental, dependendo
da sua instalação.
Para ambientes de produção, você precisa fazer upgrade de cada componente híbrido individualmente e verificar o status do componente atualizado para o processo de confirmação do próximo componente.
- Aplique as modificações para fazer upgrade do Cassandra:
apigeectl apply -f
OVERRIDES .yaml
--datastore - Verifique a conclusão:
apigeectl check-ready -f
OVERRIDES .yaml
Passe para a próxima etapa somente quando os pods estiverem prontos.
- Aplique as modificações para fazer upgrade dos componentes de telemetria e verificar a conclusão:
apigeectl apply -f
OVERRIDES .yaml
--telemetryapigeectl check-ready -f
OVERRIDES .yaml
- Traga os componentes do Redis:
apigeectl apply -f
OVERRIDES .yaml
--redis - Aplique as modificações para fazer upgrade dos componentes no nível da organização (MART, Watcher e
Apigee Connect) e verifique a conclusão:
apigeectl apply -f
OVERRIDES .yaml
--orgapigeectl check-ready -f
OVERRIDES .yaml
- Aplique as modificações para fazer upgrade dos seus ambientes. Você tem duas opções:
- Ambiente por ambiente: aplique suas modificações em um ambiente por vez e verifique a conclusão. Repita
esta etapa para cada ambiente:
apigeectl apply -f
OVERRIDES .yaml
--envENV_NAME apigeectl check-ready -f
OVERRIDES .yaml
Em que ENV_NAME é o nome do ambiente que você está atualizando.
- Todos os ambientes de uma só vez: aplique suas modificações a todos os ambientes de uma só vez e verifique a conclusão:
apigeectl apply -f
OVERRIDES .yaml
--all-envsapigeectl check-ready -f
OVERRIDES .yaml
- Ambiente por ambiente: aplique suas modificações em um ambiente por vez e verifique a conclusão. Repita
esta etapa para cada ambiente:
Na maioria dos ambientes experimentais ou de demonstração, é possível aplicar as modificações a todos os componentes de uma só vez. Se o ambiente de demonstração/experimental for grande e complexo ou for muito semelhante a um ambiente de produção, use as instruções para fazer upgrade de ambientes de produção.
apigeectl apply -f
OVERRIDES .yaml
- Verifique o status:
apigeectl check-ready -f
OVERRIDES .yaml
- Aplique as modificações para fazer upgrade do Cassandra:
- Inicialize a Apigee híbrida 1.5.10:
Como reverter um upgrade
Siga estas etapas para reverter um upgrade anterior:
- Limpe os jobs concluídos do namespace do ambiente de execução híbrido,
em que NAMESPACE é o namespace especificado no arquivo de modificações, se você especificou um namespace. Caso contrário, o namespace padrão
é
apigee
:kubectl delete job -n
NAMESPACE \ $(kubectl get job -nNAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Limpe jobs concluídos do namespace
apigee-system
:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Altere a variável
APIGEECTL_HOME
para apontar para o diretório que contém a versão original deapigeectl
. Exemplo:export APIGEECTL_HOME=
PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY - No diretório raiz da instalação para a qual você quer reverter, execute
apigeectl apply
, verifique o status dos seus pods, exclua o componente Redis (novo na versão híbrida v1.5.0) e executeapigeectl init
. Use o arquivo de modificações original da versão para a qual você quer reverter:- Execute
apigeectl apply
:$APIGEECTL_HOME
/apigeectl apply -f overrides/ORIGINAL_OVERRIDES .yaml
- Verifique o status dos seus pods.
kubectl -n
NAMESPACE get podsEm que NAMESPACE é seu namespace da Apigee híbrida.
Siga para a próxima etapa somente quando o pod
apigeeds
estiver em execução. -
Como o Redis é um novo componente da versão híbrida v1.5, execute o comando a seguir para excluí-lo:
apigeectl_1.5.0 delete --redis -f
ORIGINAL_OVERRIDES .yaml
- Execute
apigeectl init
:$APIGEECTL_HOME
/apigeectl init -f overrides/ORIGINAL_OVERRIDES .yaml
- Execute