Passaggio 6: configurazione del cluster

Specificare le sostituzioni di configurazione

L'installatore di Apigee Hybrid utilizza i valori predefiniti per molte impostazioni. Tuttavia, esistono alcune impostazioni che non hanno valori predefiniti. Devi specificare i valori per queste impostazioni, come spiegato di seguito.

Prima di iniziare

Ti consigliamo di esaminare i seguenti scenari per stabilire se vuoi configurare in un cluster Kubernetes. Queste configurazioni sono facoltative.

Configura il cluster

Per convenzione, le sostituzioni di configurazione vengono scritte in un file denominato overrides.yaml nella directory $HYBRID_FILES/overrides.

  1. Crea un nuovo file denominato overrides.yaml nella directory $HYBRID_FILES/overrides. Ad esempio:
    vi $HYBRID_FILES/overrides/overrides.yaml

    overrides.yaml fornisce la configurazione per la tua installazione Apigee hybrid univoca. Il file degli override in questo passaggio fornisce una configurazione di base per un modello ibrido di piccole dimensioni l'installazione runtime, adatta alla prima installazione.

  2. In overrides.yaml, aggiungi la proprietà obbligatoria come mostrato di seguito. Di seguito è riportata anche una descrizione dettagliata di ogni proprietà.

    Se stai installando Apigee hybrid su GKE e prevedi di utilizzare Workload Identity per autenticare i componenti ibride, seleziona la scheda GKE - Workload Identity per configurare il file overrides.yaml.

    Per tutte le altre installazioni, seleziona la scheda per gli ambienti di produzione Prod o non di produzione Non-prod, a seconda della tua scelta nel passaggio 4: crea account di servizio e credenziali.

    Per le installazioni in ambienti di produzione, consulta i requisiti di archiviazione per il database Cassandra in Configurare Cassandra per la produzione.

    GKE - Workload Identity

    Assicurati che il file overrides.yaml abbia la struttura e la sintassi che seguono. Valori in red, bold italics sono i valori delle proprietà che devi fornire. Sono descritte nel tabella riportata di seguito.

    Se installi Apigee hybrid su GKE, hai un'alternativa per l'autenticazione e inviare richieste alle API di Google, Workload Identity. Per panoramiche di Workload Identity, consulta:

    Per utilizzare Workload Identity con Apigee hybrid su GKE, usa questo modello e segui i passaggi nel Passaggio 8: installa il runtime ibrido per creare gli account di servizio Kubernetes e associarli agli account di servizio Google creati nel Passaggio 4: crea gli account di servizio le credenziali.

    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 di produzione

    Assicurati che il file overrides.yaml abbia la struttura e la sintassi che seguono. Valori in red, bold italics sono i valori delle proprietà che devi fornire. Sono descritti nella tabella riportata di seguito.

    Esistono differenze tra le diverse piattaforme per la regione del progetto Google Cloud e la regione del cluster Kubernetes. Scegli il tipo in cui stai installando 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.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
    
    

    Produzione

    Assicurati che il file overrides.yaml abbia la struttura e la sintassi che seguono. Valori in red, bold italics sono i valori delle proprietà che devi fornire. Sono descritti nella tabella riportata di seguito.

    Esistono differenze tra le diverse piattaforme per Regione del progetto Google Cloud e regione del cluster Kubernetes. Scegli la piattaforma su cui stai installando 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.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"
    

    Esempio

    L'esempio seguente mostra un file di override completato con un esempio valori della proprietà aggiunti:

    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. Al termine, salva il file.

La tabella seguente descrive ciascuno dei valori delle proprietà che devi fornire nel file delle sostituzioni. Per ulteriori informazioni, consulta Riferimento per le proprietà di configurazione.

