Etapa 3: instalar o ASM

Instalar ASM

A Apigee híbrida usa a distribuição do Istio fornecida com o Anthos Service Mesh (ASM). Siga estas etapas para instalar o ASM no cluster.

Versões compatíveis do ASM

Consulte Plataformas compatíveis da Apigee híbrida para ver as versões do ASM compatíveis com a versão híbrida 1.7.

Realizar etapas de configuração do ASM

Para concluir a instalação do ASM, você precisa seguir as etapas de instalação e configuração específicas na documentação do ASM. Em seguida, volte aqui para concluir a configuração híbrida antes de aplicar a configuração ao cluster.

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

GKE

Preparar para instalar o ASM

  1. Verifique as variáveis de ambiente necessárias para as etapas a seguir e defina-as se for necessário:
    echo $PROJECT_ID
    echo $CLUSTER_NAME
    echo $CLUSTER_LOCATION
  2. Crie um arquivo de sobreposição chamado overlay.yaml com o seguinte conteúdo:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      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)%"}'
    • apigee-runtime é o valor padrão do seletor de nós. Este é o pool de nós apigee-runtime criado na Etapa 1: criar um cluster. Se você estiver usando um seletor de nós diferente ou não estiver usando um, altere ou omita a propriedade nodeSelector.
    • STATIC_IP é o endereço IP do balanceador de carga. Se você não definiu um, omita a propriedade loadBalancerIP, mas mantenha as propriedades type e ports.
  3. Siga as instruções para se preparar para a instalação do ASM:
    1. Pré-requisitos do Anthos
    2. Permissões necessárias para instalar o Anthos Service Mesh.
    3. Planejar uma instalação.
  4. Instale asmcli e qualquer ferramenta necessária, como git, kubectl e jq, seguindo as instruções em Instalar ferramentas necessárias.
  5. Prossiga para a etapa Conceder permissões de administrador do cluster e pare. Não execute a etapa "Validar projeto e cluster".
  6. Instale o ASM com recursos opcionais. Especifique o gateway de entrada legado com --option legacy-default-ingressgateway. por exemplo:
    ./asmcli install \
      --verbose \
      --project_id $PROJECT_ID \
      --cluster_name $CLUSTER_NAME \
      --cluster_location $CLUSTER_LOCATION \
      --output_dir dir_path \
      --custom_overlay overlay.yaml \
      --enable_all \
      --option legacy-default-ingressgateway
    • dir_path é o diretório de saída em que você quer que asmcli configure a instalação do ASM, incluindo todos os subdiretórios.
    • overlay.yaml é o arquivo de sobreposição criado nas etapas anteriores.

    Use essas configurações ao seguir as instruções em Instalar com recursos opcionais.

Solução de problemas

Se você encontrar um erro em gcloud container hub memberships register, talvez tenha excedido o número máximo de clusters registrados com o GKE Hub. Por exemplo:

asmcli_1.12: [WARNING]:  Command 'run_command gcloud
container hub memberships register my-hybrid-example
...' failed.

Siga as etapas a seguir para corrigir o erro e execute asmcli install novamente:

  1. Liste as assinaturas do GKE Hub do seu projeto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Exclua as assinaturas do GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Para mais informações sobre os limites do GKE Hub, consulte Cotas e limites.

Fora do Google Cloud

Estas instruções são para instalar e configurar o ASM para instâncias híbridas da Apigee usando o Anthos para execução em:

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

