Menambahkan beberapa organisasi hybrid ke cluster

Topik ini membahas cara menambahkan organisasi (org) hybrid Apigee kedua ke cluster Kubernetes yang ada. Dalam konfigurasi multi-org ini, kedua organisasi menggunakan dan berbagi lingkaran Cassandra yang sama. Setiap organisasi dapat memiliki beberapa lingkungan dan grup lingkungan yang dikonfigurasi.

Batasan

Konfigurasi multi-org per cluster didukung dengan batasan berikut. Hingga batasan ini dimitigasi, kami tidak menyarankan Anda menggunakan konfigurasi ini:

  • Jika Anda akan memiliki beberapa instance hybrid Apigee, setiap instance harus memiliki cluster sendiri. Beberapa instance hybrid Apigee yang berjalan di cluster kubernetes yang sama dapat menimbulkan masalah ketidakstabilan yang berpotensi menyebabkan periode nonaktif.
  • Semua logging dari pod akan dikirim ke project Google Cloud pertama yang dikonfigurasi. Keterbatasan ini paling terlihat dalam alat Cloud Logging. Log untuk organisasi Apigee lainnya tidak akan dikirim ke project Google Cloud yang cocok. Log masih direkam di level pod dan dapat diambil dengan perintah kubectl. Namun, peristiwa ini tidak dikirim ke project Cloud yang benar melalui Cloud Logging.
  • Anda tidak dapat menghapus data organisasi dalam database Cassandra hanya untuk satu organisasi. Artinya, Anda tidak dapat menghapus organisasi secara selektif. Setiap modifikasi pada konfigurasi database akan memengaruhi semua organisasi yang di-deploy ke cluster tersebut.
  • Prosedur upgrade hybrid mengupgrade seluruh cluster sekaligus.
  • Pencadangan dan pemulihan dilakukan sebagai cluster, dan tidak dapat dilakukan untuk organisasi tertentu.
  • Fitur Pemantauan API Apigee (Linimasa, Terbaru, Investigasi) hanya berfungsi untuk organisasi pertama yang dikonfigurasi dan di-deploy. Fitur ini tidak akan berfungsi untuk organisasi lain dalam cluster multi-org.

Opsi multi-org

Bagian ini menjelaskan cara Dukungan Apigee menangani cluster multi-organisasi yang sudah ada dan rekomendasi untuk deployment mendatang:

  • Jika Anda sudah memiliki cluster Kubernetes multi-org yang di-deploy dalam konteks non-produksi dan produksi, Dukungan Apigee akan terus mendukungnya. Namun, perhatikan batasan teknis yang diuraikan di bagian berikutnya. Sebaiknya ubah deployment produksi di masa mendatang untuk menggunakan satu Apigee org per cluster.
  • Jika Anda sudah memiliki cluster multi-org dalam konteks non-produksi, Dukungan Apigee akan terus mendukungnya. Sebaiknya Anda memigrasikan cluster produksi ke konfigurasi baru yang menggunakan satu org Apigee per cluster.

Prasyarat

Sebelum melanjutkan, perhatikan hal-hal berikut:

  • Anda harus sudah memiliki hybrid org dengan satu atau beberapa lingkungan yang diinstal dan dikonfigurasi di cluster Kubernetes yang ada. Lihat petunjuk pemasangan hybrid.
  • Saat menggabungkan beberapa organisasi dalam satu cluster, semua versi hybrid harus cocok. Sebelum menambahkan organisasi kedua ke cluster, upgrade penginstalan hybrid yang sudah ada, jika perlu. Lihat Mengupgrade Apigee Hybrid.

Buat organisasi untuk ditambahkan ke cluster yang ada

Untuk membuat organisasi tambahan, ikuti langkah-langkah di Bagian 1: Penyiapan project dan organisasi.

Konfigurasi organisasi baru

