Passo 3: instale o ASM

Instale o ASM

O Apigee hybrid usa a distribuição do Istio fornecida com o Anthos Service Mesh (ASM). Siga estes passos para instalar o ASM no seu cluster.

Versões do ASM compatíveis

Consulte o artigo Apigee Hybrid: plataformas suportadas para ver as versões do ASM suportadas na versão híbrida 1.5.

Execute os passos de configuração e configuração do ASM

Para concluir a instalação do ASM, tem de seguir primeiro os passos de configuração e configuração específicos do ASM na documentação do ASM. Em seguida, tem de voltar aqui para concluir a configuração específica do híbrido antes de aplicar a configuração ao cluster.

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

Prepare-se para instalar o ASM

  1. Verifique as variáveis de ambiente necessárias para os passos seguintes e defina-as, se necessário:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Crie um ficheiro de sobreposição com o nome overlay.yaml e 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 predefinido para o seletor de nós. Este é o apigee-runtime node pool que criou no Passo 1: crie um cluster. Se estiver a usar um seletor de nós diferente ou não estiver a usar nenhum, altere ou omita a propriedade nodeSelector.
    • STATIC_IP é o endereço IP do seu balanceador de carga. Se não tiver definido nenhuma, omita a propriedade loadBalancerIP, mas mantenha as propriedades type e ports.
  3. Siga as instruções para se preparar para instalar o ASM:
    1. Pré-requisitos do Anthos.
    2. Autorizações necessárias para instalar o Anthos Service Mesh.
    3. Planeie uma instalação.
  4. Instale o asmcli e todas as ferramentas necessárias, como o git, o kubectl e o jq, seguindo as instruções em Instale as ferramentas necessárias.
  5. Continue com o passo para conceder autorizações de administrador do cluster e pare. Não execute o passo "Validar projeto e cluster".
  6. Instale o ASM com funcionalidades opcionais. Especifique o gateway de entrada antigo 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 onde quer que asmcli configure a instalação do ASM, incluindo todos os subdiretórios.
    • overlay.yaml é o ficheiro de sobreposição que criou nos passos anteriores.

    Use estas definições quando seguir as instruções em Instalar com funcionalidades opcionais.

Resolução de problemas

Se encontrar um erro que se refere a gcloud container hub memberships register, pode ter excedido o número máximo de clusters registados no GKE Hub. Por exemplo:

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

Experimente os seguintes passos para corrigir este erro e, em seguida, execute novamente o comando asmcli install:

  1. Apresente as subscrições do GKE Hub para o seu projeto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Elimine as associações do GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

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

Fora do Google Cloud

Estas instruções destinam-se à instalação e configuração do ASM para instâncias híbridas do Apigee que usam o Anthos para serem executadas em:

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

Prepare-se para instalar o ASM

  1. Verifique as variáveis de ambiente necessárias para os passos seguintes e defina-as, se necessário:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Crie um ficheiro de sobreposição com o nome overlay.yaml e 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 predefinido para o seletor de nós. Este é o apigee-runtime node pool que criou no Passo 1: crie um cluster. Se estiver a usar um seletor de nós diferente ou não estiver a usar nenhum, altere ou omita a propriedade nodeSelector.
    • STATIC_IP é o endereço IP do seu balanceador de carga. Se não tiver definido nenhuma, omita a propriedade loadBalancerIP, mas mantenha as propriedades type e ports.
  3. Siga as instruções para se preparar para instalar o ASM:
    1. Pré-requisitos do Anthos.
    2. Autorizações necessárias para instalar o Anthos Service Mesh.
    3. Planeie uma instalação.
  4. Instale o asmcli e todas as ferramentas necessárias, como o git, o kubectl e o jq, seguindo as instruções em Instale as ferramentas necessárias.
  5. Continue com o passo para conceder autorizações de administrador do cluster e pare. Não execute o passo "Validar projeto e cluster".
  6. Instale o ASM com funcionalidades opcionais. Especifique o gateway de entrada antigo 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 onde quer que asmcli configure a instalação do ASM, incluindo todos os subdiretórios.
    • overlay.yaml é o ficheiro de sobreposição que criou nos passos anteriores.

    Use estas definições quando seguir as instruções em Instalar com funcionalidades opcionais.

Resolução de problemas

Se encontrar um erro que se refere a gcloud container hub memberships register, pode ter excedido o número máximo de clusters registados no GKE Hub. Por exemplo:

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

