Étape 3 : Installer ASM

Installer ASM

Apigee hybride utilise la distribution Istio fournie avec Anthos Service Mesh (ASM). Pour installer ASM dans votre cluster, procédez comme suit :

Versions ASM compatibles

Pour connaître les versions d'ASM compatibles avec la version d'hybrid 1.5, consultez la page Apigee hybrid : plates-formes compatibles.

Réaliser les étapes d'installation et de configuration d'ASM

Pour effectuer l'installation d'ASM, vous devez d'abord suivre les étapes d'installation et de configuration spécifiques à cet outil dans la documentation ASM. Ensuite, vous devez revenir sur cette page pour terminer la configuration spécifique hybride avant d'appliquer la configuration au cluster.

Les instructions d'installation et de configuration d'ASM varient en fonction de votre plate-forme. Les plates-formes sont réparties dans les catégories suivantes :

  • GKE : clusters Google Kubernetes Engine s'exécutant sur Google Cloud.
  • En dehors de Google Cloud : clusters Anthos s'exécutant sur :
    • Anthos clusters on VMware (GKE On-Prem)
    • Anthos sur solution Bare Metal
    • Anthos clusters on AWS
    • Amazon EKS
  • Autres plates-formes Kubernetes : clusters conformes, créés et exécutés sur :
    • AKS
    • EKS
    • OpenShift

GKE

Préparer l'installation d'ASM

  1. Vérifiez les variables d'environnement dont vous aurez besoin pour les étapes suivantes, et définissez-les si nécessaire :
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Créez un fichier de superposition nommé overlay.yaml avec le contenu suivant :
    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 est la valeur par défaut du sélecteur de nœud. Il s'agit du pool de nœuds apigee-runtime que vous avez créé à l'Étape 1 : Créer un cluster. Si vous utilisez un autre sélecteur de nœud ou si vous n'en utilisez pas, modifiez ou omettez la propriété nodeSelector.
    • STATIC_IP est l'adresse IP de votre équilibreur de charge. Si vous n'en avez pas, omettez la propriété loadBalancerIP, mais conservez les propriétés type et ports.
  3. Suivez les instructions pour préparer l'installation d'ASM :
    1. Conditions préalables d'Anthos
    2. Autorisations requises pour installer Anthos Service Mesh
    3. Planifier une installation
  4. Installez asmcli et tous les outils requis tels que git, kubectl et jq, en suivant les instructions de la section Installer les outils requis.
  5. Suivez la procédure permettant d'attribuer des autorisations d'administrateur de cluster et arrêtez-la. N'effectuez pas l'étape "Valider le projet et le cluster".
  6. Installez ASM avec les fonctionnalités facultatives. Spécifiez l'ancienne passerelle d'entrée avec --option legacy-default-ingressgateway. par exemple :
    ./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 est le répertoire de sortie dans lequel vous souhaitez que asmcli configure l'installation d'ASM, y compris tous les sous-répertoires.
    • overlay.yaml est le fichier de superposition que vous avez créé lors des étapes précédentes.

    Utilisez ces paramètres en suivant les instructions de la section Installer avec les fonctionnalités facultatives.

Dépannage

Si vous rencontrez une erreur faisant référence à gcloud container hub memberships register, vous avez peut-être dépassé le nombre maximal de clusters enregistrés avec GKE Hub. Exemple :

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

Suivez les étapes ci-dessous pour corriger cette erreur, puis exécutez à nouveau asmcli install :

  1. Répertoriez les membres de GKE Hub pour votre projet :
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Supprimez les membres de GKE Hub :
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Pour en savoir plus sur les limites de GKE Hub, consultez la page Quotas et limites.

En dehors de Google Cloud

Ces instructions concernent l'installation et la configuration d'ASM pour les instances Apigee hybrid utilisant Anthos pour s'exécuter sur les plates-formes suivantes :

  • Anthos clusters on VMware (GKE On-Prem)
  • Anthos sur solution Bare Metal
  • Anthos clusters on AWS
  • Amazon EKS

