Menginstal AlloyDB Omni di Kubernetes

Halaman ini memberikan ringkasan tentang operator Kubernetes AlloyDB Omni, dengan petunjuk cara menggunakannya untuk men-deploy AlloyDB Omni ke cluster Kubernetes. Halaman ini mengasumsikan Anda telah memiliki pengetahuan dasar tentang operasi Kubernetes.

Untuk petunjuk cara menginstal AlloyDB Omni ke lingkungan Linux standar, lihat Menginstal AlloyDB Omni.

Ringkasan

Untuk men-deploy AlloyDB Omni ke cluster Kubernetes, instal operator AlloyDB Omni, ekstensi untuk Kubernetes API yang disediakan oleh Google.

Anda mengonfigurasi dan mengontrol cluster database AlloyDB Omni berbasis Kubernetes dengan menyambungkan file manifes deklaratif dengan utilitas kubectl, seperti deployment berbasis Kubernetes lainnya. Anda tidak menggunakan CLI AlloyDB Omni, yang ditujukan untuk deployment ke setiap mesin Linux, bukan cluster Kubernetes.

Kompatibilitas operator AlloyDB Omni 1.1.0 (dan yang lebih baru)

Operator AlloyDB Omni versi 1.1.0 tidak kompatibel dengan versi 15.5.3 dan 15.5.4 AlloyDB Omni. Jika menggunakan salah satu versi AlloyDB Omni ini, Anda mungkin menerima error yang mirip dengan berikut:

Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3

Sebelum memulai

Anda memerlukan akses ke hal berikut:

Setiap node di cluster Kubernetes harus memiliki hal berikut:

  • Minimal dua CPU x86 atau AMD64.
  • RAM minimal 8 GB.
  • Kernel Linux versi 4.18 atau yang lebih baru.
  • Grup kontrol v2 (cgroup v2) diaktifkan.

Menginstal operator AlloyDB Omni

Untuk menginstal operator AlloyDB Omni, ikuti langkah-langkah berikut:

  1. Tentukan beberapa variabel lingkungan:

    export GCS_BUCKET=alloydb-omni-operator
    export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
  2. Download operator AlloyDB Omni:

    gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
  3. Instal operator AlloyDB Omni:

    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m

    Penginstalan yang berhasil akan menampilkan output berikut:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. Bersihkan dengan menghapus file penginstalan operator AlloyDB Omni yang didownload. File ini bernama alloydbomni-operator-VERSION_NUMBER.tgz, dan berada di direktori kerja Anda saat ini.

Mengonfigurasi penyimpanan yang terhubung ke GDC

Untuk menginstal operator AlloyDB Omni di cluster yang terhubung ke GDC, Anda harus mengikuti langkah-langkah tambahan untuk mengonfigurasi penyimpanan karena cluster yang terhubung ke GDC tidak menetapkan class penyimpanan default. Anda harus menetapkan class penyimpanan default sebelum membuat cluster database AlloyDB Omni.

Untuk mempelajari cara menetapkan Penyimpanan Symcloud sebagai kelas penyimpanan default, lihat Menetapkan Penyimpanan Symcloud sebagai kelas penyimpanan default.

Untuk informasi selengkapnya tentang cara mengubah default untuk semua kelas penyimpanan lainnya, lihat Mengubah StorageClass default.

Langkah-langkah rekonsiliasi Red Hat OpenShift

