Atualizar o Apigee Hybrid para a versão 1.6

<

Se estiver a atualizar a partir da versão 1.4 ou anterior do Apigee hybrid, tem de atualizar primeiro para a versão 1.5 antes de atualizar para a versão 1.6.9. Consulte as instruções para atualizar o Apigee Hybrid para a versão 1.5.

Atualização para a versão 1.6.9: vista geral.

Os procedimentos para atualizar o Apigee hybrid estão organizados nas seguintes secções:

  1. Faça uma cópia de segurança da instalação híbrida.
  2. Verifique a sua versão do Kubernetes e atualize-a conforme adequado.
  3. Instale a versão 1.6.9 do tempo de execução híbrido.
  4. Atualize o ASM.

Pré-requisito

Estas instruções de atualização pressupõem que tem o Apigee hybrid 1.5 instalado e quer atualizá-lo para a versão 1.6.9. Se estiver a fazer a atualização a partir de uma versão anterior, consulte as instruções para atualizar o Apigee Hybrid para a versão 1.5.

Atualize para a versão 1.6

  1. Estas instruções usam a variável de ambiente $APIGEECTL_HOME para o diretório no seu sistema de ficheiros onde o utilitário apigeectl está instalado. Se necessário, cd no diretório apigeectl e defina a variável com o seguinte comando:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. (Recomendado) Faça uma cópia de segurança do diretório $APIGEECTL_HOME/ da versão 1.5. Por exemplo:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.5-backup.tar.gz $APIGEECTL_HOME
  3. (Recomendado) Faça uma cópia de segurança da sua base de dados Cassandra seguindo as instruções em Cópia de segurança e recuperação do Cassandra
  4. Atualize a sua plataforma Kubernetes para as versões suportadas pelo híbrido 1.6. Siga a documentação da sua plataforma se precisar de ajuda.
  5. Se estiver a executar uma versão do cert-manager anterior à v1.5.4, tem de a atualizar para a v1.5.4.
    1. Verifique a versão atual do cert-manager através do seguinte comando:

      kubectl -n cert-manager get deployment -o yaml | grep 'image:'
      

      É devolvido algo semelhante ao seguinte:

      image: quay.io/jetstack/cert-manager-controller:v1.5.4
      image: quay.io/jetstack/cert-manager-cainjector:v1.5.4
      image: quay.io/jetstack/cert-manager-webhook:v1.5.4
    2. Remova as implementações com o seguinte comando:
      $ kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
      
    3. Atualize o cert-manager para a versão 1.5.4 com o seguinte comando:
      $ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
      
  6. Crie a conta de serviço apigee-runtimenecessária para utilização com tokens Google OAUTH. Use a ferramenta create-service-account:
    1. Crie a conta de serviço:
      ./tools/create-service-account --env prod --profile apigee-runtime
    2. Adicione a nova conta de serviço ao ficheiro overrides.yaml do Apigee:
      envs:
       - name: "environment-name"
         … … …
         serviceAccountPaths:
           runtime: "path-to-service-account-file"
         … … …
  7. Adicione a propriedade udca.serviceAccountPath no nível superior do ficheiro de substituições, além da entrada em envs. udca tem de aparecer nas substituições duas vezes, uma ao nível do ambiente e outra ao nível da organização, em paralelo com connectAgent, logger, mart, metrics e watcher.

    Por exemplo:

    … … …
    
    metrics:
      serviceAccountPath: "metrics-service-account-file"
    
    udca:
      serviceAccountPath: "udca-service-account-file"
    
    watcher:
      serviceAccountPath: "watcher-service-account-file"
    … … …
  8. Opcional: se planeia usar o Cloud Trace, certifique-se de que a sua conta de serviço apigee-runtime tem a função Agente do Cloud Trace (roles/cloudtrace.agent) da Google. Pode fazê-lo na IU Cloud Console > IAM & Admin > Contas de serviço ou com os seguintes comandos:
    1. Obtenha o endereço de email da sua conta de serviço do apigee-runtime com o seguinte comando:
      gcloud iam service-accounts list --filter "apigee-runtime"

      Se corresponder ao padrão apigee-runtime@$ORG_NAME.iam.gserviceaccount.com, pode usar esse padrão no passo seguinte.

    2. Atribua a função Agente do Cloud Trace à conta de serviço:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-runtime@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/cloudtrace.agent"

      Onde: $PROJECT_ID é o nome do projeto do Google Cloud onde o Apigee Hybrid está instalado.

