Langkah 6: Konfigurasi cluster

Menentukan penggantian konfigurasi

Penginstal Apigee hybrid menggunakan setelan default untuk banyak setelan; tetapi, ada beberapa setelan yang tidak memiliki setelan default. Anda harus memberikan nilai untuk setelan ini, seperti yang dijelaskan di bawah.

Sebelum memulai

Sebaiknya Anda meninjau skenario berikut untuk menentukan apakah Anda ingin mengonfigurasi cluster untuk skenario tersebut. Konfigurasi ini bersifat opsional.

Mengonfigurasi cluster

Secara umum, penggantian konfigurasi ditulis dalam file bernama overrides.yaml di direktori $HYBRID_FILES/overrides Anda.

  1. Buat file baru bernama overrides.yaml di direktori $HYBRID_FILES/overrides Anda. Contoh:
    vi $HYBRID_FILES/overrides/overrides.yaml

    overrides.yaml menyediakan konfigurasi untuk penginstalan Apigee hybrid unik Anda. File penggantian pada langkah ini memberikan konfigurasi dasar untuk penginstalan runtime campuran dengan footprint kecil, yang cocok untuk penginstalan pertama Anda.

  2. Di overrides.yaml, tambahkan nilai properti yang diperlukan, yang ditunjukkan di bawah. Deskripsi mendetail tentang setiap properti juga diberikan di bawah ini.

    Jika Anda menginstal Apigee hybrid di GKE dan berencana menggunakan Workload Identity untuk mengautentikasi komponen hybrid, pilih tab GKE - Workload Identity untuk mengonfigurasi file overrides.yaml.

    Untuk semua penginstalan lainnya, pilih tab untuk lingkungan non-produksi, Non-prod, atau produksi, Prod, bergantung pada pilihan Anda di Langkah 4: Membuat akun layanan dan kredensial.

    Untuk penginstalan di lingkungan produksi, lihat persyaratan penyimpanan untuk database Cassandra di Mengonfigurasi Cassandra untuk produksi.

    GKE - Workload Identity

    Pastikan file overrides.yaml memiliki struktur dan sintaksis berikut. Nilai dalam red, bold italics adalah nilai properti yang harus Anda berikan. Hal ini dijelaskan dalam tabel di bawah.

    Jika menginstal Apigee hybrid di GKE, Anda memiliki alternatif untuk mengautentikasi dan membuat permintaan ke Google API, yaitu Workload Identity. Untuk ringkasan Workload Identity, lihat:

    Untuk menggunakan Workload Identity dengan Apigee hybrid di GKE, gunakan template ini, lalu ikuti langkah-langkah di Langkah 8: Instal runtime hybrid untuk membuat akun layanan Kubernetes dan mengaitkannya dengan akun layanan Google yang Anda buat di Langkah 4: Membuat akun layanan dan kredensial.

    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

    Pastikan file overrides.yaml memiliki struktur dan sintaksis berikut. Nilai dalam red, bold italics adalah nilai properti yang harus Anda berikan. Hal ini dijelaskan dalam tabel di bawah.

    Ada perbedaan antara berbagai platform untuk region project Google Cloud dan region cluster Kubernetes. Pilih platform tempat Anda menginstal 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
    
    

    Prod

    Pastikan file overrides.yaml memiliki struktur dan sintaksis berikut. Nilai dalam red, bold italics adalah nilai properti yang harus Anda berikan. Hal ini dijelaskan dalam tabel di bawah.

    Ada perbedaan antara berbagai platform untuk region project Google Cloud dan region cluster Kubernetes. Pilih platform tempat Anda menginstal 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.
      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"
    

    Contoh

    Contoh berikut menunjukkan file penggantian yang telah selesai dengan contoh nilai properti yang ditambahkan:

    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. Setelah selesai, simpan file.

Tabel berikut menjelaskan setiap nilai properti yang harus Anda berikan dalam file penggantian. Untuk informasi selengkapnya, lihat Referensi properti konfigurasi.

