Gérer les composants du plan d'exécution

Cet article explique comment configurer et gérer les composants du plan d'exécution Apigee hybrid. Pour obtenir la liste des composants du plan d'exécution que vous pouvez configurer, consultez la section Présentation de la configuration du service d'exécution.

À propos du fichier de remplacement

La première fois que vous installez l'environnement d'exécution hybride dans un cluster, vous devez créer un fichier de remplacement de configuration. Ce fichier vous permet de remplacer les valeurs de configuration par défaut si nécessaire, de configurer des environnements, de référencer des certificats TLS et des clés de comptes de service, d'attribuer des pools de nœuds Kubernetes à des composants hybrides spécifiques, etc.

Les étapes d'installation du système hybride décrivent le processus de création d'un fichier de remplacement et le processus d'application de votre configuration à un cluster. Si vous souhaitez modifier la configuration ultérieurement, modifiez le fichier de remplacement que vous avez créé, puis appliquez-le à nouveau.

Modifier une configuration

Pour modifier la configuration d'un composant du plan d'exécution hybride, modifiez votre fichier de remplacement et appliquez les modifications avec apigeectl.

Par exemple, pour modifier le nombre d'instances dupliquées sur le processeur de messages, procédez comme suit :

  1. Ouvrez votre fichier OVERRIDES.yaml. Veillez à utiliser le même fichier de remplacement que celui utilisé pour installer l'environnement d'exécution hybride dans le cluster.
  2. Recherchez l'élément runtime dans le fichier. Exemple :
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. Modifiez les propriétés du nombre d'instances dupliquées, selon vos besoins. Exemple :
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 4
    ...
  4. Utilisez apigeectl pour appliquer la modification au cluster :
    apigeectl apply -f ./OVERRIDES.yaml --org --env ENV_NAME

Quelles propriétés de configuration pouvez-vous modifier ?

Vous trouverez la liste complète des propriétés configurables dans la documentation de référence sur les propriétés de configuration. La référence ne répertorie que les propriétés que vous pouvez modifier. Si vous essayez de modifier une propriété qui ne figure pas dans la référence, la modification est ignorée.

Comment utiliser la référence de configuration ?

La documentation de référence sur la propriété de configuration utilise la notation par points pour décrire les éléments de configuration. Le premier élément est le nom de l'élément de niveau supérieur suivi des propriétés et des propriétés enfants. Exemple :

authz.image.pullPolicy

Dans le fichier de remplacement, les propriétés sont au format YAML approprié. Dans l'exemple ci-dessus, l'élément authz de niveau supérieur est mis en retrait à gauche et les propriétés des sous-éléments sont mis en retrait juste en-dessous. Le code YAML requiert également le signe "deux-points" à la fin de chaque élément et sous-élément.

Par exemple, pour définir la propriété authz.image.pullPolicy sur Always, recherchez ce stanza YAML dans le fichier de remplacement et définissez-le comme suit :

authz:
  image:
    pullPolicy: Always