Instale o tempo de execução híbrido 1.6.9

  1. Certifique-se de que está no diretório base híbrido (o diretório principal do diretório onde se encontra o ficheiro executável apigeectl):
    cd $APIGEECTL_HOME/..
  2. Transfira o pacote de lançamento para o seu sistema operativo através do seguinte comando. Certifique-se de que seleciona a sua plataforma na tabela seguinte:

    Linux

    Linux de 64 bits:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.6.9/apigeectl_linux_64.tar.gz

    Mac OS

    Mac 64 bits:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.6.9/apigeectl_mac_64.tar.gz

    Windows

    Windows de 64 bits:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.6.9/apigeectl_windows_64.zip
  3. Mude o nome do diretório apigeectl/ atual para um nome de diretório de cópia de segurança. Por exemplo:

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.5/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.5/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.5 
  4. Extraia o conteúdo do ficheiro gzip transferido para o diretório de base híbrido. O diretório base híbrido é o diretório onde se encontra o diretório apigeectl-v1.5 com o nome alterado:

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. Por predefinição, o conteúdo do TAR é expandido para um diretório com a versão e a plataforma no respetivo nome. Por exemplo: ./apigeectl_1.6.9-d591b23_linux_64. Mude o nome desse diretório para apigeectl através do seguinte comando:

    Linux

    mv directory-name-linux apigeectl

    Mac OS

    mv directory-name-mac apigeectl

    Windows

    rename directory-name-windows apigeectl
  6. Altere para o diretório apigeectl:
    cd ./apigeectl

    O ficheiro executável apigeectl encontra-se neste diretório.

  7. Estas instruções usam a variável de ambiente $APIGEECTL_HOME para o diretório no seu sistema de ficheiros onde o utilitário apigeectl está instalado. Se necessário, cd no diretório apigeectl e defina a variável com o seguinte comando:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. Valide a versão do apigeectl com o comando version:
    ./apigeectl version
    Version: 1.6.9
  9. Mova-se para o diretório hybrid-base-directory/hybrid-files. O diretório hybrid-files é onde se encontram os ficheiros de configuração, como o ficheiro de substituições, os certificados e as contas de serviço. Por exemplo:
    cd $APIGEECTL_HOME/../hybrid-files
  10. Verifique se kubectl está definido para o contexto correto através do seguinte comando. O contexto atual deve ser definido para o cluster no qual está a atualizar o Apigee Hybrid.
    kubectl config get-contexts | grep \*
  11. No diretório hybrid-files:
    1. Atualize os seguintes links simbólicos para $APIGEECTL_HOME. Estes links permitem-lhe executar o comando apigeectl recém-instalado a partir do diretório hybrid-files:
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. Para verificar se os links simbólicos foram criados corretamente, execute o seguinte comando e certifique-se de que os caminhos dos links apontam para as localizações corretas:
      ls -l | grep ^l
    3. Faça uma inicialização de teste para verificar se existem erros:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml --dry-run=client

      Onde OVERRIDES é o nome do ficheiro de substituições.

    4. Se não houver erros, inicialize o híbrido 1.6.9:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml
    5. Verifique o estado de inicialização:
      ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
    6. Verifique se existem erros com uma simulação do comando apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --dry-run=client
    7. Se não houver erros, aplique as substituições. Selecione e siga as instruções para ambientes de produção ou ambientes de demonstração/experimentais, consoante a sua instalação.

      Produção

      Para ambientes de produção, deve atualizar cada componente híbrido individualmente e verificar o estado do componente atualizado antes de avançar para o componente seguinte.

      1. Certifique-se de que está no diretório hybrid-files.
      2. Aplique as substituições para atualizar o Cassandra:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --datastore
      3. Conclusão da verificação:
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

        Avance para o passo seguinte apenas quando os pods estiverem prontos.

      4. Aplique as substituições para atualizar os componentes de telemetria e verifique a conclusão:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --telemetry
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
      5. Apresente os componentes do Redis:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --redis
      6. Aplique as substituições para atualizar os componentes ao nível da organização (MART, Watcher e Apigee Connect) e verifique a conclusão:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --org
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
      7. Aplique as substituições para atualizar os seus ambientes. Tem 2 opções:
        • Ambiente por ambiente: aplique as substituições a um ambiente de cada vez e verifique a conclusão. Repita este passo para cada ambiente:
          ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --env ENV_NAME
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

          Em que ENV_NAME é o nome do ambiente que está a atualizar.

        • Todos os ambientes ao mesmo tempo: aplique as substituições a todos os ambientes de uma só vez e verifique a conclusão:
          ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --all-envs
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

      Demonstração/experimental

      Na maioria dos ambientes de demonstração ou experimentais, pode aplicar as substituições a todos os componentes de uma só vez. Se o seu ambiente de demonstração/experimental for grande e complexo ou imitar de perto um ambiente de produção, é recomendável usar as instruções para atualizar ambientes de produção

      1. Certifique-se de que está no diretório hybrid-files.
      2. ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml
      3. Verifique o estado:
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