Variabel Deskripsi
ANALYTICS_REGION Di GKE, Anda harus menetapkan nilai ini ke region yang sama dengan tempat cluster berjalan. Di semua platform lainnya, pilih region analisis terdekat dengan cluster Anda yang memiliki dukungan Analytics (lihat tabel di Bagian 1, Langkah 2: Membuat organisasi.

Ini adalah nilai yang Anda tetapkan ke variabel lingkungan ANALYTICS_REGION sebelumnya.

GCP_PROJECT_ID Mengidentifikasi project Google Cloud tempat apigee-logger dan apigee-metrics mendorong data mereka. Ini adalah nilai yang ditetapkan ke variabel lingkungan PROJECT_ID.
CLUSTER_NAME Nama cluster Kubernetes Anda. Ini adalah nilai yang ditetapkan ke variabel lingkungan CLUSTER_NAME.
CLUSTER_LOCATION Region tempat cluster berjalan. Ini adalah region tempat Anda membuat cluster di Langkah 1: Membuat cluster.

Ini adalah nilai yang Anda tetapkan ke variabel lingkungan CLUSTER_LOCATION sebelumnya.

ORG_NAME ID organisasi Apigee Hybrid Anda. Ini adalah nilai yang ditetapkan ke variabel lingkungan ORG_NAME.
UNIQUE_INSTANCE_IDENTIFIER

String unik untuk mengidentifikasi instance ini. Ini dapat berupa kombinasi huruf dan angka dengan panjang maksimal 63 karakter.

Anda dapat membuat beberapa organisasi di cluster yang sama, tetapi instanceID harus sama untuk semua organisasi di cluster Kubernetes yang sama.

ENVIRONMENT_GROUP_NAME Nama grup lingkungan tempat lingkungan Anda ditetapkan. Ini adalah grup yang Anda buat di Penyiapan project dan organisasi - Langkah 3: Membuat grup lingkungan. Ini adalah nilai yang ditetapkan ke variabel lingkungan ENV_GROUP.
CERT_NAME
KEY_NAME
Masukkan nama file kunci dan sertifikat TLS yang ditandatangani sendiri yang Anda buat sebelumnya di Langkah 5: Membuat sertifikat TLS. File ini harus berada di direktori base_directory/hybrid-files/certs. Contoh:
sslCertPath: ./certs/keystore.pem
sslKeyPath: ./certs/keystore.key
INGRESS_NAME Nama gateway ingress Apigee untuk deployment Anda. Nama ini dapat berupa nama apa pun yang memenuhi persyaratan berikut:
  • Memiliki panjang maksimum 17 karakter
  • Hanya berisi karakter alfanumerik huruf kecil, '-', atau '.'
  • Dimulai dengan karakter alfanumerik
  • Diakhiri dengan karakter alfanumerik

Lihat ingressGateways[].name dalam referensi Properti konfigurasi

SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE (Opsional). Ini adalah key-value pair yang menyediakan anotasi untuk layanan ingress default Anda. Anotasi digunakan oleh platform cloud Anda untuk membantu mengonfigurasi penginstalan campuran, misalnya menetapkan jenis load balancer ke internal atau eksternal.

Anotasi bervariasi dari satu platform ke platform yang lain. Lihat dokumentasi platform Anda untuk mengetahui anotasi yang diperlukan dan disarankan.

Beri komentar atau hapus bagian ini jika Anda tidak menggunakannya.

SVC_LOAD_BALANCER_IP (Opsional). Alamat IP yang telah Anda cadangkan untuk load balancer. Pada platform yang mendukung penentuan alamat IP load balancer, load balancer akan dibuat dengan alamat IP ini. Pada platform yang tidak mengizinkan Anda menentukan IP load balancer, properti ini akan diabaikan.

Beri komentar atau hapus bagian ini jika Anda tidak menggunakannya.

ENVIRONMENT_NAME Gunakan nama yang sama dengan yang Anda gunakan saat membuat lingkungan di UI, seperti yang dijelaskan dalam Penyiapan project dan organisasi - Langkah 3: Membuat grup lingkungan.
*_SERVICE_ACCOUNT_FILEPATH Jalur dan nama file akun file JSON akun layanan di direktori service-accounts/ Anda. Nama harus menyertakan jalur ke file akun layanan. Ini dapat berupa jalur lengkap, atau jalur yang relatif terhadap direktori hybrid-files/ Anda. Jika menyertakan jalur relatif, Anda harus memanggil apigeectl, perintah untuk menerapkan konfigurasi ini, dari direktori hybrid-files/.

Untuk lingkungan non-produksi, nama satu akun layanan adalah GCP_PROJECT_ID-non-prod.json secara default.

Untuk lingkungan produksi, nama file kunci akun layanan yang Anda buat dengan alat create-service-account di Penyiapan runtime campuran - Langkah 4: Membuat akun layanan dan kredensial.

Anda dapat melihat daftar file akun layanan di direktori service-accounts/.

Nama default akun layanan lingkungan produksi adalah:

  • Cassandra: GCP_PROJECT_ID-apigee-cassandra.json
  • Logger: GCP_PROJECT_ID-apigee-logger.json
  • MART: GCP_PROJECT_ID-apigee-mart.json
  • Agen Connect: GCP_PROJECT_ID-apigee-mart.json
  • Metrik: GCP_PROJECT_ID-apigee-metrics.json
  • Runtime Apigee: GCP_PROJECT_ID-
  • Sinkronisasi: GCP_PROJECT_ID-apigee-synchronizer.json
  • UDCA: GCP_PROJECT_ID-apigee-udca.json
  • Pelihat: GCP_PROJECT_ID-apigee-watcher.json

Ringkasan

File konfigurasi memberi tahu Kubernetes cara men-deploy komponen campuran ke cluster. Selanjutnya, Anda akan mengaktifkan akses sinkronisasi sehingga runtime dan platform pengelolaan Apigee dapat berkomunikasi.

1 2 3 4 5 6 (BERIKUTNYA) Langkah 7: Aktifkan akses Synchronizer 8 9 10