Préparer l'installation d'ASM

  1. Vérifiez les variables d'environnement dont vous aurez besoin pour les étapes suivantes, et définissez-les si nécessaire :
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. Créez un fichier de superposition nommé overlay.yaml avec le contenu suivant :
    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 est la valeur par défaut du sélecteur de nœud. Il s'agit du pool de nœuds apigee-runtime que vous avez créé à l'Étape 1 : Créer un cluster. Si vous utilisez un autre sélecteur de nœud ou si vous n'en utilisez pas, modifiez ou omettez la propriété nodeSelector.
    • STATIC_IP est l'adresse IP de votre équilibreur de charge. Si vous n'en avez pas, omettez la propriété loadBalancerIP, mais conservez les propriétés type et ports.
  3. Suivez les instructions pour préparer l'installation d'ASM :
    1. Conditions préalables d'Anthos
    2. Autorisations requises pour installer Anthos Service Mesh
    3. Planifier une installation
  4. Installez asmcli et tous les outils requis tels que git, kubectl et jq, en suivant les instructions de la section Installer les outils requis.
  5. Suivez la procédure permettant d'attribuer des autorisations d'administrateur de cluster et arrêtez-la. N'effectuez pas l'étape "Valider le projet et le cluster".
  6. Installez ASM avec les fonctionnalités facultatives. Spécifiez l'ancienne passerelle d'entrée avec --option legacy-default-ingressgateway. par exemple :
    ./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 est le répertoire de sortie dans lequel vous souhaitez que asmcli configure l'installation d'ASM, y compris tous les sous-répertoires.
    • overlay.yaml est le fichier de superposition que vous avez créé lors des étapes précédentes.

    Utilisez ces paramètres en suivant les instructions de la section Installer avec les fonctionnalités facultatives.

Dépannage

Si vous rencontrez une erreur faisant référence à gcloud container hub memberships register, vous avez peut-être dépassé le nombre maximal de clusters enregistrés avec GKE Hub. Exemple :

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

Suivez les étapes ci-dessous pour corriger cette erreur, puis exécutez à nouveau asmcli install :

  1. Répertoriez les membres de GKE Hub pour votre projet :
    gcloud container hub memberships list --project=$PROJECT_ID
  2. Supprimez les membres de GKE Hub :
    gcloud container hub memberships delete "membership" --project=$PROJECT_ID

Pour en savoir plus sur les limites de GKE Hub, consultez la page Quotas et limites.

GKE sur d'autres plates-formes

Ces instructions concernent l'installation et la configuration d'ASM pour les instances Apigee hybrid utilisant Anthos pour s'exécuter sur les plates-formes suivantes :

  • GKE On-Prem (Anthos)
  • Anthos sur solution Bare Metal
  • GKE sur AWS

Lisez attentivement la procédure ci-dessous avant de commencer. Nous vous demanderons d'effectuer certaines des étapes répertoriées dans la documentation ASM, puis de revenir sur cette page pour terminer l'installation.

  1. Téléchargez et décompressez istioctl conformément aux instructions de la documentation ASM : Télécharger le fichier d'installation.
  2. Selon l'autorité de certification que vous prévoyez d'utiliser, installez ASM en suivant les instructions de l'une des sections suivantes :
    1. Utiliser Mesh CA : Installer Anthos Service Mesh avec l'autorité de certification Mesh
    2. Fournir vos propres certificats avec Istio CA : Installer Anthos Service Mesh avec l'autorité de certification Istio
  3. Configurez le webhook de validation en suivant les instructions de la section Configurer le webhook de validation.
  4. Vérifiez les composants du plan de contrôle à l'aide des instructions de la section Vérifier les composants du plan de contrôle.

    Ne poursuivez pas avec l'opération "Injecter des proxys side-car".

Autres plates-formes Kubernetes

AKS

Configurer et télécharger ASM

Lisez attentivement la procédure ci-dessous avant de commencer. Nous vous demanderons d'effectuer certaines des étapes répertoriées dans la documentation ASM, puis de revenir sur cette page pour terminer l'installation.

Ce guide explique comment effectuer une installation correcte d'Anthos Service Mesh (ASM) en version 1.12.9-asm.3 sur des clusters associés à Anthos. Utilisez ce guide pour installer Anthos Service Mesh dans les environnements suivants :

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