Autre exemple, la propriété cassandra.auth.admin.password (telle qu'elle est répertoriée dans la référence de la propriété Configuration) est utilisée pour définir le mot de passe administrateur Cassandra. Pour le modifier, localisez le code YAML suivant dans le fichier de remplacement et définissez-le comme suit :

cassandra:
  auth:
    admin:
      password: abc123

N'oubliez pas que la référence sur les propriétés de configuration décrit toutes les propriétés que vous pouvez définir dans des composants de plan d'exécution hybride. Suivez le modèle expliqué ci-dessus pour modifier ces éléments dans votre fichier de remplacement avant d'appliquer les modifications à votre cluster.

Utiliser un exemple prédéfini de fichier de remplacement

Lorsque vous installez pour la première fois l'environnement d'exécution hybride, Apigee vous recommande d'utiliser l'un des exemples de fichiers de remplacement préconfigurés. Ces exemples fournissent un ensemble complet de propriétés de configuration pour des scénarios d'installation spécifiques, tels que la configuration d'une installation de production ou de test. Il vous suffit de fournir les valeurs appropriées pour les propriétés et d'appliquer le fichier de remplacement à votre cluster. Consultez la section Étape 7 : Configurer l'environnement d'exécution hybride pour en savoir plus.

À propos de la configuration par défaut

Apigee conserve la configuration de ses composants par défaut dans le fichier HYBRID_ROOT_DIR/config/values.yaml. Vos fichiers de remplacement suivent la même structure YAML que values.yaml.

Un fichier de remplacement n'inclut généralement qu'un sous-ensemble des propriétés de configuration trouvées dans values.yaml. N'oubliez pas que toutes les propriétés ne sont pas modifiables. Lorsque vous appliquez une configuration à un cluster, vos remplacements sont fusionnés avec les valeurs par défaut pour créer la configuration complète du cluster Kubernetes. Consultez également la section Tester la configuration fusionnée.

Le code suivant montre la configuration par défaut du composant mart, figurant dans values.yaml. Notez que certaines valeurs ont des valeurs par défaut, tandis que d'autres, telles que sslCertPath et sslKeyPath, n'en ont pas. Vous devez fournir ces valeurs manquantes dans votre fichier de remplacement, comme expliqué dans la procédure d'installation. Si vous souhaitez modifier l'une des valeurs par défaut, assurez-vous qu'elles sont modifiables en consultant la documentation de référence sur les propriétés de configuration.

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.3.6"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

Si vous souhaitez modifier les valeurs par défaut d'un composant et que le composant ne se trouve pas déjà dans votre fichier de remplacement, vous pouvez copier son fichier YAML depuis values.yaml dans votre fichier de remplacement et le modifier à partir de ce dernier.

Exemples de fichiers de remplacement

Apigee fournit un ensemble d'exemples de fichiers de remplacement pour vous aider à configurer votre déploiement hybride. Il est recommandé de copier et de modifier le fichier de remplacement qui correspond le mieux à vos exigences d'installation.

Les exemples suivants sont inclus dans le répertoire HYBRID_ROOT_DIR/examples :

Exemples de fichiers de remplacement Description
overrides-small.yaml Cet exemple est idéal pour débuter et progresser rapidement. Il utilise l'empreinte minimale recommandée pour démarrer les composants d'exécution hybride. Cet exemple de configuration repose autant que possible sur les paramètres et les valeurs par défaut. Toutes les instances dupliquées minimales sont définies sur 1.
overrides-medium.yaml Cet exemple constitue un bon point de départ pour les environnements de test et de contrôle qualité. Des composants individuels se sont vus attribuer un niveau supérieur de ressources pour traiter le trafic supplémentaire. Cassandra utilise des disques SSD pour améliorer les performances. Dans cet environnement, il est recommandé aux utilisateurs d'installer des composants avec état et sans état sur des nœuds distincts. Consultez la section Configurer des nœuds dédiés.
overrides-large.yaml Cet exemple constitue un bon point de départ pour les environnements hautes performances tels que la préproduction et la production. L'exemple comprend des propriétés permettant de définir des clés de chiffrement, des mots de passe, etc. Les composants individuels disposent d'au moins deux instances dupliquées.

Annotations personnalisées

Les annotations sont des mappages clé-valeur permettant d'associer des métadonnées à des pods Kubernetes Apigee Hybrid. Vous pouvez créer des annotations personnalisées pour les propriétés suivantes, répertoriées dans la documentation de référence sur les propriétés de configuration :

Pour ajouter une annotation personnalisée, ajoutez un stanza au fichier OVERRIDES.yaml pour le composant correspondant.

L'exemple suivant montre comment une annotation peut être spécifiée dans les pods runtime :

runtime:
  annotations:
    businessunit: "bu1"

Tester la configuration fusionnée

Vous pouvez utiliser l'option --dry-run avec apigeectl pour tester le fichier de configuration fusionnée sans l'appliquer réellement à votre cluster. Cette option est utile pour déboguer un problème d'installation, car elle indique exactement ce qui sera appliqué au cluster. Il est également recommandé de tester la configuration et de la stocker dans le système de gestion de code source pour que vous ayez une référence des ressources installées et configurées dans le cluster.

Dans Apigee hybrid, la syntaxe de l'option --dry-run dépend de la version de kubectl que vous exécutez. Vérifiez la version de kubectl à l'aide de la commande suivante :

kubectl version

kubectl version 1.17 ou antérieure :

APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=true

kubectl version 1.18 et ultérieure :

APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=client

Pour en savoir plus, consultez la page apigeectl.

Créer plusieurs fichiers de remplacement selon vos besoins

Vous pouvez créer autant de fichiers de remplacement que vous le souhaitez, chacun d'entre eux répondant à une exigence spécifique. Par exemple, vous pouvez disposer d'un fichier de remplacement qui ajuste votre cluster pour la production, et un autre pour la création d'un cluster de test. Vous pouvez ensuite conserver ces fichiers dans votre système de gestion de code source.

Utilisez l'option -f avec apigeectl pour spécifier l'emplacement et le nom d'un fichier de remplacement. Exemple :

apigeectl apply  -f ./test_env_override.yaml

Pour en savoir plus, consultez la page apigeectl.

Supprimer des composants spécifiques hybrides du plan d'exécution

Pour supprimer les composants spécifiques hybrides du plan d'exécution de votre cluster, utilisez la commande apigeectl delete. Ces composants incluent synchronizer, mart, runtime, cassandra et udca. Veillez à spécifier le même fichier de remplacement que celui utilisé pour installer les composants d'exécution :

Exemple :

apigeectl delete -f ./OVERRIDES.yaml

Vous pouvez utiliser la commande apigeectl apply pour recréer un ou plusieurs composants spécifiques :

apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml

Pour en savoir plus, consultez la page apigeectl.

Supprimer un composant spécifique

Par exemple, pour supprimer le composant synchronizer, utilisez la commande suivante :

apigeectl delete --org --env ENV_NAME -f ./OVERRIDES.yaml

Vous pouvez ensuite utiliser la commande apigeectl apply pour recréer le composant :

apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml

Pour en savoir plus, consultez la page apigeectl.

Supprimer tous les composants

Pour supprimer tous vos composants de cluster hybrides, y compris ceux créés par la commande apigeectl init, exécutez la commande apigeectl delete avec l'option --all. Veillez à spécifier le même fichier de remplacement que celui utilisé pour installer les composants d'exécution :

Exemple :

apigeectl delete -f ./OVERRIDES.yaml --all

Pour en savoir plus, consultez la page apigeectl.