בדף הזה מוסבר איך להפעיל את כלי ניהול מאגר החיבורים PgBouncer ל-AlloyDB Omni ולהשתמש בו באמצעות AlloyDB Omni Kubernetes operator.
הרבה אפליקציות, במיוחד אפליקציות אינטרנט, פותחות וסוגרות חיבורים למסד נתונים בתדירות גבוהה, מה שעלול להעמיס עומס משמעותי על מופע מסד הנתונים. PgBouncer עוזר לצמצם את עומס המכונה על ידי ניהול יעיל יותר של החיבורים. שימוש חוזר בחיבורים מאפשר ל-PgBouncer לצמצם את מספר החיבורים למופע של מסד הנתונים, וכך לפנות משאבים במופע.
יצירת שירות PgBouncer
אופרטור Kubernetes של AlloyDB Omni מאפשר ליצור שירות ייעודי של PgBouncer למסד הנתונים. לאחר מכן תוכלו לגשת למסד הנתונים דרך שירות PgBouncer כדי ליהנות מאיגום חיבורים.
יש הגדרה ייעודית של משאב מותאם אישית (CRD) להגדרת שירות PgBouncer לפי הצורך.
כדי ליצור שירות PgBouncer למסד הנתונים, פועלים לפי השלבים הבאים:
יוצרים
PgBouncerמשאב בהתאמה אישית באשכול Kubernetes באופן הבא:apiVersion: alloydbomni.dbadmin.goog/v1 kind: PgBouncer metadata: name: PGBOUNCER_NAME spec: dbclusterRef: DB_CLUSTER_NAME allowSuperUserAccess: true podSpec: resources: memory: 1Gi cpu: 1 image: "gcr.io/alloydb-omni/operator/g-pgbouncer:1.4.0" parameters: pool_mode: POOL_MODE ignore_startup_parameters: IGNORE_STARTUP_PARAMETERS default_pool_size: "DEFAULT_POOL_SIZE" max_client_conn: "MAXIMUM_CLIENT_CONNECTIONS" max_db_connections: "MAXIMUM_DATABASE_CONNECTIONS" serviceOptions: type: "ClusterIP"
מחליפים את מה שכתוב בשדות הבאים:
-
PGBOUNCER_NAME: השם של המשאב המותאם אישית של PgBouncer. -
DB_CLUSTER_NAME: השם של אשכול מסד הנתונים שלכם ב-AlloyDB Omni. זהו אותו שם של אשכול מסדי הנתונים שהצהרתם עליו כשיצרתם אותו. -
POOL_MODE: מציין מתי לקוחות אחרים יכולים לעשות שימוש חוזר בחיבור למסד נתונים. מגדירים את הפרמטר לאחת מהאפשרויות הבאות:-
session: החיבור למסד הנתונים משוחרר בחזרה למאגר אחרי שהלקוח מתנתק. האפשרות הזו מסומנת כברירת מחדל. -
transaction: החיבור למסד הנתונים משוחרר בחזרה למאגר אחרי שהעסקה מסתיימת. -
statement: החיבור למסד הנתונים מוחזר למאגר אחרי שהשאילתה מסתיימת. במצב הזה, אי אפשר לבצע עסקאות שמופיעות בכמה דוחות.
-
-
IGNORE_STARTUP_PARAMETERS: מציין פרמטרים ש-PgBouncer לא מאפשר, כדי שהמערכת תתעלם מהם במהלך ההפעלה – לדוגמה,extra_float_digits. מידע נוסף זמין במאמר בנושא הגדרת PgBouncer. -
DEFAULT_POOL_SIZE: מספר החיבורים למסד הנתונים שיוגדרו לכל צמד של משתמש ומסד נתונים. לדוגמה,8. -
MAXIMUM_CLIENT_CONNECTIONS: המספר המקסימלי של חיבורי לקוח, לדוגמה800. -
MAXIMUM_DATABASE_CONNECTIONS: המספר המקסימלי של חיבורים למסד הנתונים, לדוגמה160.
-
החלת המניפסט:
kubectl apply -f PATH_TO_MANIFEST -n NAMESPACEמחליפים את PATH_TO_MANIFEST בנתיב לקובץ המניפסט, לדוגמה,
/fleet/config/pgbouncer.yaml.כדי לוודא שאובייקט PgBouncer שיצרתם מוכן, מריצים את השאילתה הבאה:
kubectl get pgbouncers.alloydbomni.dbadmin.goog PGBOUNCER_NAME -n NAMESPACE -wמחליפים את
NAMESPACEבשם של מרחב השמות של Kubernetes לאובייקט PgBouncer.הפלט אמור להיראות כך:
NAMESPACE NAME ENDPOINT STATE dbv2 mypgbouncer dbv2 mypgbouncer dbv2 mypgbouncer dbv2 mypgbouncer WaitingForDeploymentReady dbv2 mypgbouncer Acquiring IP dbv2 mypgbouncer 10.138.15.231 Ready
חיבור לנקודת הקצה של מאגר החיבורים
אפשר להתחבר למאגר החיבורים של PgBouncer מתוך אשכול Kubernetes או מחוצה לו.
התחברות מתוך אשכול Kubernetes
כדי להתחבר לנקודת הקצה של מאגר החיבורים באמצעות לקוח psql, פועלים לפי השלבים הבאים:
כדי ליצור Pod:
apiVersion: v1 kind: Pod metadata: name: postgres spec: containers: - image: "docker.io/library/postgres:latest" command: - "sleep" - "604800" name: db-clientהחלת המניפסט:
kubectl apply -f PATH_TO_MANIFEST -n NAMESPACEמתחברים לאפליקציה בקונטיינר:
kubectl exec -it postgres -n NAMESPACE -- bashמאמתים את חיבור ה-SSL לנקודת הקצה של PgBouncer באמצעות לקוח
psql:export PGSSLMODE="require"; psql -h HOST -d postgres -U postgres -p PORTמחליפים את מה שכתוב בשדות הבאים:
-
HOST: נקודת הקצה של מאגר החיבורים שאותה מקבלים באמצעות הפקודהkubectl get pgbouncers.alloydbomni.dbadmin.goog -n NAMESPACE. אם PgBouncer לא נחשף כשירות, צריך להשתמש בכתובת ה-IP שלו. -
PORT: היציאה ש-PgBouncer מאזין לה.
בחלון הטרמינל מוצג טקסט של
psqlהתחברות שמסתיים בהנחיהpostgres=#.-
חיבור מחוץ לאשכול Kubernetes
כדי לגשת למאגר החיבורים של PgBouncer מחוץ לאשכול Kubernetes, צריך להגדיר את השדה type במאפיין serviceOptions לערך LoadBalancer, וכך ליצור שירות loadbalancer.
יוצרים
PgBouncerמשאב בהתאמה אישית באשכול Kubernetes באופן הבא:apiVersion: alloydbomni.dbadmin.goog/v1 kind: PgBouncer metadata: name: PGBOUNCER_NAME spec: dbclusterRef: DB_CLUSTER_NAME allowSuperUserAccess: true replicaCount: 2 parameters: pool_mode: POOL_MODE ignore_startup_parameters: IGNORE_STARTUP_PARAMETERS default_pool_size: "DEFAULT_POOL_SIZE" max_client_conn: "MAXIMUM_CLIENT_CONNECTIONS" max_db_connections: "MAXIMUM_DATABASE_CONNECTIONS" podSpec: resources: memory: 1Gi cpu: 1 image: "gcr.io/alloydb-omni/operator/g-pgbouncer:1.4.0" serviceOptions: type: "LoadBalancer"
החלת המניפסט:
kubectl apply -f PATH_TO_MANIFESTכדי לוודא שאובייקט PgBouncer שיצרתם מוכן, מריצים את השאילתה הבאה:
kubectl get pgbouncers.alloydbomni.dbadmin.goog PGBOUNCER_NAME -n NAMESPACE -wהפלט אמור להיראות כך:
NAME ENDPOINT STATE mypgbouncer 10.138.15.207 Ready
קביעת ההגדרות של PgBouncer
משתמשים בפרמטרים הבאים כדי להגדיר את ההגדרות של PGBouncer:
| פרמטר | תיאור | ערך ברירת המחדל |
|---|---|---|
pool_mode |
מגדירה מתי לקוחות אחרים יכולים לעשות שימוש חוזר בחיבור למסד נתונים. הערכים המותרים הם:
|
session |
ignore_startup_parameters |
מציינים פרמטרים שאסור להשתמש בהם ב-PgBouncer כדי שהמערכת תתעלם מהם בזמן ההפעלה. | |
default_pool_size |
מספר החיבורים למסד הנתונים שיוגדרו לכל צמד של משתמש ומסד נתונים. | 20 |
max_client_conn |
מספר החיבורים המקסימלי של הלקוח. | 100 |
max_db_connections |
המספר המקסימלי של חיבורים למסד הנתונים. | 0 |
התאמה אישית של הפריסה של PgBouncer
AlloyDB Omni משתמש במשאבים מותאמים אישית כדי לנהל את הרכיבים שלו. כדי להתאים אישית את הפריסה של PgBouncer ב-AlloyDB Omni ב-Kubernetes, משנים את PgBouncer רשומת המשאב המותאם אישית באופן הבא:
מפרטים את המשאבים המותאמים אישית של
PgBouncer:kubectl get pgbouncers -n NAMESPACEמחליפים את NAMESPACE במרחב השמות שבו פרסתם את AlloyDB Omni.
כדי לשנות את המשאב, פותחים את קובץ ההצהרה של המשאב
PgBouncerבעורך ברירת המחדל:kubectl edit pgbouncers PGBOUNCER_NAME -n NAMESPACEבקובץ ההצהרה, מחפשים את הקטע
podSpecשכולל את ההגדרה ומשנים את השדות הבאים לפי הצורך:
resources:cpuו-memoryשהוגדרו עבור מאגר התגים:apiVersion: alloydbomni.dbadmin.goog/v1 kind: PgBouncer metadata: name: PGBOUNCER_NAME spec: dbclusterRef: DB_CLUSTER_NAME replicaCount: 2 parameters: pool_mode: POOL_MODE ignore_startup_parameters: IGNORE_STARTUP_PARAMETERS default_pool_size: "DEFAULT_POOL_SIZE" max_client_conn: "MAXIMUM_CLIENT_CONNECTIONS" max_db_connections: "MAXIMUM_DATABASE_CONNECTIONS" podSpec: resources: memory: 1Gi cpu: 1 ...
image: הנתיב לתג התמונה של PgBouncer:... podSpec: resources: memory: 1Gi cpu: 1 image: IMAGE ...
schedulingconfig: כוללים את הקטעnodeaffinityכדי לקבוע איפה יתוזמנו ה-Pods של PgBouncer:... podSpec: resources: memory: 1Gi cpu: 1 image: IMAGE schedulingconfig: nodeaffinity: NODE_AFFINITY_TYPE: nodeSelectorTerms: - matchExpressions: - key: LABEL_KEY operator: OPERATOR_VALUE values: - pgbouncer ...מחליפים את מה שכתוב בשדות הבאים:
-
NODE_AFFINITY_TYPE: מגדירים את הפרמטר לאחת מהאפשרויות הבאות:-
requiredDuringSchedulingIgnoredDuringExecution: Kubernetes מתזמן את ה-Pod בדיוק על סמך הכללים המוגדרים. -
preferredDuringSchedulingIgnoredDuringExecution: מתזמן Kubernetes מנסה למצוא צומת שעומד בכלל שהוגדר לתזמון. עם זאת, אם אין צומת כזה, Kubernetes מתזמן לצומת אחר באשכול.
-
-
LABEL_KEY: התווית של הצומת עבור המפתח שמשמש כאינדיקטור מיקום ומאפשר חלוקה שווה של ה-Pod על פני האשכול – לדוגמה,nodetype. -
OPERATOR_VALUE: מייצג את הקשר של מפתח לקבוצת ערכים. מגדירים את הפרמטר לאחת מהאפשרויות הבאות:-
In: המערך של הערכים לא יכול להיות ריק. -
NotIn: המערך של הערכים לא יכול להיות ריק. -
Exists: מערך הערכים חייב להיות ריק. -
DoesNotExist: מערך הערכים חייב להיות ריק. -
Gt: למערך הערכים צריך להיות רכיב יחיד, שמפורש כמספר שלם. -
Lt: למערך הערכים צריך להיות רכיב יחיד, שמפורש כמספר שלם.
-
-
אחרי שמבצעים את השינויים, שומרים את קובץ ההצהרה. האופרטור של AlloyDB Omni Kubernetes מחיל את השינויים על פריסת ה-PgBouncer באופן אוטומטי.
תזמון עם זיקה לצומת
אתם יכולים להשתמש בnode affinity כדי לשלוט במיקום של תרמילי PgBouncer, וכך לקבל מיקום מדויק יותר מאשר תזמון רגיל. התכונה Node affinity מבטיחה שפודים של PgBouncer יוצבו בצמתים שעומדים בקריטריונים ספציפיים, כמו תוויות מסוימות.
כדי לציין את ההתאמה של הצומת לתרמילים של PgBouncer, משנים את המשאב המותאם אישית PgBouncer כדי להוסיף את הקטע schedulingconfig לקטע podSpec:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: PgBouncer
metadata:
name: PGBOUNCER_NAME
spec:
# ... other PgBouncer configuration ...
podSpec:
# ... other podSpec settings ...
schedulingconfig:
nodeaffinity:
NODE_AFFINITY_TYPE:
nodeSelectorTerms:
- matchExpressions:
- key: LABEL_KEY
operator: OPERATOR_VALUE
values:
- pgbouncer
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_AFFINITY_TYPE: מגדירים את הפרמטר לאחת מהאפשרויות הבאות:-
requiredDuringSchedulingIgnoredDuringExecution: Kubernetes מתזמן את ה-Pod בדיוק על סמך הכללים המוגדרים. -
preferredDuringSchedulingIgnoredDuringExecution: מתזמן Kubernetes מנסה למצוא צומת שעומד בכלל המוגדר לתזמון. עם זאת, אם אין צומת כזה, Kubernetes מתזמן לצומת אחר באשכול.
-
-
LABEL_KEY: מפתח התווית של הצומת. לדוגמה,disktype=ssd. -
OPERATOR_VALUE: מייצג את הקשר של מפתח לקבוצת ערכים. מגדירים את הפרמטר לאחת מהאפשרויות הבאות:-
In: הערך של תווית הצומת חייב להיות זהה לערך במערךvalues. -
NotIn: ערך התווית של הצומת לא יכול להיות זהה לאף ערך במערךvalues. -
Exists: התוויתLABEL_KEYחייבת להיות קיימת בצומת. המערךvaluesצריך להיות ריק. -
DoesNotExist: התוויתLABEL_KEYלא יכולה להיות קיימת בצומת. המערךvaluesצריך להיות ריק. -
Gt: הערך של תווית הצומת צריך להיות גדול מהערך היחיד במערךvalues, שמתפרש כמספר שלם. -
Lt: הערך של תווית הצומת צריך להיות קטן מהערך היחיד במערךvalues, שמפורש כמספר שלם.
-
בדוגמה הבאה אפשר לראות איך מתזמנים פודים של PgBouncer בצמתים עם התווית nodetype=pgbouncer:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: PgBouncer
metadata:
name: mypgbouncer
spec:
# ... other PgBouncer configuration ...
podSpec:
# ... other podSpec settings ...
schedulingconfig:
nodeaffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: nodetype
operator: In
values:
- pgbouncer
בדוגמה הזו, ההגדרה requiredDuringSchedulingIgnoredDuringExecution מבטיחה שתרמילי PgBouncer יתוזמנו רק בצמתים עם התווית nodetype=pgbouncer.
מחיקת משאב PgBouncer
כדי למחוק משאב בהתאמה אישית של PgBouncer, מריצים את הפקודה הבאה:
kubectl delete pgbouncers.alloydbomni.dbadmin.goog PGBOUNCER_NAME -n NAMESPACEהפלט אמור להיראות כך:
pgbouncer.alloydbomni.dbadmin.goog "mypgbouncer" deleted
צפייה ביומנים של PgBouncer
כדי לראות ולנתח יומנים של כל מופע משוכפל של PgBouncer בפריסת AlloyDB Omni ב-Kubernetes, פועלים לפי השלבים הבאים:
כדי לקבל רשימה של כל ה-Pods של PgBouncer במרחב השמות:
kubectl get pods -n NAMESPACEהפלט אמור להיראות כך:
NAME READY STATUS RESTARTS AGE al-092d-dbcluster-sample-0 3/3 Running 0 3d1h mypgbouncer-pgb-deployment-659869f95c-4kbgv 1/1 Running 0 27mכדי להציג יומנים של Pod מסוים:
kubectl logs -f POD_NAME -n NAMESPACEהפלט אמור להיראות כך:
2025-01-21 06:57:39.549 UTC [7] LOG kernel file descriptor limit: 1048576 (hard: 1048576); max_client_conn: 800, max expected fd use: 812 2025-01-21 06:57:39.550 UTC [7] LOG listening on 0.0.0.0:6432 2025-01-21 06:57:39.550 UTC [7] LOG listening on [::]:6432 2025-01-21 06:57:39.550 UTC [7] LOG listening on unix:/tmp/.s.PGSQL.6432 2025-01-21 06:57:39.550 UTC [7] LOG process up: PgBouncer 1.23.0, libevent 2.1.12-stable (epoll), adns: evdns2, tls: OpenSSL 3.0.13 30 Jan 2024 2025-01-21 06:58:17.012 UTC [7] LOG C-0x55f2b1b322a0: (nodb)/(nouser)@10.138.15.215:48682 registered new auto-database: alloydbadmin 2025-01-21 06:58:17.012 UTC [7] LOG S-0x55f2b1b4ecb0: alloydbadmin/alloydbpgbouncer@10.138.0.48:5432 new connection to server (from 10.12.1.113:53156) 2025-01-21 06:58:17.042 UTC [7] LOG S-0x55f2b1b4ecb0: alloydbadmin/alloydbpgbouncer@10.138.0.48:5432 SSL established: TLSv1.3/TLS_AES_256_GCM_SHA384/ECDH=prime256v1 2025-01-21 06:58:17.052 UTC [7] LOG C-0x55f2b1b322a0: pgbouncer/statsuser@10.138.15.215:48682 login attempt: db=pgbouncer user=statsuser tls=TLSv1.3/TLS_AES_256_GCM_SHA384 replication=no 2025-01-21 06:58:19.526 UTC [7] LOG C-0x55f2b1b322a0: pgbouncer/statsuser@10.138.15.215:48682 closing because: client close request (age=2s) 2025-01-21 06:58:20.344 UTC [7] LOG C-0x55f2b1b322a0: pgbouncer/statsuser@10.138.15.215:46796 login attempt: db=pgbouncer user=statsuser tls=TLSv1.3/TLS_AES_256_GCM_SHA384 replication=no
מעקב אחרי הביצועים והפעילות של PgBouncer
אפשר להציג את מדדי מאגר החיבורים של PgBouncer רק באמצעות statsuser ייעודי כדי לגשת למסד הנתונים של הנתונים הסטטיסטיים הפנימיים של PgBouncer. ה-statsuser משמש לאימות כשמתחברים למסד הנתונים של PgBouncer.
מתחברים ל-AlloyDB Omni בתור משתמש-על או משתמש עם הרשאת
CREATE ROLEבאמצעות לקוחpsql:export PGPASSWORD="ChangeMe123"; export PGSSLMODE="require"; psql -h HOST -d postgres -U postgres -p PORTהפלט אמור להיראות כך:
psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 15.7) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off) Type "help" for help.יוצרים את
statsuserב-AlloyDB Omni:postgres=# CREATE USER "statsuser" WITH PASSWORD 'tester';הפלט אמור להיראות כך:
CREATE ROLEמתחברים למסד הנתונים של PgBouncer בתור
statsuser:export PGPASSWORD="ChangeMe123"; export PGSSLMODE="require"; psql -h HOST -d pgbouncer -U statsuser -p PORTהפלט אמור להיראות כך:
psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 1.23.0/bouncer) WARNING: psql major version 16, server major version 1.23. Some psql features might not work. SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off) Type "help" for help.מריצים את הפקודה
SHOW STATSכדי לראות את הביצועים של PgBouncer ולזהות בעיות פוטנציאליות:pgbouncer=# SHOW STATS;הפלט אמור להיראות כך:
database | total_server_assignment_count | total_xact_count | total_query_count | total_received | total_sent | total_xact_time | total_query_time | total_wait_time | avg_server_assignment_count | avg_xact_count | avg_query_count | avg_recv | avg_sent | avg_xact_time | avg_query_time | avg_wait_time -------------+-------------------------------+------------------+-------------------+----------------+------------+-----------------+------------------+-----------------+-----------------------------+----------------+-----------------+----------+----------+---------------+----------------+--------------- alloydbadmin | 1 | 0 | 0 | 0 | 330 | 0 | 0 | 41730 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 41730 pgbouncer | 0 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 (2 rows)
הגדרת גישה לרשת למופע AlloyDB Omni
כדי להבטיח את האבטחה של Deployment (פריסה) של AlloyDB Omni ב-Kubernetes, אפשר להגביל את הגישה לרשת למאגר החיבורים של PgBouncer על ידי הגדרת טווחי כתובות ספציפיים של כתובות IP באמצעות סימון CIDR (Classless Inter-Domain Routing).
סימון CIDR משלב כתובת IP עם אורך קידומת. לדוגמה, בבלוק ה-CIDR 192.168.1.0/24, הכתובת היא 192.168.1.0 ואורך הקידומת הוא 24. אורך הקידומת מציין את מספר הביטים בכתובת ה-IP שמשמשים לחלק של הרשת, ומגדיר את המסכה של רשת משנה.
בקובץ ההצהרה של הפריסה, מאתרים את הקטע serviceOptions ומוסיפים או משנים את ההגדרה loadBalancerSourceRanges:
serviceOptions:
type: "LoadBalancer"
loadBalancerSourceRanges:
- "CIDR_BLOCK"
מחליפים את CIDR_BLOCK במחרוזת CIDR שמציינת את טווחי כתובות ה-IP שמותרים לחיבורים נכנסים לשירות LoadBalancer. ההגדרה loadBalancerSourceRanges מסננת את התנועה הנכנסת ברשת וקובעת אילו לקוחות יכולים לגשת למופע של מסד הנתונים.
כדי לוודא שההגדרה של loadBalancerSourceRanges הוחלה בצורה נכונה, משתמשים בפקודה הבאה כדי לבדוק את כתובת ה-IP החיצונית שהוקצתה לשירות LoadBalancer:
kubectl get svc -n NAMESPACE -w
מחליפים את NAMESPACE במרחב השמות שבו נמצאת הפריסה של AlloyDB Omni.
הפלט אמור להיראות כך:
NAME TYPE CLUSTER_IP EXTERNAL_IP PORT(S) AGE
al-mypgbouncer-pgb-svc LoadBalancer 34.118.230.149 10.138.0.26 6432:31367/TCP 3m39s
אחרי ש-LoadBalancer מוכן, העמודה EXTERNAL_IP מתמלאת בכתובת ה-IP החיצונית שהוקצתה לשירות LoadBalancer.
החיבורים לכתובת ה-IP החיצונית הזו מסוננים על סמך ההגדרה loadBalancerSourceRanges.
אחרי אימות כתובת ה-IP החיצונית, בודקים את החיבורים מאפליקציות בטווחים המותרים של CIDR כדי לוודא שהן יכולות להתחבר.
השבתת מאגר החיבורים של PgBouncer
אם אתם צריכים להשבית את מאגר החיבורים של PgBouncer או לבטל את השינויים שבוצעו בו, אתם יכולים לפעול לפי השלבים הבאים:
בודקים את הסטטוס של מאגר החיבורים:
kubectl get deployment fleet-controller-manager --namespace alloydb-omni-system -o json | jq '.spec.template.spec.containers[0].args'הפקודה הזו מציגה את מניפסט הפריסה של הבקר הראשי לניהול צי AlloyDB Omni. מוצאים את האפשרות
--enable-pgbouncerבקטעargsבמערךcontainers:... spec: containers: - name: fleet-controller-manager image:... args: --health-probe-bind-address=:8081", --metrics-bind-address=127.0.0.1:8080", --leader-elect", --image-registry=gcr.io", --data-plane-image-repository=alloydb-omni-staging", --control-plane-agents-image-repository=aedi-gbox", --control-plane-agents-tag=jan19v3", --additional-db-versions-for-test-only=latest", --enable-multiple-backup-solutions=true", --enable-pgbouncer=trueעורכים את ההגדרה של פריסת הבקר כדי להשבית את מאגר החיבורים:
kubectl edit deployment fleet-controller-manager --namespace alloydb-omni-systemבמניפסט הפריסה, משנים את הערך של האפשרות
--enable-pgbouncerמ-trueל-false:... --enable-pgbouncer=falseשומרים את הקובץ ויוצאים מהעורך.
kubectlיחיל את השינוי באופן אוטומטי.