אתם יכולים להוסיף צמתים במצב המתנה לאשכול קיים כדי לשנות את קנה המידה של עומסי העבודה של הקריאה או כדי להגדיל את הזמינות הגבוהה. אפשר גם להסיר צומתי מסד נתונים ספציפיים לצורך תחזוקה ממוקדת או השבתה סופית כדי להקטין את הקיבולת של האשכול.
לפני שמתחילים
- חשוב לוודא שהאשכול במצב תקין ושהערך של
status.phaseהואReady. - אם מוסיפים צומת חדש, צריך לוודא שהוא עומד בדרישות המערכת ושרכיבי AlloyDB Omni הנדרשים מותקנים בו.
הוספת צומת של מסד נתונים
כדי להוסיף צומת חדש של מסד נתונים במצב המתנה לאשכול, צריך לעדכן גם את מפרט הפריסה (שנקרא גם "מלאי") וגם את מפרט המשאבים של אשכול מסד הנתונים.
כדי לעדכן את מפרט הפריסה, פותחים את הקובץ
deployment_spec.yamlומוסיפים את כתובת ה-IP או את שם המארח של הצומת החדש בקבוצהprimary_instance_nodes.alloydbomni: children: primary_instance_nodes: hosts: db-node-1: db-node-2: NEW_NODE:מחליפים את
NEW_NODEבכתובת ה-IP או בשם המארח של הצומת החדש במצב המתנה שמוסיפים.כדי לעדכן את מפרט המשאבים, פותחים את קובץ מפרט המשאבים
DBClusterומגדילים את הערך שלnumberOfStandbysבמספר הצמתים שמוסיפים:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # Other configurations omitted for brevity. # Modify the availability block in your existing DBCluster resource spec: availability: numberOfStandbys: NEW_STANDBY_COUNT # Remaining configurations omitted.מחליפים את המשתנים הבאים:
-
DB_CLUSTER_NAME: השם של אשכול מסד הנתונים. -
NEW_STANDBY_COUNT: המספר הכולל החדש של צמתים במצב המתנה באשכול, אחרי ההגדלה.
-
מחילים את מפרטי המשאבים המעודכנים באחת מהשיטות הבאות. מערכת ה-RPM Orchestrator מקצה באופן אוטומטי את הצומת החדש:
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
כדי להחיל את השינויים באמצעות Ansible, מבצעים את השלבים הבאים:
יוצרים פלייבוק של
add.ymlעם התוכן הבא:--- # Add AlloyDB Omni database nodes - name: Add AlloyDB Omni database nodes hosts: all become: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: PRIVATE_SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.addמחליפים את המשתנים הבאים:
-
ANSIBLE_USER: המשתמש עם גישה ללא סיסמה לכל הצמתים והרשאותsudo. -
PRIVATE_SSH_KEY_PATH: הנתיב למפתח SSH פרטי לאימות ללא סיסמה.
-
מריצים את הפלייבוק שנוצר:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" add.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
מחליפים את המשתנים הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
הסרה של צומת מסד נתונים ספציפי
כדי להסיר צומת המתנה ספציפי מהאשכול, צריך להסיר אותו ממפרט הפריסה ולהקטין את מספר צומתי ההמתנה.
כדי לעדכן את מפרט הפריסה, פותחים את הקובץ
deployment_spec.yamlומסירים את כתובת ה-IP או את שם המארח של צומת היעד מהקבוצהprimary_instance_nodes.כדי לעדכן את מפרט המשאב, פותחים את קובץ מפרט המשאב
DBClusterומקטינים את הערךnumberOfStandbys:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # Other configurations omitted for brevity. # Modify the availability block in your existing DBCluster resource spec: availability: numberOfStandbys: NEW_STANDBY_COUNT # Remaining configurations omitted.מחליפים את המשתנים הבאים:
-
DB_CLUSTER_NAME: השם של אשכול מסד הנתונים. -
NEW_STANDBY_COUNT: המספר הכולל החדש של צמתים במצב המתנה באשכול, אחרי ההפחתה.
-
מחילים את המניפסטים המעודכנים באחת מהשיטות הבאות:
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
כדי להחיל את השינויים באמצעות Ansible, מבצעים את השלבים הבאים:
יוצרים פלייבוק של
remove.ymlעם התוכן הבא:--- # Scale-in database nodes from AlloyDB Omni cluster - name: Scale-In AlloyDB Omni Cluster (Logical Discovery & De-registration) hosts: all become: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: PRIVATE_SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.removeמחליפים את המשתנים הבאים:
-
ANSIBLE_USER: המשתמש עם גישה ללא סיסמה לכל הצמתים והרשאותsudo. -
PRIVATE_SSH_KEY_PATH: הנתיב למפתח ה-SSH הפרטי לאימות ללא סיסמה.
-
מריצים את הפלייבוק:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" remove.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
מחליפים את המשתנים הבאים:
-
DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה. -
DBCLUSTER_SPECIFICATION: הנתיב למניפסטDBClusterששיניתם.
אופציונלי: מנקים את הרכיבים בצומת שהוסר.
alloydbctlמסירים ידנית את רכיבי AlloyDB Omni כדי לנקות את הצומת שהוסר.
Ansible
אם הרכיבים הבאים קיימים במכונה הווירטואלית, כלי התזמור Ansible מנקה אותם באופן אוטומטי:
- AlloyDB Omni
- רכיב מעקב ב-AlloyDB Omni
- Node Manager
pgBackRestPgBouncerKeepalived