Atualize o ASM para a versão 1.26

Faça a atualização através da documentação do ASM adequada para a sua plataforma:

As instruções para instalar e configurar o ASM são diferentes consoante a sua plataforma. As plataformas estão divididas nas seguintes categorias:

  • GKE: clusters do Google Kubernetes Engine em execução no Google Cloud.
  • Fora do Google Cloud: clusters do Anthos em execução em:
    • Clusters do Anthos no VMware (GKE On-Prem)
    • Anthos em bare metal
    • Clusters do Anthos no AWS
    • Amazon EKS
  • Outras plataformas Kubernetes: clusters em conformidade criados e executados em:
    • AKS
    • EKS
    • OpenShift

GKE

A sequência para atualizar para a versão do ASM 1.26.4 para a sua instalação híbrida é a seguinte:

  1. Prepare-se para a atualização.
  2. Instale a nova versão do ASM.
  3. Elimine as implementações, os serviços e os webhooks da versão anterior do ASM da sua instalação atual.
  4. Atualize as suas gateways e configure os novos webhooks.

Para atualizar para a versão do ASM 1.26.4 para o híbrido no GKE:

  1. Reveja os requisitos em Atualize o Anthos Service Mesh, mas não faça a atualização ainda.
  2. Antes de instalar a nova versão, determine a revisão atual. Precisa destas informações para eliminar as implementações, os serviços e os webhooks da versão anterior do ASM da sua instalação atual. Use o seguinte comando para armazenar a revisão atual do istiod numa 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}
  3. Crie um novo ficheiro overlay.yaml ou verifique se o ficheiro overlay.yaml existente contém o seguinte conteúdo:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      revision: asm-1264-1
      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)%"}'
  4. Siga as instruções nas secções seguintes da documentação do ASM:
    1. Transferir asmcli
    2. Conceda autorizações de administrador do cluster
    3. Valide o projeto e o cluster
    4. Atualize com funcionalidades opcionais. Pare antes de iniciar a "Secção de atualização de gateways"
  5. Elimine o webhook de mutação e o webhook de validação:
    1. cd no diretório onde instalou o asmcli.
    2. Armazene a nova revisão atual numa variável de ambiente para usar no script para eliminar os webhooks:
      UPGRADE_REV="asm-1264-1"
    3. criar um script de shell com 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 -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_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
      
    4. Execute o script para eliminar os webhooks atuais.
  6. Siga os passos em Atualizar gateways para criar os novos webhooks e mudar o tráfego para os novos gateways.

Fora do Google Cloud

Estas instruções abrangem a atualização do ASM nos seguintes sistemas operativos:

  • Clusters do Anthos no VMware (GKE On-Prem)
  • Anthos em bare metal
  • Clusters do Anthos no AWS
  • Amazon EKS