Experimente os seguintes passos para corrigir este erro e, em seguida, execute novamente o comando asmcli install:

  1. Apresente as subscrições do GKE Hub para o seu projeto:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Elimine as associações do GKE Hub:
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

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

GKE noutras plataformas

Estas instruções destinam-se à instalação e configuração do ASM para instâncias híbridas do Apigee que usam o Anthos para serem executadas em:

  • GKE on-prem (Anthos)
  • Anthos em bare metal
  • GKE na AWS

Leia atentamente os passos seguintes antes de começar. Vamos pedir-lhe que execute alguns dos passos indicados na documentação do ASM e, em seguida, volte a esta página para concluir a instalação.

  1. Transfira e descomprima istioctlde acordo com as instruções na documentação do ASM: Transferir o ficheiro de instalação.
  2. Consoante a autoridade de certificação que planeia usar, instale o ASM seguindo as instruções numa das seguintes secções:
    1. Usar a CA de malha: Instalar o Anthos Service Mesh com a CA de malha
    2. Fornecer os seus próprios certificados com a AC do Istio: Instalar o Anthos Service Mesh com a AC do Istio
  3. Configure o webhook de validação com as instruções em Configurar o webhook de validação.
  4. Verifique os componentes do plano de controlo com as instruções em Verificar os componentes do plano de controlo.

    Não continue com "Injetar proxies sidecar".

Outras plataformas Kubernetes

AKS

Configure e transfira o ASM

Leia atentamente os passos seguintes antes de começar. Vamos pedir-lhe que execute alguns dos passos indicados na documentação do ASM e, em seguida, volte aqui para concluir a instalação.

Este guia explica como fazer uma instalação limpa da versão do Anthos Service Mesh (ASM) 1.26.0-asm.11 em clusters anexados do 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

A preparar a instalação do Anthos Service Mesh

    Linux

  1. 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.0-asm.11-linux-amd64.tar.gz
  2. 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.0-asm.11-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. 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.0-asm.11-linux-amd64.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  4. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  5. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. 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.0-asm.11-osx.tar.gz
  8. 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.0-asm.11-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. 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.0-asm.11-osx.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  10. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  11. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. 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.0-asm.11-win.zip
  14. 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.0-asm.11-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. 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.0-asm.11-win.zip

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  16. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  17. Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  18. Agora que o ASM Istio está instalado, verifique a versão do istioctl:
    istioctl version
  19. 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. Instale o Anthos Service Mesh com istioctl através do perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1260-11"

    O argumento --set revision adiciona uma etiqueta de revisão no formato istio.io/rev=asm-1260-11 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.

  2. Verifique se os pods istiod estão a ser executados com kubectl get pods:
    kubectl get pods -n istio-system

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1260-11-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1260-11-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  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-1260-11      ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

Configure o webhook de validação

Quando instala o Anthos Service Mesh, define uma etiqueta de revisão no istiod. Tem de definir a mesma revisão no webhook de validação.

  1. Crie um ficheiro denominado istiod-service.yaml com o seguinte conteúdo:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1260-11
        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-1260-11
      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 do webhook de validação:
    kubectl apply -f istiod-service.yaml
  3. Verifique se a configuração foi aplicada:
    kubectl get svc -n istio-system

    A resposta deve ser semelhante à seguinte:

    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 transfira o ASM

Leia atentamente os passos seguintes antes de começar. Vamos pedir-lhe que execute alguns dos passos indicados na documentação do ASM e, em seguida, volte aqui para concluir a instalação.

Este guia explica como fazer uma instalação limpa da versão do Anthos Service Mesh (ASM) 1.26.0-asm.11 em clusters anexados do 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

A preparar a instalação do Anthos Service Mesh

    Linux

  1. 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.0-asm.11-linux-amd64.tar.gz
  2. 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.0-asm.11-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  3. 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.0-asm.11-linux-amd64.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  4. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  5. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. 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.0-asm.11-osx.tar.gz
  8. 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.0-asm.11-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  9. 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.0-asm.11-osx.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  10. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  11. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. 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.0-asm.11-win.zip
  14. 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.0-asm.11-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  15. 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.0-asm.11-win.zip

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  16. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  17. Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  18. Agora que o ASM Istio está instalado, verifique a versão do istioctl:
    istioctl version
  19. 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. Instale o Anthos Service Mesh com istioctl através do perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1260-11"

    O argumento --set revision adiciona uma etiqueta de revisão no formato istio.io/rev=asm-1260-11 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.

  2. Verifique se os pods istiod estão a ser executados com kubectl get pods:
    kubectl get pods -n istio-system

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1260-11-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1260-11-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  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-1260-11      ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

