Spécifier des remplacements de configuration
Le programme d'installation d'Apigee hybrid utilise les valeurs par défaut pour de nombreux paramètres. Toutefois, certains paramètres n'ont pas de valeurs par défaut. Vous devez fournir des valeurs pour ces paramètres, comme expliqué ci-dessous.
Avant de commencer
Nous vous recommandons de consulter les scénarios suivants pour déterminer si vous souhaitez configurer votre cluster pour eux. Ces configurations sont facultatives.
- Si vous prévoyez d'installer hybrid dans plusieurs régions, consultez la section Déploiement multirégional avant de continuer.
- Apigee hybride fournit des mots de passe par défaut pour les utilisateurs Cassandra. Toutefois, nous vous recommandons de modifier les mots de passe utilisateur par défaut. Pour en savoir plus, consultez la page Configurer TLS pour Cassandra.
- Si vous souhaitez configurer les paramètres de stockage et de segments de mémoire pour Cassandra, consultez la page Configurer les paramètres de stockage et de segments de mémoire.
- Pour les scénarios d'installation en production, configurez le stockage sur disque dur SSD persistant pour Cassandra. Nous n'acceptons pas l'utilisation de disques SSD locaux pour Apigee hybrid. Pour plus d'informations, consultez la section Ajouter un stockage SSD pour les déploiements de production.
Configurer le cluster
Par convention, les remplacements de configuration sont écrits dans un fichier nommé overrides.yaml
dans votre répertoire $HYBRID_FILES/overrides
.
- Créez un fichier nommé
overrides.yaml
dans votre répertoire$HYBRID_FILES/overrides
. Exemple :vi $HYBRID_FILES/overrides/overrides.yaml
Le fichier
overrides.yaml
fournit la configuration pour votre installation Apigee hybrid unique. Le fichier de remplacement utilisé à cette étape fournit une configuration de base pour une installation d'exécution Apigee hybrid peu encombrante, adaptée pour une première installation. - Dans
overrides.yaml
, ajoutez les valeurs de propriété requises, indiquées ci-dessous. Vous trouverez ci-dessous une description détaillée de chaque propriété.Si vous installez Apigee hybrid sur GKE et que vous prévoyez d'utiliser Workload Identity pour authentifier les composants hybrides, sélectionnez l'onglet GKE - Workload Identity pour configurer votre fichier
overrides.yaml
.Pour toutes les autres installations, sélectionnez l'onglet Hors production pour les environnements hors production ou l'onglet Prod pour les environnements de production, en fonction de votre choix à l'étape 4 : Créer des comptes de service et des identifiants.
Pour les installations dans des environnements de production, consultez les exigences de stockage de la base de données Cassandra dans la section Configurer Cassandra pour la production.
GKE – Workload Identity
Assurez-vous que le fichier
overrides.yaml
possède la structure et la syntaxe suivantes. Les valeurs de red, bold italics sont des valeurs de propriété que vous devez fournir. Elles sont décrites dans le tableau ci-dessous.Si vous installez Apigee hybrid sur GKE, vous pouvez vous authentifier et envoyer des requêtes aux API Google, à savoir Workload Identity. Pour en savoir plus sur Workload Identity, consultez les sections suivantes :
- Introducing Workload Identity: Better authentication for your GKE applications
- Utiliser Workload Identity
Pour utiliser Workload Identity avec Apigee hybrid sur GKE, utilisez ce modèle, puis suivez les étapes décrites dans la section Étape 8 : Installer un environnement d'exécution hybride pour créer les comptes de service Kubernetes et les associer aux comptes de service Google que vous avez créés lors de la section Étape 4 : Créer des comptes de service et des identifiants.
gcp: region: ANALYTICS_REGION projectID: GCP_PROJECT_ID workloadIdentityEnabled: true k8sCluster: name: CLUSTER_NAME region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org: ORG_NAME instanceID: "UNIQUE_INSTANCE_IDENTIFIER" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 cassandra: hostNetwork: false # false for all GKE installations. # See Multi-region deployment: Prerequisites replicaCount: 3 # Use 1 for demo installations and multiples of 3 for production. # See Configure Cassandra for production for guidelines. backup: enabled: true # Set to true for initial installation. # This triggers apigeectl to create the apigee-cassandra-backup Kubernetes service account. # See Cassandra backup overview for instructions on using cassandra.backup. virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ingressGateways: - name: INGRESS_NAME # maximum 17 characters. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383 SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional envs: - name: ENVIRONMENT_NAME logger: enabled: false # Set to false for all GKE installations.
Hors production
Assurez-vous que le fichier
overrides.yaml
possède la structure et la syntaxe suivantes. Les valeurs de red, bold italics sont des valeurs de propriété que vous devez fournir. Elles sont décrites dans le tableau ci-dessous.Il existe des différences entre les différentes plates-formes pour la région du projet Google Cloud et la région du cluster Kubernetes. Choisissez la plate-forme sur laquelle vous installez Apigee hybrid.
gcp: region: ANALYTICS_REGION projectID: GCP_PROJECT_ID k8sCluster: name: CLUSTER_NAME region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org: ORG_NAME instanceID: "UNIQUE_INSTANCE_IDENTIFIER" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 cassandra: replicaCount: 1 # Use 1 for non-prod or "demo" installations and multiples of 3 for production. # See Configure Cassandra for production for guidelines. hostNetwork: false # Set to false for single region installations and multi-region installations # with connectivity between pods in different clusters, for example GKE installations. # Set to true for multi-region installations with no communication between # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal, # AKS, EKS, and OpenShift installations. # See Multi-region deployment: Prerequisites virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ingressGateways: - name: INGRESS_NAME # maximum 17 characters. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383 SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional envs: - name: ENVIRONMENT_NAME serviceAccountPaths: synchronizer: NON_PROD_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-non-prod.json" udca: NON_PROD_SERVICE_ACCOUNT_FILEPATH runtime: NON_PROD_SERVICE_ACCOUNT_FILEPATH mart: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH connectAgent: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH metrics: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH udca: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH watcher: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH logger: enabled: false # Set to false to disable logger for GKE installations. # Set to true for all platforms other than GKE. # See apigee-logger in Service accounts and roles used by hybrid components. serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
Prod
Assurez-vous que le fichier
overrides.yaml
possède la structure et la syntaxe suivantes. Les valeurs de red, bold italics sont des valeurs de propriété que vous devez fournir. Elles sont décrites dans le tableau ci-dessous.Il existe des différences entre les différentes plates-formes pour la région du projet Google Cloud et la région du cluster Kubernetes. Choisissez la plate-forme sur laquelle vous installez Apigee hybrid.
gcp: region: ANALYTICS_REGION projectID: GCP_PROJECT_ID k8sCluster: name: CLUSTER_NAME region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org: ORG_NAME instanceID: "UNIQUE_INSTANCE_IDENTIFIER" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 cassandra: hostNetwork: false # Set to false for single region installations and multi-region installations # with connectivity between pods in different clusters, for example GKE installations. # Set to true for multi-region installations with no communication between # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal, # AKS, EKS, and OpenShift installations. # See Multi-region deployment: Prerequisites replicaCount: 3 # Use multiples of 3 for production. # See Configure Cassandra for production for guidelines. storage: capacity: 500Gi resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M # Minimum storage requirements for a production environment. # See Configure Cassandra for production. virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ingressGateways: - name: INGRESS_NAME # maximum 17 characters. See Known issue 243167389. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383 SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE envs: - name: ENVIRONMENT_NAME serviceAccountPaths: synchronizer: SYNCHRONIZER_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-synchronizer.json" udca: UDCA_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json" runtime: RUNTIME_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-runtime.json" mart: serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-mart.json" connectAgent: serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH # Use the same service account for mart and connectAgent metrics: serviceAccountPath: METRICS_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-metrics.json" udca: serviceAccountPath: UDCA_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json" watcher: serviceAccountPath: WATCHER_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-watcher.json" logger: enabled: false # Set to false to disable logger for GKE installations. # Set to true for all platforms other than GKE. # See apigee-logger in Service accounts and roles used by hybrid components. serviceAccountPath: LOGGER_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-logger.json"
Exemple
L'exemple suivant montre un fichier de remplacement terminé avec des exemples de valeurs de propriété ajoutées :
gcp: region: us-central1 projectID: hybrid-example k8sCluster: name: apigee-hybrid region: us-central1 org: hybrid-example instanceID: "my_hybrid_example" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" # Required for Apigee hybrid v1.10.5 cassandra: hostNetwork: false replicaCount: 3 virtualhosts: - name: example-env-group selector: app: apigee-ingressgateway ingress_name: my-ingress-1 sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key ingressGateways: - name: my-ingress-1 replicaCountMin: 2 replicaCountMax: 10 envs: - name: test serviceAccountPaths: synchronizer: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-synchronizer.json udca: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-udca.json runtime: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-runtime.json mart: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-mart.json connectAgent: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, example-hybrid-apigee-mart.json metrics: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-metrics.json udca: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-udca.json watcher: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-watcher.json logger: enabled: false # Set to "false" for GKE. Set to "true" for all other Kubernetes platforms. serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, LOGGER_SERVICE_ACCOUNT_NAME.json
- Lorsque vous avez terminé, enregistrez le fichier.
Le tableau suivant décrit chacune des valeurs de propriété que vous devez fournir dans le fichier de remplacement. Pour en savoir plus, consultez la documentation de référence sur les propriétés de configuration.
Variable | Description |
---|---|
ANALYTICS_REGION | Dans GKE, vous devez définir cette valeur sur la même région que celle où le cluster est exécuté. Sur toutes les autres plates-formes, sélectionnez la région d'analyse la plus proche de votre cluster compatible avec Analytics (consultez le tableau de la Partie 1, Étape 2 : Créer une organisation).
Il s'agit de la valeur que vous avez précédemment attribuée à la variable d'environnement |
GCP_PROJECT_ID | Identifie le projet Google Cloud dans lequel apigee-logger et apigee-metrics envoient leurs données. Il s'agit de la valeur attribuée à la variable d'environnement PROJECT_ID . |
CLUSTER_NAME | Le nom de votre cluster Kubernetes. Il s'agit de la valeur attribuée à la variable d'environnement CLUSTER_NAME . |
CLUSTER_LOCATION | La région dans laquelle le cluster est exécuté. Il s'agit de la région dans laquelle vous avez créé le cluster à l'étape 1 : Créer un cluster.
Il s'agit de la valeur que vous avez précédemment attribuée à la variable d'environnement |
ORG_NAME | ID de votre organisation Apigee hybrid. Il s'agit de la valeur attribuée à la variable d'environnement ORG_NAME . |
UNIQUE_INSTANCE_IDENTIFIER | Une chaîne unique pour identifier cette instance. Vous pouvez utiliser n'importe quelle combinaison de lettres et de chiffres (jusqu'à 63 caractères). Vous pouvez créer plusieurs organisations dans le même cluster, mais le |
ENVIRONMENT_GROUP_NAME | Nom du groupe d'environnements auquel vos environnements sont attribués.
Il s'agit du groupe que vous avez créé lors de la configuration du projet et de l'organisation - Étape 3 : Créer un groupe d'environnements. Il s'agit de la valeur attribuée à la variable d'environnement ENV_GROUP .
|
CERT_NAME KEY_NAME |
Saisissez le nom de la clé TLS autosignée et des fichiers de certificat que vous avez générés précédemment à l'Étape 5 : Créer des certificats TLS. Ces fichiers doivent se trouver dans le répertoire base_directory/hybrid-files/certs .
Exemple :
sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key |
INGRESS_NAME | Nom de la passerelle d'entrée Apigee de votre déploiement. Il peut s'agir de n'importe quel nom qui répond aux exigences suivantes :
Consultez la section |
SVC_ANNOTATIONS_KEY : SVC_ANNOTATIONS_VALUE | (Facultatif) Il s'agit d'une paire clé-valeur qui fournit des annotations pour votre service d'entrée par défaut. Les annotations sont utilisées par votre plate-forme cloud pour vous aider à configurer votre installation hybride, par exemple pour définir le type d'équilibreur de charge sur interne ou externe.
Les annotations varient selon les plates-formes. Reportez-vous à la documentation de votre plate-forme pour connaître les annotations requises et celles suggérées. Mettez en commentaire ou supprimez cette section si vous ne l'utilisez pas. |
SVC_LOAD_BALANCER_IP | (Facultatif) Une adresse IP que vous avez réservée pour votre équilibreur de charge.
Sur les plates-formes compatibles avec la spécification de l'adresse IP de l'équilibreur de charge, celui-ci est créé avec cette adresse IP.
Sur les plates-formes qui ne permettent pas de spécifier l'adresse IP de l'équilibreur de charge, cette propriété est ignorée.
Mettez en commentaire ou supprimez cette section si vous ne l'utilisez pas. |
ENVIRONMENT_NAME | Utilisez le même nom que celui que vous avez utilisé lors de la création d'un environnement dans l'interface utilisateur, comme expliqué à l'étape 3 "Créer un groupe d'environnements" de la configuration du projet et de l'organisation. |
*_SERVICE_ACCOUNT_FILEPATH | Chemin d'accès et compte de nom de fichier des fichiers JSON du compte de service dans votre répertoire service-accounts/ . Les noms doivent inclure le chemin d'accès au fichier de compte de service. Il peut s'agir d'un chemin complet ou du chemin relatif permettant d'accéder à votre répertoire hybrid-files/ . Si vous incluez un chemin d'accès relatif, vous devez appeler apigeectl , la commande permettant d'appliquer cette configuration, à partir de votre répertoire hybrid-files/ .
Pour les environnements hors production, le nom du compte de service unique, Pour les environnements de production, le nom du fichier de clé de compte de service que vous avez généré à l'aide de l'outil Vous pouvez consulter la liste des fichiers de compte de service dans votre répertoire Les noms par défaut des comptes de service de l'environnement de production sont les suivants :
|
Résumé
Le fichier de configuration indique à Kubernetes comment déployer les composants hybrides sur un cluster. Vous allez ensuite activer l'accès du synchronisateur pour que les plans d'exécution et de gestion Apigee puissent communiquer.
1 2 3 4 5 6 (SUITE) Étape 7 : Activer l'accès au synchronisateur 8 9 10 11