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.5.

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
    • 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. 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.

GKE em outras plataformas

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:

  • GKE On-Prem (Anthos)
  • Anthos em bare metal
  • GKE na AWS

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.

  1. Faça o download e descompacte istioctl de acordo com as instruções na documentação do ASM: Como fazer o download do arquivo de instalação.
  2. Dependendo da autoridade de certificação que você planeja usar, instale o ASM seguindo as instruções em uma das seguintes seções:
    1. Como usar o Mesh CA: como instalar o Anthos Service Mesh com o Mesh CA
    2. Como fornecer seus próprios certificados com a CA do Istio: Como instalar o Anthos Service Mesh com a CA do Istio
  3. Configure o webhook de validação com as instruções em Como configurar o webhook de validação.
  4. Verifique os componentes do plano de controle com as instruções em Como verificar os componentes do plano de controle.

    Não continue com "Injetando proxies secundários".

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. Instale o Anthos Service Mesh com istioctl usando o perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    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.

  2. 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
  3. Verifique se a instalação foi concluída:
    kubectl get svc -n istio-system

    A resposta 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

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.

  1. 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)%"}'
  2. Use kubectl para aplicar a configuração de validação do webhook:
    kubectl apply -f istiod-service.yaml
  3. 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

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. Instale o Anthos Service Mesh com istioctl usando o perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    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.

  2. 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
  3. Verifique se a instalação foi concluída:
    kubectl get svc -n istio-system

    A resposta 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

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.

  1. 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)%"}'
  2. Use kubectl para aplicar a configuração de validação do webhook:
    kubectl apply -f istiod-service.yaml
  3. 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

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. Instale o Anthos Service Mesh com istioctl usando o perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    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.

  2. 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
  3. Verifique se a instalação foi concluída:
    kubectl get svc -n istio-system

    A resposta 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

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.

  1. 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)%"}'
  2. Use kubectl para aplicar a configuração de validação do webhook:
    kubectl apply -f istiod-service.yaml
  3. 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 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