Configure o webhook de validação

Quando instala o Anthos Service Mesh, define uma etiqueta de revisão no istiod. Tem de definir a mesma revisão no webhook de validação.

  1. Crie um ficheiro denominado istiod-service.yaml com o seguinte conteúdo:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1260-11
        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-1260-11
      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 do webhook de validação:
    kubectl apply -f istiod-service.yaml
  3. Verifique se a configuração foi aplicada:
    kubectl get svc -n istio-system

    A resposta deve ser semelhante à seguinte:

    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 transfira o ASM

Leia atentamente os passos seguintes antes de começar. Vamos pedir-lhe que execute alguns dos passos indicados na documentação do ASM e, em seguida, volte aqui para concluir a instalação.

Este guia explica como fazer uma instalação limpa da versão do Anthos Service Mesh (ASM) 1.26.0-asm.11 em clusters anexados do 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

A preparar a instalação do Anthos Service Mesh

    Linux

  1. Conceda a restrição de contexto de segurança (SCC) anyuid ao istio-system com o seguinte comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. 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.0-asm.11-linux-amd64.tar.gz
  3. 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.0-asm.11-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.0-asm.11-linux-amd64.tar.gz.1.sig istio-1.26.0-asm.11-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  4. 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.0-asm.11-linux-amd64.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  5. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  6. Para maior comodidade, adicione as ferramentas 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) anyuid ao istio-system com o seguinte comando oc:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  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.0-asm.11-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.0-asm.11-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.0-asm.11-osx.tar.gz.1.sig istio-1.26.0-asm.11-osx.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.0-asm.11-osx.tar.gz

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.0-asm.11
  13. Para maior comodidade, adicione as ferramentas no diretório /bin ao seu PATH:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. 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
  16. 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.0-asm.11-win.zip
  17. 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.0-asm.11-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.0-asm.11-win.zip.1.sig istio-1.26.0-asm.11-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  18. 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.0-asm.11-win.zip

    O comando cria um diretório de instalação no seu diretório de trabalho atual denominado istio-1.26.0-asm.11 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.
  19. Certifique-se de que está no diretório raiz da instalação do Anthos Service Mesh:
    cd istio-1.26.0-asm.11
  20. Para maior comodidade, adicione as ferramentas no diretório \bin ao seu PATH:
    set PATH=%CD%\bin:%PATH%
  21. Agora que o ASM Istio está instalado, verifique a versão do istioctl:
    istioctl version
  22. 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. Instale o Anthos Service Mesh com istioctl através do perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1260-11"

    O argumento --set revision adiciona uma etiqueta de revisão no formato istio.io/rev=asm-1260-11 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.

  2. Verifique se os pods istiod estão a ser executados com kubectl get pods:
    kubectl get pods -n istio-system

    O resultado deve ter um aspeto semelhante ao seguinte:

    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-1260-11-dbfb7c7b6-2ls88      1/1     Running   0          3m21s
    istiod-asm-1260-11-dbfb7c7b6-fnj8c      1/1     Running   1          3m21s
  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-1260-11      ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

Configure o webhook de validação

Quando instala o Anthos Service Mesh, define uma etiqueta de revisão no istiod. Tem de definir a mesma revisão no webhook de validação.

  1. Crie um ficheiro denominado istiod-service.yaml com o seguinte conteúdo:
    apiVersion: v1
    kind: Service
    metadata:
      name: istiod
      namespace: istio-system
      labels:
        istio.io/rev: asm-1260-11
        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-1260-11
      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 do webhook de validação:
    kubectl apply -f istiod-service.yaml
  3. Verifique se a configuração foi aplicada:
    kubectl get svc -n istio-system

    A resposta deve ser semelhante à seguinte:

    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

Personalizar a instalação do ASM

A instalação do ASM que acabou de fazer é uma instalação mínima, suficiente para testar e usar o Apigee hybrid para exemplos de utilização básicos. Para informações sobre como abordar exemplos de utilização mais avançados, como adicionar, remover ou modificar números de porta do equilibrador de carga, consulte Ativar funcionalidades opcionais.

Resumo

Agora, tem o cert-manager e o ASM instalados e está pronto para instalar a ferramenta de linha de comandos do Apigee hybrid na sua máquina local.

1 2 3 (NEXT) Passo 4: instale o apigeectl 5 6 7 8 9