Préparer l'installation d'Anthos Service Mesh

    Linux

  1. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  2. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests/profiles
  4. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  5. Pour plus de simplicité, ajoutez les outils du répertoire /bin à votre PATH :
    export PATH=$PWD/bin:$PATH
  6. macOS

  7. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  8. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests/profiles
  10. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  11. Pour plus de simplicité, ajoutez les outils du répertoire /bin à votre PATH :
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  14. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-win.zip

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests\profiles
  16. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  17. Pour plus de simplicité, ajoutez les outils du répertoire \bin à votre PATH :
    set PATH=%CD%\bin:%PATH%
  18. Maintenant qu'ASM Istio est installé, vérifiez la version d'istioctl :
    istioctl version
  19. Créez un espace de noms appelé istio-system pour les composants du plan de contrôle :
    kubectl create namespace istio-system

Installer Anthos Service Mesh

  1. Installez Anthos Service Mesh avec istioctl à l'aide du profil asm-multicloud :
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    L'argument --set revision ajoute un libellé de révision au format istio.io/rev=asm-1129-3 à istiod. Le libellé de révision est utilisé par le webhook d'injecteur side-car automatique pour associer les side-cars injectés à une révision particulière d'istiod. Pour activer l'injection automatique side-car pour un espace de noms, vous devez lui attribuer un libellé de révision correspondant au libellé d'istiod.

  2. Vérifiez que les pods istiod s'exécutent avec kubectl get pods :
    kubectl get pods -n istio-system

    Le résultat doit se présenter sous la forme suivante :

    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. Vérifiez que votre installation est terminée :
    kubectl get svc -n istio-system

    Le résultat doit se présenter sous la forme suivante :

    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
    

Configurer le webhook de validation

Lorsque vous installez Anthos Service Mesh, vous définissez un libellé de révision sur istiod. Vous devez définir la même révision sur le webhook de validation.

  1. Créez un fichier nommé istiod-service.yaml avec le contenu suivant :
    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. Utilisez kubectl pour appliquer la configuration du webhook de validation :
    kubectl apply -f istiod-service.yaml
  3. Vérifiez que la configuration a bien été appliquée :
    kubectl get svc -n istio-system

    La réponse devrait ressembler à ceci :

    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

Configurer et télécharger ASM

Lisez attentivement la procédure ci-dessous avant de commencer. Nous vous demanderons d'effectuer certaines des étapes répertoriées dans la documentation ASM, puis de revenir sur cette page pour terminer l'installation.

Ce guide explique comment effectuer une installation correcte d'Anthos Service Mesh (ASM) en version 1.12.9-asm.3 sur des clusters associés à Anthos. Utilisez ce guide pour installer Anthos Service Mesh dans les environnements suivants :

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

Préparer l'installation d'Anthos Service Mesh

    Linux

  1. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  2. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests/profiles
  4. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  5. Pour plus de simplicité, ajoutez les outils du répertoire /bin à votre PATH :
    export PATH=$PWD/bin:$PATH
  6. macOS

  7. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  8. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests/profiles
  10. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  11. Pour plus de simplicité, ajoutez les outils du répertoire /bin à votre PATH :
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  14. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-win.zip

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests\profiles
  16. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  17. Pour plus de simplicité, ajoutez les outils du répertoire \bin à votre PATH :
    set PATH=%CD%\bin:%PATH%
  18. Maintenant qu'ASM Istio est installé, vérifiez la version d'istioctl :
    istioctl version
  19. Créez un espace de noms appelé istio-system pour les composants du plan de contrôle :
    kubectl create namespace istio-system

Installer Anthos Service Mesh

  1. Installez Anthos Service Mesh avec istioctl à l'aide du profil asm-multicloud :
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    L'argument --set revision ajoute un libellé de révision au format istio.io/rev=asm-1129-3 à istiod. Le libellé de révision est utilisé par le webhook d'injecteur side-car automatique pour associer les side-cars injectés à une révision particulière d'istiod. Pour activer l'injection automatique side-car pour un espace de noms, vous devez lui attribuer un libellé de révision correspondant au libellé d'istiod.

  2. Vérifiez que les pods istiod s'exécutent avec kubectl get pods :
    kubectl get pods -n istio-system

    Le résultat doit se présenter sous la forme suivante :

    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. Vérifiez que votre installation est terminée :
    kubectl get svc -n istio-system

    Le résultat doit se présenter sous la forme suivante :

    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
    

Configurer le webhook de validation

