Étape 4 : Installer l'environnement hybride sur GKE On-Prem

Appliquer la configuration au cluster

Pour installer Apigee hybride dans votre cluster, procédez comme suit :

  1. Vérifiez que vous êtes bien dans le répertoire hybrid-base-directory/hybrid-files.
  2. Vérifiez que kubectl est défini sur le bon contexte. Le contexte actuel doit être défini sur le cluster sur lequel vous déployez :
    kubectl config get-contexts
  3. Exécutez la commande init :
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    La commande init installe les services de déploiement Apigee, le contrôleur de déploiement Apigee ainsi que le webhook d'admission Apigee, et déploie des composants non-Apigee tels qu'Istio et Cert Manager.

  4. Pour vérifier l'état du déploiement, vous pouvez utiliser les commandes suivantes :
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    et

    kubectl get pods -n apigee-system

    et

    kubectl get pods -n istio-system

    Lorsque les pods sont prêts, passez à l'étape suivante.

  5. Procédez à une installation de simulation. Exécutez la commande apply avec l'option --dry-run=true. L'exécution d'une simulation vous permet de rechercher les erreurs éventuelles avant que des modifications ne soient apportées au cluster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Si aucune erreur ne s'affiche, vous pouvez appliquer les composants d'exécution spécifiques à Apigee au cluster :
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Pour vérifier l'état du déploiement :
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Répétez cette étape jusqu'à ce que tous les pods soient prêts. Le démarrage des pods peut prendre plusieurs minutes.

Ajouter un nom d'hôte statique pour Cassandra dans /etc/hosts (Anthos 1.2.x uniquement)

Dans cette étape, vous obtenez l'adresse IP et le nom d'hôte du ou des nœuds de calcul attribués à Cassandra, puis vous les ajoutez à votre fichier /etc/hosts. Lors de l'utilisation du réseau hôte, le pod utilise le nom d'hôte et l'adresse IP du nœud. Le nom d'hôte du nœud n'est pas un DNS. Par conséquent, vous devez ajouter une entrée de nom d'hôte statique dans /etc/hosts pour chaque nœud de calcul Cassandra.

  1. Exécutez cette commande pour obtenir les nœuds de calcul Cassandra. Le paramètre apigee-data est le libellé de nœud par défaut auquel Cassandra est attribué. Si vous avez utilisé un autre libellé de nœud, remplacez celui que vous avez utilisé. Consultez la page Comment ajouter un libellé aux nœuds de calcul.
    kubectl  get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide

    Exemple de résultat :

    kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d
    
    NAME                           STATUS   ROLES    AGE   VERSION          INTERNAL-IP    EXTERNAL-IP    OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    my-cluster1-844788cc8c-2gx7d   Ready    none     19d   v1.14.7-gke.24   21.0.129.248   21.0.129.248   Ubuntu 18.04.3 LTS   4.15.0-62-generic   docker://17.3.2
  2. Ajoutez les noms des nœuds et des adresses IP externes renvoyés par la commande précédente pour chaque nœud de calcul Cassandra dans votre fichier /etc/hosts :
    cat /etc/hosts
    
    127.0.0.1 localhost
    21.0.129.248   my-cluster1-844788cc8c-2gx7d
    

Activer l'accès du synchronisateur

  1. Créez un compte de service GCP et ajoutez-y le rôle Administrateur de l'organisation Apigee. Ce compte de service sera utilisé pour authentifier un appel d'API que vous effectuerez ultérieurement. La console GCP permet de créer facilement le compte de service. Pour obtenir des instructions, consultez la page Créer et gérer des comptes de service dans la documentation de GCP.
  2. Téléchargez la clé du compte de service sur votre système. Suivez les instructions de la section Créer des clés de compte de service dans la documentation de GCP.
  3. Déplacez la clé du compte de service téléchargé dans le répertoire de vos comptes de service : /hybrid-base-directory/hybrid-files/service-accounts.
  4. Exécutez ces deux commandes pour obtenir un jeton :
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    org-admin-service-account-file correspond au chemin d'accès de votre système vers la clé de compte de service que vous avez téléchargée avec le rôle Administrateur d'organisation Apigee.

  5. Appelez l'API setSyncAuthorization pour activer les autorisations requises pour l'outil de synchronisation :
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

    Où :

    • your_org_name : nom de votre organisation hybride.
    • synchronizer-manager-service-account-email : nom d'un compte de service ayant le rôle Gestionnaire de synchronisateur Apigee. Le nom se présente comme une adresse e-mail. Par exemple, apigee-synchronizer@my-project.iam.gserviceaccount.com.

    Exemple :

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. Pour vérifier que le compte de service a été défini, appelez l'API suivante pour obtenir la liste des comptes de service :
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

    La sortie ressemble à ceci :

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }
        

Ajouter l'adresse IP MART à votre organisation

Vous devez ajouter l'adresse IP du point de terminaison MART à votre organisation Apigee. Vous avez défini cette valeur précédemment lors de la définition de la propriété mart.hostAlias dans votre fichier de remplacement. Le plan de gestion a besoin de cette adresse afin de pouvoir communiquer avec le plan d'exécution via MART.

Pour ajouter l'adresse IP MART à votre organisation, procédez comme suit :

  1. Obtenez la valeur que vous avez définie précédemment dans votre fichier de remplacement pour la propriété mart.hostAlias. Pour que MART fonctionne, l'alias d'hôte doit être un nom de domaine complet.
  2. Localisez la clé du compte de service avec le rôle Administrateur de l'organisation Apigee que vous avez téléchargé précédemment, dans la section Activer l'accès au synchronisateur.
  3. Exécutez ces deux commandes pour obtenir un jeton :
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    org-admin-service-account-file correspond au chemin d'accès de votre système vers la clé de compte de service que vous avez téléchargée avec le rôle Administrateur d'organisation Apigee.

  4. Appelez l'API de gestion suivante pour mettre à jour votre organisation avec le point de terminaison MART :
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    Voici un exemple : Veillez à ajouter le préfixe "https://" au nom de domaine.

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

Enregistrer le fichier de remplacement

Veillez à enregistrer votre fichier de remplacement. Vous en aurez besoin pour effectuer les mises à niveau ultérieures, les correctifs ou toute autre modification de la configuration du cluster.