בדף הזה מוצגות דוגמאות להגדרות YAML לפריסה ולניהול של AlloyDB Omni ב-Kubernetes.
הגדרות הליבה ומערכת ההפעלה של DBCluster
לבדוק את ההגדרות של אשכול הבסיס ואת ההגדרות של מערכת ההפעלה בהתאמה אישית.
DBCluster מינימלי
הגדרה בסיסית לפריסת DBCluster של AlloyDB Omni.
הצגת הגדרת YAML מינימלית של DBCluster
# 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
אשכול מסדי נתונים מלא
הגדרה מקיפה שבה מוצגות ההגדרות הזמינות.
הצגת הגדרת 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: 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.
הצגת הגדרת YAML של פריסות שמבוססות על Debian
# 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).
הצגת הגדרת YAML של פריסות מבוססות-UBI9
# 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
הגדרת זיקה של צומת, סבילות והתנהגויות תזמון.
הצגת הגדרת YAML של אפשרויות תזמון Pod
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
זמינות גבוהה והתאמה לעומס (scaling)
להפיץ את התנועה ולוודא שאין זמן השבתה או שהוא מינימלי.
HA DBCluster
הגדרת כמה רפליקות לזמינות גבוהה.
הצגת הגדרת ה-YAML של HA 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" 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.
הצגת הגדרת YAML של שילוב Vault
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
אימות בהגדרת המשתמש (Active Directory)
הגדרת כללים מותאמים אישית של pg_hba.conf ו-pg_ident.conf וסודות של קובץ keytab של Kerberos לאימות Active Directory (GSSAPI).
הצגת הגדרת YAML של אימות בהגדרת המשתמש
apiVersion: v1 kind: Secret metadata: name: db-keytab-dbcluster-sample type: Opaque data: krb5.keytab: | DUMMY_KEYTAB --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: UserDefinedAuthentication metadata: name: dbcluster-sample-ad-auth spec: dbclusterRef: name: dbcluster-sample keytabSecretRef: name: db-keytab-dbcluster-sample pgHbaEntries: - hostgssenc all all 0.0.0.0/0 gss - hostgssenc all all ::1/128 gss - hostssl all all 0.0.0.0/0 scram-sha-256 - hostssl all all ::/0 scram-sha-256 pgIdentEntries: - usermap active_directory_user postgres_user
שכפול ראשי-המתנה
מגדירים רפליקציה בין מסדי נתונים במעלה הזרם (ראשי) ובמורד הזרם (המתנה).
הגדרה במעלה הזרם (ראשי)
מגדירים את הצומת הראשי לפרסום שינויים.
הצגת ההגדרה של Upstream (Primary) Configuration YAML
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Replication metadata: name: replication-upstream-sample spec: dbcluster: name: dbcluster-sample upstream: {}
הגדרת Downstream (המתנה)
הגדרת יעדי רפליקציה לסנכרון מצומת ראשי.
הצגת ההגדרה של Downstream (Standby) Configuration 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
גיבוי, שחזור ושכפול
ניהול תוכנית התאוששות מאסון (DR), עותקי נתונים על פי דרישה ולוחות זמנים.
תוכנית גיבוי מתוזמנת
לתזמן גיבויים מלאים ומצטברים.
הצגת הגדרת 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 * * *"
גיבוי ב-Cloud Storage
אחסון מאובטח של גיבויים בקטגוריה של Cloud Storage.
הצגת הגדרות ה-YAML של הגיבוי ב-Cloud Storage
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.
הצגת הגדרת ה-YAML של הגיבוי ל-Amazon S3
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
שכפול מסד נתונים
שכפול של אשכולות DB רגילים.
הצגת הגדרת ה-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
יתירות כשל בתוכנית התאוששות מאסון (DR)
טיפול בתרחישים לא מתוכננים של התאוששות מאסון (DR) או יתירות כשל.
הצגת הגדרת ה-YAML של יתירות כשל בתוכנית התאוששות מאסון (DR)
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Failover metadata: name: failover-sample spec: dbclusterRef: dbcluster-sample
מאגר חיבורים (PgBouncer)
הגדרת שכבות של שרתי proxy למסדי נתונים באמצעות PgBouncer.
PgBouncer בסיסי
פריסת שירות נלווה רגיל של PgBouncer.
הצגת הגדרת YAML בסיסית של PgBouncer
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"
שירותים משולבים ו-sidecars
שיפור יכולות מסד הנתונים באמצעות למידת מכונה, יכולת תצפית וסיידקארים של סוכנים בהתאמה אישית.
DBCluster עם סוכן ML
משלבים את ה-sidecar של שרת ה-proxy של Vertex AI או של ה-ML המקומי.
הצגת הגדרת YAML של DBCluster עם סוכן ML
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
הגדרת ניראות (observability)
להגדיר מדדי אשכולות, כולל שאילתות SQL בהתאמה אישית, כדי לאסוף מדדים ספציפיים לאפליקציות ולמסדי נתונים שהוגדרו על ידי המשתמשים.
הצגת הגדרת YAML של הגדרת הניראות (observability)
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 בהתאמה אישית
הזרקת קונטיינרים מסוג sidecar לתמיכה רגילה בפודים של האשכול.
הצגת הגדרת YAML של Custom Sidecar
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
DBCluster עם Sidecar בהתאמה אישית
מגדירים DBCluster בסיסי שכולל sidecars סטנדרטיים לתמיכה.
הצגת DBCluster עם הגדרת YAML של Sidecar בהתאמה אישית
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 כ-sidecar של כלי עזר.
הצגת הגדרת ה-YAML של Commvault Backup Sidecar
# 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
DBCluster עם Commvault Sidecar
מגדירים DBCluster שמציין קונטיינר משני (sidecar) של עוזר אישי לסוכן 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