Preparar para instalar o ASM

  1. Verifique as variáveis de ambiente necessárias para as etapas a seguir e defina-as se for necessário:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Anote os valores que serão necessários com ASMCLI. Estes são os valores que você precisará fornecer ao seguir as etapas na documentação do ASM:
    • FLEET_PROJECT_ID é o nome do projeto ao qual os clusters serão associados. Use o projeto criado para esta instalação, armazenado na variável de ambiente ${PROJECT_ID};
    • KUBECONFIG_FILE O caminho completo para o arquivo kubeconfig. O caminho padrão é $HOME/.kube/config. Para mais informações, consulte Como organizar o acesso ao cluster usando arquivos kubeconfig na documentação do Kubernetes.
    • DIR_PATH é o diretório de saída para a ASMCLI. Esse é o caminho em que os arquivos de configuração do Istio serão criados. Por exemplo, ./asm.
    • GATEWAY_NAMESPACE o namespace do gateway de entrada do Istio, por exemplo: istio;
    • REVISION é o rótulo de revisão desta versão do ASM. Use asm-1129-3;
    • CONTEXT o contexto do Kubernetes; Verifique se o Kubernetes está usando o contexto para o cluster com o seguinte comando:
      kubectl config get-contexts

      Se o cluster atual não for o contexto atual, defina-o com o seguinte comando:

      kubectl config use-context CONTEXT
    • USER_ACCOUNT a conta com as permissões de administrador que você está usando para gerenciar o cluster;
  3. Defina o contexto para seu projeto e região com os seguintes comandos:

    Defina o ID do projeto padrão:

    gcloud config set project ${PROJECT_ID}

    Se você estiver trabalhando com clusters regionais, defina a região do Compute padrão:

    gcloud config set compute/region ${CLUSTER_LOCATION}
  4. Receba as credenciais com o seguinte comando:
    gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
  5. Crie um arquivo de sobreposição chamado overlay.yaml com o seguinte conteúdo:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      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)%"}'
    • apigee-runtime é o valor padrão do seletor de nós. Este é o pool de nós apigee-runtime criado na Etapa 1: criar um cluster. Se você estiver usando um seletor de nós diferente ou não estiver usando um, altere ou omita a propriedade nodeSelector.
    • STATIC_IP é o endereço IP do balanceador de carga. Se você não definiu um, omita a propriedade loadBalancerIP, mas mantenha as propriedades type e ports.
  6. Siga as instruções para se preparar para a instalação do ASM:
    1. Pré-requisitos do Anthos
    2. Permissões necessárias para instalar o Anthos Service Mesh.
    3. Planejar uma instalação.
  7. Instale asmcli e qualquer ferramenta necessária, como git, kubectl e jq, seguindo as instruções em Instalar ferramentas necessárias.
  8. Prossiga para a etapa Conceder permissões de administrador do cluster e pare. Não execute a etapa "Validar projeto e cluster".
  9. Instale o ASM com recursos opcionais. Especifique o gateway de entrada legado com --option legacy-default-ingressgateway. por exemplo:
    ./asmcli install \
      --verbose \
      --project_id $PROJECT_ID \
      --cluster_name $CLUSTER_NAME \
      --cluster_location $CLUSTER_LOCATION \
      --output_dir dir_path \
      --custom_overlay overlay.yaml \
      --enable_all \
      --option legacy-default-ingressgateway
    • dir_path é o diretório de saída em que você quer que asmcli configure a instalação do ASM, incluindo todos os subdiretórios.
    • overlay.yaml é o arquivo de sobreposição criado nas etapas anteriores.

    Use essas configurações ao seguir as instruções em Instalar com recursos opcionais.

Solução de problemas

Se você encontrar um erro em gcloud container hub memberships register, talvez tenha excedido o número máximo de clusters registrados com o GKE Hub. Por exemplo:

asmcli_1.12: [WARNING]:  Command 'run_command gcloud
container hub memberships register my-hybrid-example
...' failed.

Siga as etapas a seguir para corrigir o erro e execute asmcli install novamente:

  1. Liste as assinaturas do GKE Hub do seu projeto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Exclua as assinaturas do GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Para mais informações sobre os limites do GKE Hub, consulte Cotas e limites.

Outras plataformas do Kubernetes

AKS

Configure e faça o download do ASM

Leia as etapas a seguir com atenção antes de começar. Solicitaremos que você realize algumas das etapas listadas na documentação do ASM, depois volte aqui para concluir a instalação.

Neste guia, explicamos como fazer uma instalação limpa da versão 1.12.9-asm.3 do Anthos Service Mesh (ASM) em clusters anexados ao Anthos. Use este guia para instalar o Anthos Service Mesh nos seguintes ambientes:

  • Amazon Elastic Kubernetes Service (Amazon EKS) no Kubernetes
  • Microsoft Azure Kubernetes Service (Microsoft AKS) no Kubernetes
  • Red Hat OpenShift

Como preparar a instalação do Anthos Service Mesh

    Linux

  1. 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
  2. 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-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests/profiles.
  4. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  5. Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. 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
  8. 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-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests/profiles.
  10. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  11. Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. 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
  14. 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
  15. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests\profiles.
  16. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  17. Para facilitar, adicione as ferramentas que estão no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  18. Agora que o ASM Istio está instalado, verifique a versão de istioctl:
    istioctl version
  19. Crie um namespace chamado istio-system para os componentes do plano de controle:
    kubectl create namespace istio-system

Como instalar o Anthos Service Mesh

  1. crie um arquivo chamado overlay.yaml com o conteúdo a seguir.
    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:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          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 usando o perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3" \
        --filename overlay.yaml

    O argumento --set revision adiciona um rótulo de revisão no formato istio.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.

  3. Verifique se os pods istiod estão em execução com kubectl get pods:
    kubectl get pods -n istio-system

    A resposta será semelhante a esta:

    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-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1129-3-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  4. 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