A sequência para atualizar para a versão do ASM 1.26.4 para a sua instalação híbrida é a seguinte:

  1. Prepare-se para a atualização.
  2. Instale a nova versão do ASM.
  3. Elimine o webhook de mutação e o webhook de validação da sua instalação atual.
  4. Atualize as suas gateways e configure os novos webhooks.
  1. Reveja os requisitos em Atualize o Anthos Service Mesh, mas não faça a atualização ainda.
  2. Antes de instalar a nova versão, determine a revisão atual. Precisa destas informações para eliminar o webhook de validação e o webhook de mutação da sua instalação atual do ASM. Use o seguinte comando para armazenar a revisão do istiod atual numa 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}
  3. Crie um novo ficheiro overlay.yaml ou verifique se o ficheiro overlay.yaml existente contém o seguinte conteúdo:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      revision: asm-1264-1
      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)%"}'
  4. Siga as instruções nas secções seguintes da documentação do ASM:
    1. Transferir asmcli
    2. Conceda autorizações de administrador do cluster
    3. Valide o projeto e o cluster
    4. Atualize com funcionalidades opcionais. Pare antes de iniciar a "Secção de atualização de gateways"
  5. Elimine o webhook de mutação e o webhook de validação:
    1. cd no diretório onde instalou o asmcli.
    2. Armazene a nova revisão atual numa variável de ambiente para usar no script para eliminar os webhooks:
      UPGRADE_REV="asm-1264-1"
    3. criar um script de shell com 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 -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_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
      
    4. Execute o script para eliminar os webhooks atuais.
  6. Siga os passos em Atualizar gateways para criar os novos webhooks e mudar o tráfego para os novos gateways.

AKS / EKS

Nestas instruções, o processo de atualização da versão do Anthos Service Mesh (ASM) istio-1.26.4-asm.1 em clusters anexados do Anthos é igual ao de uma instalação nova.

A preparar a instalação do Anthos Service Mesh

  1. Elimine o webhook de mutação e o webhook de validação:
    1. cd no diretório onde instalou o asmcli.
    2. Armazene a nova revisão atual numa variável de ambiente para usar no script para eliminar os webhooks:
      UPGRADE_REV="asm-1264-1"
    3. criar um script de shell com os seguintes comandos:
      #!/bin/bash
      
      set -ex
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/asm/istio/istiod-service.yaml
        kubectl apply -f ASMCLI_OUTPUT_DIR/asm/istio/istiod-service.yaml ASMCLI_OUTPUT_DIR/istioctl tag set default --revision ${UPGRADE_REV}
      
      
        kubectl delete deploy -l app=istio-ingressgateway,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
      
    4. Execute o script para eliminar os webhooks atuais.
  2. Linux

  3. Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz
  4. Transfira o ficheiro de assinatura e use o openssl para validar a assinatura:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  5. Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo, para extrair os conteúdos para o diretório de trabalho atual:
    tar xzf istio-1.26.4-asm.1-linux-amd64.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.4-asm.1 que contém:

    • Exemplos de aplicações no diretório samples.
    • A ferramenta de linha de comandos istioctl que usa para instalar o Anthos Service Mesh está no diretório bin.
    • Os perfis de configuração do Anthos Service Mesh encontram-se no diretório manifests/profiles.
  6. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  7. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  8. Mac OS

  9. Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz
  10. Transfira o ficheiro de assinatura e use o openssl para validar a assinatura:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.4-asm.1-osx.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  11. Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo, para extrair os conteúdos para o diretório de trabalho atual:
    tar xzf istio-1.26.4-asm.1-osx.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.4-asm.1 que contém:

    • Exemplos de aplicações no diretório samples.
    • A ferramenta de linha de comandos istioctl que usa para instalar o Anthos Service Mesh está no diretório bin.
    • Os perfis de configuração do Anthos Service Mesh encontram-se no diretório manifests/profiles.
  12. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  13. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip
  16. Transfira o ficheiro de assinatura e use o openssl para validar a assinatura:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.4-asm.1-win.zip.1.sig istio-1.26.4-asm.1.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  17. Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo, para extrair os conteúdos para o diretório de trabalho atual:
    tar xzf istio-1.26.4-asm.1-win.zip

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.4-asm.1 que contém:

    • Exemplos de aplicações no diretório samples.
    • A ferramenta de linha de comandos istioctl que usa para instalar o Anthos Service Mesh está no diretório bin.
    • Os perfis de configuração do Anthos Service Mesh encontram-se no diretório manifests\profiles.
  18. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  19. Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  20. Agora que o ASM Istio está instalado, verifique a versão do istioctl:
    istioctl version
  21. Crie um espaço de nomes denominado istio-system para os componentes do plano de controlo:
    kubectl create namespace istio-system

