本頁提供 YAML 設定範例,說明如何在 Kubernetes 上部署及管理 AlloyDB Omni。
DBCluster Core 和 OS 設定
瞭解基本叢集設定和自訂作業系統設定。
Minimal DBCluster
部署 AlloyDB Omni DBCluster 的基本設定。
查看最少的 DBCluster YAML 設定
# This is a minimal DBCluster spec. See v1_dbcluster_full.yaml for more configurations. apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
完整 DBCluster
顯示可用設定的完整設定。
查看完整的 DBCluster YAML 設定
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: allowExternalIncomingTraffic: true availability: healthcheckPeriodSeconds: 30 # default is 30secs, new feature in 1.2.0. minimum value is 1 and the maximum value is 86400 autoFailoverTriggerThreshold: 3 # after which failover is triggered autoHealTriggerThreshold: 3 enableAutoFailover: true enableAutoHeal: true enableStandbyAsReadReplica: true numberOfStandbys: 1 controlPlaneAgentsVersion: 1.6.0 databaseVersion: "18.1.0" databaseImageOSType: UBI9 isDeleted: false mode: "" primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample allowExternalIncomingTrafficToInstance: false auditLogTarget: {} dbLoadBalancerOptions: annotations: networking.gke.io/load-balancer-type: "internal" lb.company.com/enabled: "true" gcp: {} features: columnarSpillToDisk: cacheSize: 50Gi ultraFastCache: cacheSize: 100Gi # either generic volume or local volume genericVolume: storageClass: "local-storage" # localVolume: # path: "/mnt/disks/raid/0" # nodeAffinity: # required: # nodeSelectorTerms: # - matchExpressions: # - key: "cloud.google.com/gke-local-nvme-ssd" # operator: "In" # values: # - "true" googleMLExtension: config: vertexAIKeyRef: vertex-ai-key-alloydb # secret used to enable AlloyDB Omni to access AlloyDB AI features vertexAIRegion: us-central1 # default resources: cpu: "12" disks: - name: DataDisk size: 1000Gi storageClass: px-ceph - name: LogDisk size: 10Gi storageClass: px-ceph - name: ObsDisk size: 4Gi storageClass: px-ceph - name: BackupDisk size: 10Gi storageClass: px-ceph memory: 100Gi walArchiveSetting: location: wal/log # enable WAL archiving and archive logs to /archive/wal/log sidecarRef: name: cv-sidecar-config # provide a sidecar config that is referenced here parameters: google_columnar_engine.enabled: "on" google_columnar_engine.memory_size_in_mb: "256" google_storage.parallel_log_replay_enabled: 'off' google_pg_auth.enable_auth: 'false' shared_preload_libraries: "pg_cron,pg_bigm3" archive_mode: 'on' archive_timeout: '300' work_mem: '4MB' # operator default values # shared_preload_libraries='g_stats,google_columnar_engine,google_db_advisor,google_job_scheduler,pg_stat_statements,pglogical,pgaudit' log_rotation_age: "2" # rotate every two minutes. Set to "0" to disable age-based rotation. If unset, no age-based rotation log_rotation_size: "400000" # rotate every 400,000kb. set to "0" to disable size-based rotation. If unset, rotate every 200,000kb schedulingconfig: tolerations: - effect: NoSchedule key: alloydb-node-type operator: Exists nodeaffinity: # requiredDuringSchedulingIgnoredDuringExecution: strong condition, not being able to meet this would stop pods being scheduled preferredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: alloydb-node-type operator: In values: - database podAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - store topologyKey: "kubernetes.io/hostname" podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: "topology.kubernetes.io/zone" services: Logging: true Monitoring: true --- apiVersion: v1 kind: PersistentVolume metadata: name: "example-local-pv" spec: capacity: storage: 375Gi accessModes: - "ReadWriteOnce" persistentVolumeReclaimPolicy: "Retain" storageClassName: "local-storage" local: path: "/mnt/disks/raid/0" nodeAffinity: required: nodeSelectorTerms: - matchExpressions: # following example key applies to an operator that is deployed on # Google Cloud and uses the local ssd option - key: "cloud.google.com/gke-local-nvme-ssd" operator: "In" values: - "true" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBInstance metadata: name: dbcluster-sample-rp-1 spec: instanceType: ReadPool dbcParent: name: dbcluster-sample nodeCount: 2 resources: memory: 6Gi cpu: 2 disks: - name: DataDisk size: 15Gi schedulingconfig: tolerations: - key: "node-role.kubernetes.io/control-plane" operator: "Exists" effect: "NoSchedule" nodeaffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: another-node-label-key operator: In values: - another-node-label-value podAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - store topologyKey: "kubernetes.io/hostname" podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: "topology.kubernetes.io/zone"
自訂參數
設定自訂 PostgreSQL 參數。
查看自訂參數 YAML 設定
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi parameters: google_columnar_engine.enabled: "on" google_columnar_engine.memory_size_in_mb: "256"
以 Debian 為基礎的部署作業
指定 Debian OS 映像檔基礎。
查看以 Debian 為基礎的 Deployment YAML 設定
# This is a minimal DBCluster spec. See v1_dbcluster_full.yaml for more configurations. apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" databaseImageOSType: Debian primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
以 UBI9 為基礎的部署作業
指定 Red Hat Universal Base Image 9 (UBI 9) 做為基礎。
查看以 UBI9 為基礎的 Deployment YAML 設定
# This is a minimal DBCluster spec. See v1_dbcluster_full.yaml for more configurations. apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" databaseImageOSType: UBI9 primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
Pod 排程選項
設定節點相依性、容許度和排程行為。
查看 Pod 排程選項 YAML 設定
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" availability: numberOfStandbys: 1 enableStandbyAsReadReplica: true primarySpec: schedulingconfig: topologySpreadConstraints: - maxSkew: 1 topologyKey: "topology.kubernetes.io/zone" whenUnsatisfiable: DoNotSchedule adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
高可用性和擴充性
分配流量,確保零或最短停機時間。
高可用性 DBCluster
設定多個副本,確保高可用性。
查看 HA DBCluster YAML 設定
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" availability: numberOfStandbys: 1 enableStandbyAsReadReplica: true primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
使用負載平衡器的 DBCluster
使用服務負載平衡公開讀取/寫入端點。
查看具有負載平衡器 YAML 設定的 DBCluster
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi dbLoadBalancerOptions: annotations: # Creates internal LoadBalancer in GKE. networking.gke.io/load-balancer-type: "internal" allowExternalIncomingTraffic: true
讀取集區執行個體
新增唯讀集區執行個體,以調度讀取作業資源。
查看讀取集區執行個體 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBInstance metadata: name: dbcluster-sample-rp-1 spec: instanceType: ReadPool dbcParent: name: dbcluster-sample nodeCount: 2 resources: memory: 6Gi cpu: 2 disks: - name: DataDisk size: 15Gi schedulingconfig: tolerations: - key: "node-role.kubernetes.io/control-plane" operator: "Exists" effect: "NoSchedule" nodeaffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: another-node-label-key operator: In values: - another-node-label-value podAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - store topologyKey: "kubernetes.io/hostname" podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 podAffinityTerm: labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: "topology.kubernetes.io/zone"
安全性和密鑰管理
保護金鑰、憑證和叢集憑證。
憑證核發機構
設定自訂 TLS 憑證核發者。
查看憑證簽發機構的 YAML 設定
# This is a minimal DBCluster spec. See v1_dbcluster_full.yaml for more configurations. apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: tls: dataPlaneCertIssuer: name: data-plane-issuer kind: ClusterIssuer controlPlaneAgentsCertIssuer: name: control-plane-issuer kind: ClusterIssuer adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
Vault 整合
使用 HashiCorp Vault 擷取及保護密鑰。
查看 Vault Integration YAML 設定
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: # dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 dbcluster-sample: "ZGhhcm1hbGluZ2FtCg==" --- apiVersion: v1 kind: Secret metadata: name: alloydbadmin-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # dbcluster-sample: "ZGhhcm1hbGluZ2FtCg==" # dbcluster-sample: "YXJhdmluZGFuCg==" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" # availability: # numberOfStandbys: 1 # enableStandbyAsReadReplica: true primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample agentPassword: passwordRef: name: alloydbadmin-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
主要/待命複製
在上游 (主要) 和下游 (待命) 資料庫之間設定複製作業。
上游 (主要) 設定
設定主要節點,發布變更。
查看上游 (主要) 設定 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Replication metadata: name: replication-upstream-sample spec: dbcluster: name: dbcluster-sample upstream: {}
下游 (待機) 設定
設定要從主要節點同步處理的複寫目標。
查看下游 (待命) 設定 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Replication metadata: name: replication-downstream-sample spec: dbcluster: name: dbcluster-sample downstream: host: "10.10.10.10" port: 5432 username: alloydbreplica password: name: "ha-rep-pw-dbcluster-sample" replicationSlotName: "dbcluster_sample_replication_upstream_sample" control: setup # to promote downstream, change control to promote
備份、還原及複製
管理災難復原、隨需資料副本和排程。
排定的備份方案
排定完整備份和增量備份時程。
查看排定備份方案的 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: BackupPlan metadata: name: backupplan1 spec: dbclusterRef: dbcluster-sample backupRetainDays: 14 paused: false backupSchedules: # Full backup at 00:00 on every Sunday. full: "0 0 * * 0" # Incremental backup at 21:00 every day. incremental: "0 21 * * *"
備份至 Google Cloud Storage (GCS)
將備份安全地儲存在 Google Cloud Storage 值區中。
查看備份至 Google Cloud Storage (GCS) 的 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: BackupPlan metadata: name: backupplan1 namespace: db spec: dbclusterRef: dbcluster-sample backupRetainDays: 14 paused: false backupSchedules: # Full backup at 00:00 on every Sunday. full: "0 0 * * 0" # Incremental backup at 21:00 every day. incremental: "0 21 * * *" backupLocation: type: GCS gcsOptions: bucket: dbcluster-sample-backups key: /backup # You can optionally provide a key for accessing your GCS bucket. # The key.json needs to be base64 encoded and stored in the given secret under data[key.json]. # Or comment out below, which will then use the GKE cluster service account # to access the GCS bucket (you need to make sure the service account has # the right permission to R/W the GCS bucket). secretRef: name: gcs-key namespace: db --- apiVersion: v1 kind: Secret metadata: name: gcs-key namespace: db data: key.json: | <paste your base64 encoded GCS key json here with 4 spaces for indentation>
備份至 Amazon S3
將備份儲存在與 Amazon S3 相容的儲存桶中。
查看備份至 Amazon S3 的 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: BackupPlan metadata: name: backupplan1 namespace: db spec: dbclusterRef: dbcluster-sample backupRetainDays: 14 paused: false backupSchedules: # Full backup at 00:00 on every Sunday. full: "0 0 * * 0" # Incremental backup at 21:00 every day. incremental: "0 21 * * *" backupLocation: type: S3 s3Options: bucket: dbcluster-sample-backups-s3 key: /backup region: "us-east-1" endpoint: "https://s3.storage.com" secretRef: name: s3-access-secret namespace: db # You can optionally provide the cert to be used to connect to the S3 with TLS. # If not provided, TLS verification will be skipped. certRef: name: server-tls namespace: server-ns --- apiVersion: v1 kind: Secret metadata: namespace: db name: "s3-access-secret" type: Opaque data: # Update the following with your S3 access keys. access-key-id: "Q2hhbmdlTWUxMjM=" # access-key-id is ChangeMe123 access-key: "Q2hhbmdlTWUxMjM=" # access-key is ChangeMe123
手動備份
建立單一手動備份。
查看「按照需求執行的手動備份」YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Backup metadata: name: backup1 spec: dbclusterRef: dbcluster-sample backupPlanRef: backupplan1 manual: true physicalBackupSpec: backupType: full
從備份還原
從儲存的備份還原或建立叢集。
查看「從備份還原」YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Restore metadata: name: restore1 spec: sourceDBCluster: dbcluster-sample backup: backup1
資料庫複製
複製標準 DBCluster。
查看資料庫複製作業的 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Restore metadata: name: clone1 spec: sourceDBCluster: dbcluster-sample pointInTime: "2024-02-23T19:59:43Z" clonedDBClusterConfig: dbclusterName: new-dbcluster-sample
作業和容錯移轉
執行安全的拓撲轉換。
受控切換
透過計畫性切換升級次要副本,不會遺失任何資料。
查看受控切換 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Switchover metadata: name: switchover-sample spec: dbclusterRef: dbcluster-sample
災難復原容錯移轉
處理未規劃的災難復原或容錯移轉情境。
查看災難復原容錯移轉 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Failover metadata: name: failover-sample spec: dbclusterRef: dbcluster-sample
連線集區 (PgBouncer)
使用 PgBouncer 設定資料庫 Proxy 層。
基本 PgBouncer
部署標準 PgBouncer 隨附項目。
查看基本的 PgBouncer YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: PgBouncer metadata: name: mypgbouncer spec: allowSuperUserAccess: true dbclusterRef: dbcluster-sample replicaCount: 1 parameters: pool_mode: transaction ignore_startup_parameters: extra_float_digits default_pool_size: "15" max_client_conn: "800" max_db_connections: "160" podSpec: resources: memory: 1Gi cpu: 1 image: "gcr.io/alloydb-omni-staging/g-pgbouncer:1.4.0" serviceOptions: type: "ClusterIP"
完整 PgBouncer
設定進階微調、自訂授權和連線集區覆寫。
查看完整的 PgBouncer YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: PgBouncer metadata: name: mypgbouncer spec: allowSuperUserAccess: true dbclusterRef: dbcluster-sample replicaCount: 2 parameters: pool_mode: transaction ignore_startup_parameters: extra_float_digits default_pool_size: "15" max_client_conn: "800" max_db_connections: "160" podSpec: resources: memory: 1Gi cpu: 1 image: "gcr.io/alloydb-omni-staging/g-pgbouncer:1.4.0" schedulingconfig: nodeaffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: nodetype operator: In values: - pgbouncer serviceOptions: type: "LoadBalancer" loadBalancerSourceRanges: - "11.0.0.0/8" annotations: networking.gke.io/load-balancer-type: "internal"
整合式服務和 Sidecar
透過機器學習、可觀測性和自訂代理程式 Sidecar,提升資料庫功能。
具有 ML 代理程式的 DBCluster
整合本機機器學習或 Vertex AI 代理伺服器 Sidecar。
查看具有 ML 代理程式 YAML 設定的 DBCluster
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: v1 kind: Secret metadata: name: vertex-ai-key-alloydb type: Opaque data: private-key.json: "" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: features: googleMLExtension: enabled: true config: vertexAIKeyRef: vertex-ai-key-alloydb vertexAIRegion: us-central1 adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi
可觀測性設定
設定叢集指標,包括自訂 SQL 查詢,以收集使用者定義的資料庫和應用程式專屬指標。
查看觀測能力設定 YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: ObservabilityConfig metadata: name: my-custom-metrics spec: dbClusterRefs: - dbcluster-sample customMetrics: resourceLimits: workMemory: "4MB" maxParallelWorkers: 0 #limits to 1 CPU core definitions: - metricGroup: querygroup_postgres database: "postgres" query: | SELECT datname, pg_database_size(datname) as db_size_bytes, (SELECT count(*) FROM pg_stat_activity WHERE datname = d.datname) as active_connections FROM pg_database d WHERE datname = 'postgres' metrics: - name: datname desc: "Database name" usage: label - name: db_size_bytes desc: "Size of the current database in bytes" usage: gauge - name: active_connections desc: "Number of active connections to the database" usage: gauge - metricGroup: querygroup_alloydbadmin database: "alloydbadmin" query: | SELECT count(*) as healthcheck_count FROM healthcheck metrics: - name: healthcheck_count desc: "Number of rows in healthcheck table" usage: gauge
自訂補充資訊
將標準支援服務的 Sidecar 注入叢集 Pod。
查看自訂 Sidecar YAML 設定
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Sidecar metadata: name: sidecar-sample spec: sidecars: - image: busybox name: sidecar-sample volumeMounts: - name: obsdisk mountPath: /logs command: ["/bin/sh"] args: - -c - | while [ true ] do date set -x ls -lh /logs/diagnostic set +x done
具有自訂 Sidecar 的 DBCluster
設定包含標準支援 Sidecar 的基本 DBCluster。
查看具有自訂 Sidecar YAML 設定的 DBCluster
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi sidecarRef: name: sidecar-sample
Commvault Backup Sidecar
將 Commvault 代理程式設定指定為輔助補充資訊。
查看 Commvault Backup Sidecar YAML 設定
# Source: commvault/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: cvconfigmap data: CV_MASVCNAME: commvault-prod CV_CSHOSTNAME: "tipcs.idcprodcert.loc" CV_CSIPADDR: "123.123.123.123" CV_CSCLIENTNAME: "tipcs" CV_CLIENT_ROLE: "postgres" --- apiVersion: v1 kind: Secret metadata: name: commcell-secret data: CV_COMMCELL_USER: Y3ZhZG1pbgo= # commcell username is cvadmin CV_COMMCELL_PWD: Y3ZwYXNzd29yZAo= # commcell password is cvpassword --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: Sidecar metadata: name: cv-sidecar-config annotations: alloydbomni.dbadmin.goog/sidecar: commvault spec: sidecars: - name: "commvault-pgsqlagent" image: "commvault/accessnode:11.32.42" lifecycle: preStop: exec: command: [ "/bin/sh", "-c" , "cp /opt/commvault/Base/FwConfig* /etc/CommVaultRegistry/Galaxy/FwConfig/" ] envFrom: - configMapRef: name: cvconfigmap volumeMounts: - name: logdisk mountPath: /archive/ - name: tmp-socket mountPath: /tmp - name: commvault-env-store2 mountPath: /opt/cvdocker_env readOnly: true - name: backupdisk mountPath: /etc/CommVaultRegistry subPath: Registry - name: backupdisk mountPath: /var/log/commvault/Log_Files subPath: Log_Files - name: backupdisk mountPath: /opt/commvault/MediaAgent/IndexCache subPath: IndexCache - name: backupdisk mountPath: /opt/commvault/iDataAgent/jobResults subPath: jobResults - name: backupdisk mountPath: /opt/commvault/Base/certificates subPath: certificates - name: datadisk mountPath: /mnt/disks/pgsql - name: commcell-secret mountPath: /opt/commcell_secret ports: - name: cvdport containerPort: 8400 securityContext: runAsUser: 0 additionalVolumes: - name: commcell-secret secret: secretName: commcell-secret - name: commvault-env-store2 configMap: name: cvconfigmap
搭配 Commvault Sidecar 的 DBCluster
設定 DBCluster,指定 Commvault 代理程式邊車容器。
查看 DBCluster,瞭解 Commvault Sidecar YAML 設定
apiVersion: v1 kind: Secret metadata: name: db-pw-dbcluster-sample type: Opaque data: dbcluster-sample: "Q2hhbmdlTWUxMjM=" # Password is ChangeMe123 --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: dbcluster-sample spec: databaseVersion: "18.1.0" primarySpec: adminUser: passwordRef: name: db-pw-dbcluster-sample resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi - name: LogDisk size: 10Gi walArchiveSetting: location: wal/log # enable WAL archiving and archive logs to /archive/wal/log sidecarRef: name: cv-sidecar-config