Lorsque vous installez Anthos Service Mesh, vous définissez un libellé de révision sur istiod. Vous devez définir la même révision sur le webhook de validation.

  1. Créez un fichier nommé istiod-service.yaml avec le contenu suivant :
    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. Utilisez kubectl pour appliquer la configuration du webhook de validation :
    kubectl apply -f istiod-service.yaml
  3. Vérifiez que la configuration a bien été appliquée :
    kubectl get svc -n istio-system

    La réponse devrait ressembler à ceci :

    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

Configurer et télécharger ASM

Lisez attentivement la procédure ci-dessous avant de commencer. Nous vous demanderons d'effectuer certaines des étapes répertoriées dans la documentation ASM, puis de revenir sur cette page pour terminer l'installation.

Ce guide explique comment effectuer une installation correcte d'Anthos Service Mesh (ASM) en version 1.12.9-asm.3 sur des clusters associés à Anthos. Utilisez ce guide pour installer Anthos Service Mesh dans les environnements suivants :

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

Préparer l'installation d'Anthos Service Mesh

    Linux

  1. Attribuez la contrainte de contexte de sécurité (SCC) anyuid au système istio avec la commande oc suivante :
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  3. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests/profiles
  5. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  6. Pour plus de simplicité, ajoutez les outils du répertoire /bin à votre PATH :
    export PATH=$PWD/bin:$PATH
  7. macOS

  8. Attribuez la contrainte de contexte de sécurité (SCC) anyuid au système istio avec la commande oc suivante :
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  10. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests/profiles
  12. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  13. Pour plus de simplicité, ajoutez les outils du répertoire /bin à votre PATH :
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Attribuez la contrainte de contexte de sécurité (SCC) anyuid au système istio avec la commande suivante de la CLI OpenShift (oc) :
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  16. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  17. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    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. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.12.9-asm.3-win.zip

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.12.9-asm.3, qui contient les éléments suivants :

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire manifests\profiles
  19. Assurez-vous d'être dans le répertoire racine de l'installation Anthos Service Mesh :
    cd istio-1.12.9-asm.3
  20. Pour plus de simplicité, ajoutez les outils du répertoire \bin à votre PATH :
    set PATH=%CD%\bin:%PATH%
  21. Maintenant qu'ASM Istio est installé, vérifiez la version d'istioctl :
    istioctl version
  22. Créez un espace de noms appelé istio-system pour les composants du plan de contrôle :
    kubectl create namespace istio-system

Installer Anthos Service Mesh

  1. Installez Anthos Service Mesh avec istioctl à l'aide du profil asm-multicloud :
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3"

    L'argument --set revision ajoute un libellé de révision au format istio.io/rev=asm-1129-3 à istiod. Le libellé de révision est utilisé par le webhook d'injecteur side-car automatique pour associer les side-cars injectés à une révision particulière d'istiod. Pour activer l'injection automatique side-car pour un espace de noms, vous devez lui attribuer un libellé de révision correspondant au libellé d'istiod.

  2. Vérifiez que les pods istiod s'exécutent avec kubectl get pods :
    kubectl get pods -n istio-system

    Le résultat doit se présenter sous la forme suivante :

    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. Vérifiez que votre installation est terminée :
    kubectl get svc -n istio-system

    Le résultat doit se présenter sous la forme suivante :

    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
    

Configurer le webhook de validation

Lorsque vous installez Anthos Service Mesh, vous définissez un libellé de révision sur istiod. Vous devez définir la même révision sur le webhook de validation.

  1. Créez un fichier nommé istiod-service.yaml avec le contenu suivant :
    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. Utilisez kubectl pour appliquer la configuration du webhook de validation :
    kubectl apply -f istiod-service.yaml
  3. Vérifiez que la configuration a bien été appliquée :
    kubectl get svc -n istio-system

    La réponse devrait ressembler à ceci :

    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
    

Personnaliser l'installation d'ASM

L'installation d'ASM que vous venez d'effectuer est une installation minimale, suffisante pour tester et utiliser Apigee hybrid dans des cas d'utilisation de base. Pour en savoir plus sur la gestion de cas d'utilisation plus avancés, tels que l'ajout, la suppression ou la modification de numéros de port de l'équilibreur de charge, consultez la page Activer les fonctionnalités facultatives.

Résumé

Maintenant, cert-manager et ASM sont installés, et vous êtes prêt à installer l'outil de ligne de commande Apigee hybrid sur votre ordinateur local.

1 2 3 (SUITE) Étape 4 : Installer apigeectl 5 6 7 8 9