Schritt 6: Cluster konfigurieren

Konfigurationsüberschreibungen festlegen

Das Installationsprogramm von Apigee Hybrid verwendet für viele Einstellungen Standardwerte. Es gibt jedoch einige Einstellungen, für die keine Standardeinstellungen festgelegt sind. Sie müssen für diese Einstellungen wie unten beschrieben Werte angeben.

Hinweis

Anhand der folgenden Szenarien können Sie feststellen, ob Sie Ihren Cluster für diese konfigurieren möchten. Diese Konfigurationen sind optional.

Cluster konfigurieren

Konventionsgemäß werden Konfigurationsüberschreibungen in einer Datei mit dem Namen overrides.yaml in dem Verzeichnis $HYBRID_FILES/overrides geschrieben.

  1. Erstellen Sie eine neue Datei mit dem Namen overrides.yaml in Ihrem Verzeichnis $HYBRID_FILES/overrides. Beispiel:
    vi $HYBRID_FILES/overrides/overrides.yaml

    overrides.yaml stellt die Konfiguration für Ihre spezielle Installation von Apigee Hybrid bereit. Die Datei „overrides“ in diesem Schritt bietet eine einfache Konfiguration für eine Hybrid-Laufzeitinstallation mit geringem Ressourcenbedarf, die für die erste Installation geeignet ist.

  2. Fügen Sie in overrides.yaml die erforderlichen Attributwerte hinzu (siehe unten). Im Folgenden finden Sie eine detaillierte Beschreibung der einzelnen Attribute.

    Wenn Sie Apigee Hybrid in GKE installieren und Workload Identity zum Authentifizieren von Hybridkomponenten verwenden möchten, wählen Sie den Tab GKE – Workload Identity aus, um Ihre overrides.yaml-Datei zu konfigurieren.

    Wählen Sie je nach Ihrer Auswahl in Schritt 4: Dienstkonten und Anmeldedaten erstellen für alle anderen Installationen den Tab für die Nicht-Produktion Non-prod- oder für die Produktion Prod-Umgebungen aus.

    Informationen zu Installationen in Produktionsumgebungen finden Sie in den Speicheranforderungen für die Cassandra-Datenbank unter Cassandra für die Produktion konfigurieren.

    GKE - Workload Identity

    Ihre Datei overrides.yaml muss die unten aufgeführte Struktur und Syntax haben. Werte in red, bold italics sind Attributwerte, die Sie angeben müssen. Sie werden in der nachfolgenden Tabelle beschrieben.

    Wenn Sie Apigee Hybrid in GKE installieren, haben Sie mit Workload Identity eine Alternative zur Authentifizierung und zum Senden von Anfragen an Google APIs. Eine Übersicht über Workload Identity finden Sie unter:

    Wenn Sie Workload Identity mit Apigee Hybrid in GKE verwenden möchten, verwenden Sie diese Vorlage. Führen Sie dann die Schritte unter Schritt 8: Hybrid-Laufzeit installieren aus, um die Kubernetes-Dienstkonten zu erstellen und sie mit den Google-Dienstkonten zu verknüpfen, die Sie in Schritt 4: Dienstkonten und Anmeldedaten erstellen erstellt haben.

    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.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    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.
    
    

    Non-prod

    Ihre Datei overrides.yaml muss die unten aufgeführte Struktur und Syntax haben. Werte in red, bold italics sind Attributwerte, die Sie angeben müssen. Sie werden in der nachfolgenden Tabelle beschrieben.

    Es gibt Unterschiede zwischen den verschiedenen Plattformen für die Google Cloud-Projektregion und die Kubernetes-Clusterregion. Wählen Sie die Plattform aus, auf der Sie Apigee hybrid installieren.

    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.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    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

    Ihre Datei overrides.yaml muss die unten aufgeführte Struktur und Syntax haben. Werte in red, bold italics sind Attributwerte, die Sie angeben müssen. Sie werden in der nachfolgenden Tabelle beschrieben.

    Es gibt Unterschiede zwischen den verschiedenen Plattformen für die Google Cloud-Projektregion und die Kubernetes-Clusterregion. Wählen Sie die Plattform aus, auf der Sie Apigee hybrid installieren.

    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.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    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"
    

    Beispiel

    Das folgende Beispiel zeigt eine fertige Überschreibungsdatei mit hinzugefügten Attributwerten:

    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.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2
    
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 
    
    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
    
  3. Wenn Sie fertig sind, speichern Sie die Datei.

In der folgenden Tabelle sind alle Attributwerte beschrieben, die Sie in der Überschreibungsdatei angeben müssen. Weitere Informationen finden Sie unter Referenz zu Konfigurationsattributen.

Variable Beschreibung
ANALYTICS_REGION In GKE müssen Sie diesen Wert auf dieselbe Region festlegen, in der der Cluster ausgeführt wird. Wählen Sie auf allen anderen Plattformen die nächstgelegene Analyseregion für Ihren Cluster aus, die Analytics unterstützt. Weitere Informationen finden Sie in der Tabelle in Teil 1, Schritt 2: Organisation erstellen.

Dies ist der Wert, den Sie zuvor der Umgebungsvariable ANALYTICS_REGION zugewiesen haben.

GCP_PROJECT_ID Gibt das Google Cloud-Projekt an, in dem apigee-logger und apigee-metrics ihre Daten per Push übertragen. Dies ist der Wert, der der Umgebungsvariablen PROJECT_ID zugewiesen ist.
CLUSTER_NAME Der Name Ihres Kubernetes-Clusters. Dies ist der Wert, der der Umgebungsvariablen CLUSTER_NAME zugewiesen ist.
CLUSTER_LOCATION Die Region, in der der Cluster ausgeführt wird. Dies ist die Region, in der Sie den Cluster in Schritt 1: Cluster erstellen erstellt haben.