Instalar o Anthos Service Mesh

  1. Edite o ficheiro overlay.yaml ou crie um novo com o seguinte conteúdo:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        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)%"}'
      components:
      - enabled: true
        name: istio-ingressgateway
        k8s:
          service:
            type: LoadBalancer
            ports:
            - name: status-port
              port: 15021
              targetPort: 15021
            - name: http2
              port: 80
              targetPort: 8080
            - name: https
              port: 443
              targetPort: 8443
    
  2. Instale o Anthos Service Mesh com istioctl através do perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1264-1" \
        --filename overlayfile.yaml

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1264-1-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1264-1-798ffb964-fnj8c       1/1     Running   1          3m21s

    O argumento --set revision adiciona uma etiqueta de revisão no formato istio.io/rev=asm-1264-1 ao istiod. A etiqueta de revisão é usada pelo webhook do injetor de sidecar automático para associar sidecars injetados a uma revisão específica do istiod. Para ativar a injeção automática de sidecar para um espaço de nomes, tem de etiquetá-lo com uma revisão que corresponda à etiqueta no istiod.

  3. Confirme se a instalação foi concluída:
    kubectl get svc -n istio-system

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1264-1       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

OpenShift

Nestas instruções, o processo de atualização da versão do Anthos Service Mesh (ASM) istio-1.26.4-asm.1 em clusters anexados do Anthos é igual ao de uma instalação nova.

A preparar a instalação do Anthos Service Mesh

  1. Elimine o webhook de mutação e o webhook de validação:
    1. cd no diretório onde instalou o asmcli.
    2. Armazene a nova revisão atual numa variável de ambiente para usar no script para eliminar os webhooks:
      UPGRADE_REV="asm-1264-1"
    3. criar um script de shell com os seguintes comandos:
      #!/bin/bash
      
      set -ex
      
      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 -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      
      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
      
    4. Execute o script para eliminar os webhooks atuais.
  2. Linux

  3. Conceda a restrição de contexto de segurança (SCC) anyuid ao istio-system com o seguinte comando da CLI do OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  4. Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz
  5. Transfira o ficheiro de assinatura e use o openssl para validar a assinatura:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  6. Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo, para extrair os conteúdos para o diretório de trabalho atual:
    tar xzf istio-1.26.4-asm.1-linux-amd64.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.4-asm.1 que contém:

    • Exemplos de aplicações no diretório samples.
    • A ferramenta de linha de comandos istioctl que usa para instalar o Anthos Service Mesh está no diretório bin.
    • Os perfis de configuração do Anthos Service Mesh encontram-se no diretório manifests/profiles.
  7. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  8. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  9. Mac OS

  10. Conceda a restrição de contexto de segurança (SCC) anyuid ao istio-system com o seguinte comando da CLI do OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  11. Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz
  12. Transfira o ficheiro de assinatura e use o openssl para validar a assinatura:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.4-asm.1-osx.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  13. Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo, para extrair os conteúdos para o diretório de trabalho atual:
    tar xzf istio-1.26.4-asm.1-osx.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.4-asm.1 que contém:

    • Exemplos de aplicações no diretório samples.
    • A ferramenta de linha de comandos istioctl que usa para instalar o Anthos Service Mesh está no diretório bin.
    • Os perfis de configuração do Anthos Service Mesh encontram-se no diretório manifests/profiles.
  14. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  15. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  16. Windows

  17. Conceda a restrição de contexto de segurança (SCC) anyuid ao istio-system com o seguinte comando da CLI do OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  18. Transfira o ficheiro de instalação do Anthos Service Mesh para o diretório de trabalho atual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip
  19. Transfira o ficheiro de assinatura e use o openssl para validar a assinatura:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.4-asm.1-win.zip.1.sig istio-1.26.4-asm.1.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  20. Extraia o conteúdo do ficheiro para qualquer localização no seu sistema de ficheiros. Por exemplo, para extrair os conteúdos para o diretório de trabalho atual:
    tar xzf istio-1.26.4-asm.1-win.zip

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.4-asm.1 que contém:

    • Exemplos de aplicações no diretório samples.
    • A ferramenta de linha de comandos istioctl que usa para instalar o Anthos Service Mesh está no diretório bin.
    • Os perfis de configuração do Anthos Service Mesh encontram-se no diretório manifests\profiles.
  21. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  22. Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  23. Agora que o ASM Istio está instalado, verifique a versão do istioctl:
    istioctl version
  24. Crie um espaço de nomes denominado istio-system para os componentes do plano de controlo:
    kubectl create namespace istio-system