Variabile Descrizione
ANALYTICS_REGION In GKE, devi impostare questo valore sulla stessa regione in cui si trova il cluster in esecuzione. In tutte le altre piattaforme, seleziona la regione di analisi più vicina al tuo cluster che supporta Analytics (consulta la tabella in Parte 1, Passaggio 2: crea un'organizzazione.

Questo è il valore assegnato alla variabile di ambiente ANALYTICS_REGION in precedenza.

GCP_PROJECT_ID Identifica il progetto Google Cloud in cui apigee-logger e il push di apigee-metrics i propri dati. Questo è il valore assegnato alla variabile di ambiente PROJECT_ID.
CLUSTER_NAME Il nome del tuo cluster Kubernetes. Questo è il valore assegnato alla variabile di ambiente CLUSTER_NAME.
CLUSTER_LOCATION La regione in cui è in esecuzione il cluster. Si tratta della regione in cui hai creato il cluster nel passaggio 1: crea un cluster.

Si tratta del valore che hai assegnato alla variabile di ambiente CLUSTER_LOCATION in precedenza.

ORG_NAME L'ID della tua organizzazione Apigee hybrid. Questo è il valore assegnato alla variabile di ambiente ORG_NAME.
UNIQUE_INSTANCE_IDENTIFIER

Una stringa univoca per identificare questa istanza. Può essere qualsiasi combinazione di lettere e numeri con una lunghezza massima di 63 caratteri.

Puoi creare più organizzazioni nello stesso cluster, instanceID deve essere uguale per tutte le organizzazioni nel nello stesso cluster Kubernetes.

ENVIRONMENT_GROUP_NAME Il nome del gruppo di ambienti a cui sono assegnati gli ambienti. Si tratta del gruppo che hai creato in Configurazione del progetto e dell'organizzazione - Passaggio 3: crea un gruppo di ambienti. Questo è il valore assegnato alla variabile di ambiente ENV_GROUP.
CERT_NAME
KEY_NAME
Inserisci il nome della chiave TLS autofirmata e dei file dei certificati generato in precedenza Passaggio 5: crea i certificati TLS Questi file devono trovarsi nella directory base_directory/hybrid-files/certs. Ad esempio:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
INGRESS_NAME Il nome del gateway in entrata Apigee per il tuo deployment. Può essere qualsiasi nome che soddisfi i seguenti requisiti:
  • Avere una lunghezza massima di 17 caratteri
  • Contenere solo caratteri alfanumerici minuscoli, "-" o "."
  • Inizia con un carattere alfanumerico
  • Deve terminare con un carattere alfanumerico

Vedi ingressGateways[].name nel riferimento della proprietà di configurazione

SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE (Facoltativo) Si tratta di una coppia chiave-valore che fornisce annotazioni per il servizio in entrata predefinito. Le annotazioni sono utilizzate la tua piattaforma cloud per aiutarti a configurare dell'installazione, ad esempio impostando il tipo di bilanciatore del carico su interni o esterni.

Le annotazioni variano da una piattaforma all'altra. Fai riferimento alla tua piattaforma documentazione per le annotazioni obbligatorie e suggerite.

Commenta o elimina questa sezione se non la utilizzi.

SVC_LOAD_BALANCER_IP (Facoltativo) Un indirizzo IP che hai prenotato per il bilanciatore del carico. Su piattaforme che supportano la specifica del bilanciatore del carico Indirizzo IP, il bilanciatore del carico verrà creato con questo indirizzo IP. Sulle piattaforme che non consentono di specificare l'IP del bilanciatore del carico, questa proprietà viene ignorata.

Commenta o elimina questa sezione se non la utilizzi.

ENVIRONMENT_NAME Utilizza lo stesso nome che hai utilizzato quando hai creato un ambiente in dell'interfaccia utente, come spiegato in Configurazione del progetto e dell'organizzazione - Passaggio 3: crea un gruppo di ambienti.
*_SERVICE_ACCOUNT_FILEPATH L'account del percorso e del nome file dei file JSON dell'account di servizio nel tuo Directory service-accounts/. I nomi devono includere il percorso dell'account di servizio. Può trattarsi di un percorso completo o del percorso relativo alla directory hybrid-files/. Se includi un percorso relativo, devi chiamare apigeectl, il comando per applicare questa configurazione, dalla directory hybrid-files/.

Per gli ambienti non di produzione, il nome del singolo account di servizio è GCP_PROJECT_ID-non-prod.json per impostazione predefinita.

Per gli ambienti di produzione, il nome della chiave dell'account di servizio generato con create-service-account in Configurazione del runtime ibrido - Passaggio 4: crea gli account di servizio e le credenziali.

Puoi vedere l'elenco dei file degli account di servizio in Directory service-accounts/.

I nomi predefiniti degli account di servizio dell'ambiente di produzione sono:

  • Cassandra: GCP_PROJECT_ID-apigee-cassandra.json
  • Registratore: GCP_PROJECT_ID-apigee-logger.json
  • MART: GCP_PROJECT_ID-apigee-mart.json
  • Agente di connessione: GCP_PROJECT_ID-apigee-mart.json
  • Metriche: GCP_PROJECT_ID-apigee-metrics.json
  • Ambiente di runtime Apigee: GCP_PROJECT_ID-
  • Sincronizzatore: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Watcher: GCP_PROJECT_ID-apigee-watcher.json

Riepilogo

Il file di configurazione indica a Kubernetes come eseguire il deployment componenti in un cluster. Successivamente, abilita l'accesso per la sincronizzazione in modo che I piani di runtime e di gestione Apigee saranno in grado di comunicare.

1 2 3 4 5 6 (AVANTI) Passaggio 7: attiva l'accesso al sincronizzatore 8 9 10