EKS

Configure e faça o download do ASM

Leia as etapas a seguir com atenção antes de começar. Solicitaremos que você realize algumas das etapas listadas na documentação do ASM, depois volte aqui para concluir a instalação.

Neste guia, explicamos como fazer uma instalação limpa da versão 1.12.9-asm.3 do Anthos Service Mesh (ASM) em clusters anexados ao Anthos. Use este guia para instalar o Anthos Service Mesh nos seguintes ambientes:

  • Amazon Elastic Kubernetes Service (Amazon EKS) no Kubernetes
  • Microsoft Azure Kubernetes Service (Microsoft AKS) no Kubernetes
  • Red Hat OpenShift

Como preparar a instalação do Anthos Service Mesh

    Linux

  1. 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
  2. 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-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests/profiles.
  4. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  5. Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. 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
  8. 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-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests/profiles.
  10. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  11. Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. 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
  14. 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
  15. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests\profiles.
  16. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  17. Para facilitar, adicione as ferramentas que estão no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  18. Agora que o ASM Istio está instalado, verifique a versão de istioctl:
    istioctl version
  19. Crie um namespace chamado istio-system para os componentes do plano de controle:
    kubectl create namespace istio-system

Como instalar o Anthos Service Mesh

  1. crie um arquivo chamado overlay.yaml com o conteúdo a seguir.
    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:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          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 usando o perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3" \
        --filename overlay.yaml

    O argumento --set revision adiciona um rótulo de revisão no formato istio.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.

  3. Verifique se os pods istiod estão em execução com kubectl get pods:
    kubectl get pods -n istio-system

    A resposta será semelhante a esta:

    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-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1129-3-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  4. 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

OpenShift

Configure e faça o download do ASM

Leia as etapas a seguir com atenção antes de começar. Solicitaremos que você realize algumas das etapas listadas na documentação do ASM, depois volte aqui para concluir a instalação.

Neste guia, explicamos como fazer uma instalação limpa da versão 1.12.9-asm.3 do Anthos Service Mesh (ASM) em clusters anexados ao Anthos. Use este guia para instalar o Anthos Service Mesh nos seguintes ambientes:

  • Amazon Elastic Kubernetes Service (Amazon EKS) no Kubernetes
  • Microsoft Azure Kubernetes Service (Microsoft AKS) no Kubernetes
  • Red Hat OpenShift

Como preparar a instalação do Anthos Service Mesh

    Linux

  1. Conceda a restrição de contexto de segurança (SCC, na sigla em inglês) anyuid ao istio-system com o seguinte comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. 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
  3. 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-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  4. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests/profiles.
  5. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  6. Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  7. Mac OS

  8. Conceda a restrição de contexto de segurança (SCC, na sigla em inglês) anyuid ao istio-system com o seguinte comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. 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
  10. 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-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  11. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests/profiles.
  12. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  13. Para facilitar, adicione as ferramentas que estão no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. 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
  16. 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
  17. 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
  18. 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ório bin.
    • Os perfis de configuração do Anthos Service Mesh estão no diretório manifests\profiles.
  19. Verifique se você está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  20. Para facilitar, adicione as ferramentas que estão no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  21. Agora que o ASM Istio está instalado, verifique a versão de istioctl:
    istioctl version
  22. Crie um namespace chamado istio-system para os componentes do plano de controle:
    kubectl create namespace istio-system

Como instalar o Anthos Service Mesh

  1. crie um arquivo chamado overlay.yaml com o conteúdo a seguir.
    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:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: true
          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 usando o perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3" \
        --filename overlay.yaml

    O argumento --set revision adiciona um rótulo de revisão no formato istio.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.

  3. Verifique se os pods istiod estão em execução com kubectl get pods:
    kubectl get pods -n istio-system

    A resposta será semelhante a esta:

    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-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1129-3-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  4. 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

Como personalizar a instalação do ASM

A instalação do ASM que você acabou de executar é uma instalação mínima, suficiente para testar e usar a Apigee híbrida para casos de uso básicos. Para informações sobre como lidar com casos de uso mais avançados, como adicionar, remover ou modificar números de porta do balanceador de carga, consulte Como ativar recursos opcionais.

Resumo

Agora, o gerenciador de certificados e o ASM estão instalados e é possível instalar a ferramenta de linha de comando da Apigee híbrida na máquina local.

1 2 3 (A SEGUIR) Etapa 4: instalar a apigeectl 5 6 7 8 9