Instalar o Anthos Service Mesh

  1. Edite o ficheiro overlay.yaml ou crie um novo com o seguinte conteúdo:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        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)%"}'
      components:
      - enabled: true
        name: istio-ingressgateway
        k8s:
          service:
            type: LoadBalancer
            ports:
            - name: status-port
              port: 15021
              targetPort: 15021
            - name: http2
              port: 80
              targetPort: 8080
            - name: https
              port: 443
              targetPort: 8443
    
  2. Instale o Anthos Service Mesh com istioctl através do perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1264-1" \
        --filename overlayfile.yaml

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1264-1-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1264-1-798ffb964-fnj8c       1/1     Running   1          3m21s

    O argumento --set revision adiciona uma etiqueta de revisão no formato istio.io/rev=1.6.11-asm.1 ao istiod. A etiqueta de revisão é usada pelo webhook do injetor de sidecar automático para associar sidecars injetados a uma revisão específica do istiod. Para ativar a injeção automática de sidecar para um espaço de nomes, tem de etiquetá-lo com uma revisão que corresponda à etiqueta no istiod.

  3. Confirme se a instalação foi concluída:
    kubectl get svc -n istio-system

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1264-1       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

Reverter uma atualização

Siga estes passos para reverter uma atualização anterior:

  1. Limpe as tarefas concluídas para o espaço de nomes de tempo de execução híbrido, em que NAMESPACE é o espaço de nomes especificado no ficheiro de substituições, se tiver especificado um espaço de nomes. Caso contrário, o espaço de nomes predefinido é apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Limpe as tarefas concluídas para o espaço de nomes apigee-system:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. Altere a variável APIGEECTL_HOME para apontar para o diretório que contém a versão anterior de apigeectl. Por exemplo:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. No diretório raiz da instalação para a qual quer reverter, execute o comando ${APIGEECTL_HOME}/apigeectl apply, verifique o estado dos seus pods e, em seguida, execute o comando ${APIGEECTL_HOME}/apigeectl init. Certifique-se de que usa o ficheiro de substituições original para a versão para a qual quer reverter:
    1. No diretório hybrid-files, execute ${APIGEECTL_HOME}/apigeectl apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/ORIGINAL_OVERRIDES.yaml
    2. Verifique o estado dos seus pods:
      kubectl -n NAMESPACE get pods

      Onde NAMESPACE é o espaço de nomes híbrido do Apigee.

    3. Verifique o estado de apigeeds:
      kubectl describe apigeeds -n apigee

      O resultado deve ter um aspeto semelhante ao seguinte:

      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

      Avance para o passo seguinte apenas quando o apigeeds ßpod estiver em execução.

    4. Corrida apigeectl init:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/ORIGINAL_OVERRIDES.yaml