Pada langkah berikut, Anda akan membuat file penggantian baru dan mengonfigurasinya untuk organisasi baru. File overrides.yaml hanya dapat mendukung informasi satu org. Oleh karena itu, Anda harus membuat file overrides.yaml baru dan menerapkannya ke cluster Kubernetes yang ada.

  1. Buat akun layanan untuk digunakan dengan organisasi baru. Lihat Membuat akun layanan.
  2. Catat file sertifikat TLS (.key dan .pem) di direktori certs Anda. Jika perlu membuatnya lagi, Anda dapat mengikuti petunjuk di Membuat sertifikat TLS.
  3. Salin overrides.yaml yang ada ke file baru untuk digunakan sebagai titik awal dalam mengonfigurasi organisasi baru Anda. Contoh: new-overrides.yaml.
  4. Edit file penggantian baru dengan konfigurasi berikut:
    org: "new-org-name"
    instanceID: "instance-id"   ## Must match the instanceID of your existing org.
    
    multiOrgCluster: true ## Enables exporting metrics for this org to the Google Cloud Project named with gcp:projectID
    
    k8sCluster:
      name: "existing-cluster-name"
      region: "existing-cluster-analytics-region"
    
    gcp:
      projectID: "new-project-id"
      name: "new-project-id"
      region: "new-project-default-location"
    
    namespace: namespace ## must be the same for both new and existing orgs
    
    virtualhosts:
      - name: new-environment-group-name
        sslCertPath: ./certs/cert-file-name # .crt or .pem
        sslKeyPath: ./certs/key-file-name # .key
    
    envs:
      - name: new-environment-name
        serviceAccountPaths:
          runtime: ./new-service-accounts-directory/new-project-id-apigee-runtime.json
          synchronizer: ./new-service-accounts-directory/new-project-id-apigee-synchronizer.json
          udca: ./new-service-accounts-directory/new-project-id-apigee-udca.json
    
    connectAgent:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json
    
    mart:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json
    
    metrics:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-metrics.json
    
    watcher:
      serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-watcher.json
    

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

    Variabel Deskripsi
    new-org-name Nama organisasi baru Anda.
    instance-id Semua organisasi dalam cluster ini harus memiliki ID instance yang sama. Oleh karena itu, entri ini harus cocok dengan entri instanceID dalam file penggantian untuk organisasi asli Anda.
    existing-cluster-name Nama cluster tempat Anda menambahkan organisasi ini. Cluster tersebut harus cocok dengan entri k8sCluster.name di file penggantian untuk cluster asli Anda.
    existing-cluster-analytics-region Region tempat cluster asli disediakan. Ini harus cocok dengan entri k8sCluster.region dalam file penggantian untuk cluster asli Anda.
    new-project-id Project ID untuk project baru Anda. Project ID dan nama organisasi sama.
    new-project-default-location Wilayah analisis yang Anda tentukan saat membuat organisasi baru. Region ini tidak harus sama dengan region untuk organisasi yang sudah ada.
    namespace Semua organisasi dalam cluster harus memiliki namespace yang sama. Pastikan untuk menggunakan namespace yang sama dengan yang digunakan untuk organisasi asli. Namespace untuk sebagian besar penginstalan adalah apigee.
    new-environment-group-name Grup lingkungan baru yang Anda buat untuk organisasi baru.
    cert-file-name dan
    key-file-name
    File kunci dan sertifikat TLS untuk cluster yang Anda periksa atau buat pada langkah 1 di bagian ini.
    new-environment-name Nama lingkungan yang Anda buat untuk organisasi baru.
    new-service-accounts-directory Direktori tempat file kunci akun layanan yang Anda buat untuk organisasi baru berada.

Terapkan konfigurasi:

Terapkan konfigurasi org baru ke cluster Anda:

  1. Lakukan penginstalan uji coba untuk memeriksa masalah apa pun:
    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml \
      --dry-run
    
  2. Jika tidak ada masalah, terapkan komponen tingkat org. Langkah ini akan menginstal layanan Cassandra (pengguna dan skema), Apigee Connect, Apigee Watcher, dan MART:
    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f NEW_OVERRIDES_FILE.yaml
    
  3. Menginstal lingkungan. Langkah ini akan menginstal komponen apigee-runtime, syncr, dan UDCA, per lingkungan:
    helm upgrade ENV_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f overrides.yaml \
      --dry-run
    
    helm upgrade ENV_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f overrides.yaml
    
  4. Terapkan perubahan load balancer. Langkah ini akan mengonfigurasi ingress untuk memproses host virtual baru untuk organisasi kedua:
    helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=NEW_ENV_GROUP_NAME \
      -f overrides.yaml \
      --dry-run
    
    helm upgrade NEW_ENV_GROUP_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=NEW_ENV_GROUP_NAME \
      -f overrides.yaml
    
  5. Aktifkan akses sinkronisasi untuk organisasi baru Anda dengan mengikuti langkah-langkah di Mengaktifkan akses Sinkronisasi.
  6. Secara default, saat pertama kali Anda menginstal runtime hybrid Apigee, komponen Telemetry akan dikonfigurasi dengan multiOrgCluster dinonaktifkan. Gunakan langkah-langkah berikut untuk mengaktifkan telemetri multi-org untuk setiap organisasi di cluster Anda:
    1. Hapus komponen Telemetry yang ada dengan perintah berikut:
      helm delete telemetry
      
    2. Tambahkan baris berikut ke file overrides.yaml untuk organisasi Anda yang sudah ada.
      multiOrgCluster: true
    3. Terapkan perubahan untuk menginstal komponen Telemetry untuk organisasi.

      Lakukan uji coba terlebih dahulu:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f FIRST_OVERRIDES_FILE.yaml \
        --dry-run
      

      Jika uji coba berhasil, terapkan perubahan dan instal komponen Telemetry:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f FIRST_OVERRIDES_FILE.yaml
      
    4. Pastikan baris berikut ada dalam file overrides.yaml untuk setiap organisasi baru.
      multiOrgCluster: true
    5. Terapkan perubahan untuk menginstal komponen Telemetry untuk setiap organisasi baru. Ulangi hal ini untuk setiap organisasi baru di cluster multi-org Anda.

      Lakukan uji coba terlebih dahulu:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f NEW_OVERRIDES_FILE.yaml \
        --dry-run
      

      Jika uji coba berhasil, terapkan perubahan dan instal komponen Telemetry:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace apigee \
        --atomic \
        -f NEW_OVERRIDES_FILE.yaml