Jika menggunakan Red Hat OpenShift 4.12 atau yang lebih baru, Anda harus menyelesaikan langkah-langkah berikut setelah menginstal operator AlloyDB Omni dan sebelum membuat cluster database AlloyDB Omni di cluster Kubernetes. Jika tidak, Anda dapat melewati langkah-langkah ini.

  1. Tambahkan izin untuk memperbarui finalizer instance AlloyDB Omni dengan mengedit peran cluster system:controller:statefulset-controller sebagai berikut:

    kubectl edit clusterrole system:controller:statefulset-controller
  2. Di editor teks, tambahkan baris berikut ke bagian akhir peran cluster:

    - apiGroups:
      - alloydbomni.internal.dbadmin.goog
      resources:
      - instances/finalizers
      verbs:
      - update
    - apiGroups:
      - alloydbomni.internal.dbadmin.goog
      resources:
      - backuprepositories/finalizers
      verbs:
      - update
    

    Pengontrol StatefulSet harus memiliki izin tambahan untuk mengupdate finalizer instance yang ditambahkan ke peran cluster karena Red Hat OpenShift telah mengaktifkan OwnerReferencesPermissionEnforcement. Tanpa izin untuk memperbarui finalisasi instance, pengontrol StatefulSet gagal membuat Klaim Volume Persisten (PVC) database dengan pesan error berikut yang ditemukan di peristiwa StatefulSet database:

    Warning  FailedCreate  [...] cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on
    
  3. Tambahkan batasan konteks keamanan anyuid ke akun layanan default di project Red Hat OpenShift Anda sebagai berikut:

    oc adm policy add-scc-to-user anyuid system:serviceaccount:DB_CLUSTER_NAMESPACE:default

    Anda harus mengizinkan akun layanan default untuk menggunakan batasan konteks keamanan anyuid karena, dalam Pod database, penampung init berjalan sebagai root dan penampung lainnya berjalan dengan ID pengguna tertentu. Tanpa izin untuk menggunakan anyuid, pengontrol StatefulSet gagal membuat PVC database dengan pesan error berikut yang ditemukan dalam peristiwa StatefulSet database:

    Warning  FailedCreate  [...]    unable to validate against any security context constraint
    

Membuat cluster database

Cluster database AlloyDB Omni berisi semua resource penyimpanan dan komputasi yang diperlukan untuk menjalankan server AlloyDB Omni, termasuk server utama, replika apa pun, dan semua data Anda.

Setelah menginstal operator AlloyDB Omni di cluster Kubernetes, Anda dapat membuat cluster database AlloyDB Omni di cluster Kubernetes dengan menerapkan manifes yang mirip dengan berikut:

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DB_CLUSTER_NAME
  namespace: DB_CLUSTER_NAMESPACE
type: Opaque
data:
  DB_CLUSTER_NAME: "ENCODED_PASSWORD"
---
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: DB_CLUSTER_NAME
  namespace: DB_CLUSTER_NAMESPACE
spec:
  databaseVersion: "15.7.0"
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DB_CLUSTER_NAME
    resources:
      cpu: CPU_COUNT
      memory: MEMORY_SIZE
      disks:
      - name: DataDisk
        size: DISK_SIZE

Ganti kode berikut:

  • DB_CLUSTER_NAME: nama cluster database ini—misalnya, my-db-cluster.

  • DB_CLUSTER_NAMESPACE (Opsional): namespace tempat Anda ingin membuat cluster database—misalnya, my-db-cluster-namespace.

  • ENCODED_PASSWORD: sandi login database untuk peran pengguna postgres default, yang dienkode sebagai string base64—misalnya, Q2hhbmdlTWUxMjM= untuk ChangeMe123.

  • CPU_COUNT: jumlah CPU yang tersedia untuk setiap instance database dalam cluster database ini.

  • MEMORY_SIZE: jumlah memori per instance database dari cluster database ini. Sebaiknya tetapkan ke 8 gigabyte per CPU. Misalnya, jika Anda menetapkan cpu ke 2 sebelumnya dalam manifes ini, sebaiknya tetapkan memory ke 16Gi.

  • DISK_SIZE: ukuran disk per instance database—misalnya, 10Gi.

Setelah Anda menerapkan manifes ini, cluster Kubernetes Anda akan berisi cluster database AlloyDB Omni dengan konfigurasi memori, CPU, dan penyimpanan yang ditentukan. Untuk membuat koneksi pengujian dengan cluster database baru, lihat Menghubungkan menggunakan psql yang telah diinstal sebelumnya.

Untuk informasi selengkapnya tentang manifes Kubernetes dan cara menerapkannya, lihat Mengelola resource.

Langkah selanjutnya