Dies ist der Wert, den Sie zuvor der Umgebungsvariable CLUSTER_LOCATION zugewiesen haben.

ORG_NAME Die ID Ihrer Apigee Hybrid-Organisation. Dies ist der Wert, der der Umgebungsvariablen ORG_NAME zugewiesen ist.
UNIQUE_INSTANCE_IDENTIFIER

Ein eindeutiger String zur Identifizierung dieser Instanz. Es kann eine beliebige Kombination aus Buchstaben und Ziffern mit einer Länge von bis zu 63 Zeichen sein.

Sie können mehrere Organisationen im selben Cluster erstellen, die instanceID muss jedoch für alle Organisationen im selben Kubernetes-Cluster identisch sein.

ENVIRONMENT_GROUP_NAME Der Name der Umgebungsgruppe, der Ihre Umgebungen zugewiesen sind. Das ist die Gruppe, die Sie unter Projekt und Organisation einrichten – Schritt 3: Umgebungsgruppe erstellen erstellt haben. Dies ist der Wert, der der Umgebungsvariablen ENV_GROUP zugewiesen ist.
CERT_NAME
KEY_NAME
Geben Sie den Namen der selbst signierten TLS-Schlüssel- und Zertifikatsdateien ein, die Sie zuvor in Schritt 5: TLS-Zertifikate erstellen erstellt haben. Diese Dateien müssen sich im Verzeichnis base_directory/hybrid-files/certs befinden. Beispiel:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
INGRESS_NAME Der Name des Apigee Ingress-Gateways für Ihre Bereitstellung. Dies kann ein beliebiger Name sein, der die folgenden Anforderungen erfüllt:
  • Darf maximal 17 Zeichen lang sein.
  • Darf nur kleingeschriebene, alphanumerische Zeichen enthalten, "-" oder ".".
  • Muss mit einem alphanumerischen Zeichen beginnen.
  • Er muss mit einem alphanumerischen Zeichen enden.

Siehe ingressGateways[].name in der Referenz zu Konfigurationsattributen.

SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE Optional: Dies ist ein Schlüssel/Wert-Paar, das Annotationen für Ihren Standarddienst für eingehenden Traffic bereitstellt. Annotationen werden von Ihrer Cloud Platform verwendet, um Ihre Hybridinstallation zu konfigurieren, z. B. um den Load-Balancer-Typ auf intern oder extern festzulegen.

Annotationen variieren je nach Plattform. Erforderliche und vorgeschlagene Annotationen finden Sie in der Dokumentation Ihrer Plattform.

Kommentieren Sie diesen Abschnitt aus oder löschen Sie ihn, wenn Sie ihn nicht verwenden.

SVC_LOAD_BALANCER_IP Optional: Eine IP-Adresse, die Sie für Ihren Load-Balancer reserviert haben. Auf Plattformen, die die Angabe der IP-Adresse des Load-Balancers unterstützen, wird der Load-Balancer mit dieser IP-Adresse erstellt. Auf Plattformen, auf denen Sie die IP-Adresse des Load-Balancers nicht angeben können, wird dieses Attribut ignoriert.

Kommentieren Sie diesen Abschnitt aus oder löschen Sie ihn, wenn Sie ihn nicht verwenden.

ENVIRONMENT_NAME Verwenden Sie denselben Namen, den Sie beim Erstellen einer Umgebung in der Benutzeroberfläche verwendet haben, wie unter Projekt und Organisation einrichten – Schritt 3: Umgebungsgruppe erstellen erläutert.
*_SERVICE_ACCOUNT_FILEPATH Der Pfad und der Dateiname des JSON-Dateien des Dienstkontos in Ihrem service-accounts/-Verzeichnis. Die Namen müssen den Pfad zur Dienstkontodatei enthalten. Dies kann ein vollständiger Pfad oder der Pfad relativ zu Ihrem Verzeichnis hybrid-files/ sein. Wenn Sie einen relativen Pfad einfügen, müssen Sie apigeectl, den Befehl zum Anwenden dieser Konfiguration, aus dem Verzeichnis hybrid-files/ aufrufen.

In Nicht-Produktionsumgebungen der Name des einzelnen Dienstkontos, standardmäßig GCP_PROJECT_ID-non-prod.json.

In Produktionsumgebungen der Name der Dienstkontoschlüsseldatei, die Sie mit dem create-service-account-Tool unter Hybride Laufzeitkonfiguration – Schritt 4: Dienstkonten und Anmeldedaten erstellen generiert haben.

Sie können die Liste der Dienstkontodateien in Ihrem service-accounts/-Verzeichnis einsehen.

Die Standardnamen der Dienstkonten für die Produktionsumgebung sind:

  • Cassandra: GCP_PROJECT_ID-apigee-cassandra.json
  • Logger: GCP_PROJECT_ID-apigee-logger.json
  • MART: GCP_PROJECT_ID-apigee-mart.json
  • Connect Agent: GCP_PROJECT_ID-apigee-mart.json
  • Messwerte: GCP_PROJECT_ID-apigee-metrics.json
  • Apigee-Laufzeit: GCP_PROJECT_ID-
  • Synchronizer: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Watcher: GCP_PROJECT_ID-apigee-watcher.json
.

Zusammenfassung

Die Konfigurationsdatei teilt Kubernetes mit, wie die Hybridkomponenten in einem Cluster bereitgestellt werden sollen. Als Nächstes aktivieren Sie den Synchronisierungszugriff, damit die Apigee-Laufzeit und die Verwaltungsebenen kommunizieren können.

1 2 3 4 5 6 (WEITER) Schritt 7: Synchronizer-Zugriff aktivieren 8 9 10