Halaman ini memberikan ringkasan operator AlloyDB Omni Kubernetes, dengan petunjuk untuk menggunakannya guna men-deploy AlloyDB Omni ke cluster Kubernetes. Halaman ini mengasumsikan Anda telah memiliki pengetahuan dasar tentang operasi Kubernetes.
Ringkasan
Untuk men-deploy AlloyDB Omni ke cluster Kubernetes, instal operator AlloyDB Omni, ekstensi ke Kubernetes API yang disediakan oleh Google.
Anda mengonfigurasi dan mengontrol cluster database AlloyDB Omni berbasis Kubernetes dengan menyandingkan file manifes deklaratif dengan utilitas kubectl, seperti deployment berbasis Kubernetes lainnya.
Kompatibilitas operator AlloyDB Omni 1.1.0
Operator AlloyDB Omni versi 1.1.0 tidak kompatibel dengan AlloyDB Omni versi 15.5.3 dan 15.5.4. Jika Anda menggunakan salah satu versi AlloyDB Omni ini, Anda mungkin menerima error yang serupa 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:
- Cluster Kubernetes, yang menjalankan software berikut:
- Kubernetes versi 1.21 atau yang lebih baru.
- Layanan
cert-manager.
- Utilitas
kubectl. - Pengelola paket
helm. - Google Cloud CLI. Setelah menginstal gcloud CLI, Anda harus mengautentikasi akun Google Cloud dengan menjalankan
gcloud auth login.
Setiap node di cluster Kubernetes harus memiliki hal berikut:
- Minimal dua CPU x86 atau AMD64.
- Minimum RAM 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:
Note: AlloyDB Omni operator Helm charts are no longer available in
Cloud Storage. You must download them from the OCI registry.
Mengautentikasi Docker dan Helm:
gcloud auth configure-docker gcr.iogcloud auth print-access-token | helm registry login -u oauth2accesstoken --password-stdin gcr.ioInstal operator AlloyDB Omni dari registry OCI:
helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \ --version 1.7.0 \ --create-namespace \ --namespace alloydb-omni-system \ --atomic \ --timeout 5mPenginstalan yang berhasil akan menampilkan output berikut:
NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 1 TEST SUITE: None
Mengonfigurasi penyimpanan yang terhubung GDC
Untuk menginstal operator AlloyDB Omni di GDC yang terhubung, Anda harus mengikuti langkah-langkah tambahan untuk mengonfigurasi penyimpanan karena cluster yang terhubung ke GDC tidak menetapkan class penyimpanan default. Anda harus menyetel class penyimpanan default sebelum membuat cluster database AlloyDB Omni.
Untuk mempelajari cara menetapkan Symcloud Storage sebagai kelas penyimpanan default, lihat Menetapkan Symcloud Storage sebagai kelas penyimpanan default.
Untuk mengetahui informasi selengkapnya tentang cara mengubah default untuk semua kelas penyimpanan lainnya, lihat Mengubah StorageClass default.
Langkah-langkah rekonsiliasi Red Hat OpenShift
Jika Anda menggunakan Red Hat OpenShift 4.12 atau yang lebih baru, Anda harus menyelesaikan langkah-langkah berikut setelah Anda menginstal operator AlloyDB Omni dan sebelum Anda membuat cluster database AlloyDB Omni di cluster Kubernetes. Jika tidak, Anda dapat melewati langkah-langkah ini.
Tambahkan izin untuk memperbarui finalizer instance AlloyDB Omni dengan mengedit peran cluster
system:controller:statefulset-controllersebagai berikut:kubectl edit clusterrole system:controller:statefulset-controllerDi editor teks, tambahkan berikut ini ke akhir peran cluster:
- apiGroups: - alloydbomni.internal.dbadmin.goog resources: - instances/finalizers verbs: - update - apiGroups: - alloydbomni.internal.dbadmin.goog resources: - backuprepositories/finalizers verbs: - updatePengontrol StatefulSet harus memiliki izin tambahan untuk mengupdate finalizer instance yang ditambahkan ke peran cluster karena Red Hat OpenShift mengaktifkan OwnerReferencesPermissionEnforcement. Tanpa izin untuk memperbarui finalizer instance, pengontrol StatefulSet gagal membuat Persistent Volume Claim (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 onTambahkan izin untuk memperbarui finalizer DBInstance AlloyDB Omni dengan mengedit peran cluster
fleet-manager-role:kubectl edit clusterrole fleet-manager-roleDi editor teks, tambahkan berikut ini ke akhir peran cluster:
- apiGroups: - alloydbomni.dbadmin.goog resources: - dbinstances/finalizers verbs: - updateTambahkan batasan konteks keamanan
anyuidke akun layanandefaultdi project Red Hat OpenShift Anda sebagai berikut:oc adm policy add-scc-to-user anyuid system:serviceaccount:OPENSHIFT_PROJECT:default
Anda harus mengizinkan akun layanan
defaultuntuk menggunakan batasan konteks keamanananyuidkarena, dalam Pod database, init container berjalan sebagai root dan container lainnya berjalan dengan ID pengguna tertentu. Tanpa izin untuk menggunakananyuid, pengontrol StatefulSet gagal membuat PVC database dengan pesan error berikut yang ditemukan di 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, 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 ini:
apiVersion: v1
kind: Secret
metadata:
name: db-pw-DB_CLUSTER_NAME
type: Opaque
data:
DB_CLUSTER_NAME: "ENCODED_PASSWORD"
---
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
spec:
databaseVersion: "18.1.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.ENCODED_PASSWORD: sandi login database untuk peran penggunapostgresdefault, yang dienkode sebagai string base64—misalnya,Q2hhbmdlTWUxMjM=untukChangeMe123.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 setelan ini ke 8 gigabyte per CPU. Misalnya, jika Anda menetapkancpuke2sebelumnya dalam manifes ini, sebaiknya tetapkanmemoryke16Gi.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 sudah diinstal sebelumnya.
Untuk mengetahui informasi selengkapnya tentang manifes Kubernetes dan cara menerapkannya, lihat Mengelola resource.
Menskalakan cluster database
Untuk menskalakan resource komputasi untuk cluster database Anda, perbarui nilai cpu dan memory dalam manifes db-cluster.yaml Anda dan terapkan perubahan. Proses penskalaan bergantung pada apakah Anda memilih operasi penskalaan reguler atau operasi penskalaan dengan periode nonaktif rendah.
Penskalaan reguler
Saat Anda memperbarui spesifikasi penskalaan dan menerapkan manifes tanpa konfigurasi lebih lanjut, pod database akan dimulai ulang secara instan. Hal ini menyebabkan periode nonaktif singkat di seluruh instance primer dan standby saat alokasi resource baru diterapkan.
Penskalaan dengan periode nonaktif rendah
Untuk cluster ketersediaan tinggi (HA) dengan minimal satu standby, Anda dapat meminimalkan waktu non-operasional selama penskalaan menggunakan strategi penyiapan dan pengalihan Pemeliharaan dengan Waktu Non-Operasional Rendah (LDTM). Strategi ini menerapkan perubahan penskalaan ke instance standby terlebih dahulu, melakukan pengalihan yang cepat, lalu menerapkan perubahan ke instance utama asli. Anda dapat meningkatkan atau menurunkan skala dengan strategi LDTM.
Untuk mengaktifkan dan memantau penskalaan dengan waktu nonaktif singkat, ikuti langkah-langkah berikut:
Aktifkan penskalaan dengan periode nonaktif rendah. Tambahkan anotasi
enableLDTMke cluster database Anda:kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME dbcluster.dbadmin.goog/enableLDTM=true
Ganti
DB_CLUSTER_NAMEdengan nama cluster database Anda.Terapkan spesifikasi penskalaan yang telah diperbarui. Perbarui nilai
cpudanmemorydi bawahprimarySpec.resourcesdalam manifes Anda, lalu terapkan perubahan:kubectl apply -f db-cluster.yaml
Pantau proses penskalaan. Periksa kondisi status
LDTMScalingInProgressuntuk memantau operasi:kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "LDTMScalingInProgress")'
Ganti
DB_CLUSTER_NAMEdengan nama cluster database Anda.Saat proses sedang berlangsung, statusnya adalah
true. Setelah penskalaan selesai, status kondisi akan berubah menjadifalse.
Batasan
- Penskalaan LDTM hanya didukung untuk cluster HA dengan setidaknya satu standby.
- Anda tidak dapat melakukan dua operasi LDTM secara bersamaan. Misalnya, Anda dapat menggunakan LDTM untuk menskalakan cluster database atau melakukan upgrade versi minor, tetapi tidak keduanya secara bersamaan.
- Anda harus melakukan rollback secara manual setelah operasi penskalaan LDTM gagal.
Langkah berikutnya
- Menjalankan dan menghubungkan ke AlloyDB Omni
- Mengelola AlloyDB Omni
- Mengelola ketersediaan tinggi di Kubernetes
- Membuat cluster yang mendukung TDE