ניהול צמתים באשכול ב-AlloyDB Omni

בוחרים גרסת תיעוד:

בדף הזה מוסבר איך מוסיפים או מסירים צמתי מסד נתונים באשכול AlloyDB Omni קיים באמצעות כלי התזמור RPM.

אתם יכולים להוסיף צמתים במצב המתנה לאשכול קיים כדי לשנות את קנה המידה של עומסי העבודה של הקריאה או כדי להגדיל את הזמינות הגבוהה. אפשר גם להסיר צומתי מסד נתונים ספציפיים לצורך תחזוקה ממוקדת או השבתה סופית כדי להקטין את הקיבולת של האשכול.

לפני שמתחילים

הוספת צומת של מסד נתונים

כדי להוסיף צומת חדש של מסד נתונים במצב המתנה לאשכול, צריך לעדכן גם את מפרט הפריסה (שנקרא גם "מלאי") וגם את מפרט המשאבים של אשכול מסד הנתונים.

  1. כדי לעדכן את מפרט הפריסה, פותחים את הקובץ deployment_spec.yaml ומוסיפים את כתובת ה-IP או את שם המארח של הצומת החדש בקבוצה primary_instance_nodes.

    alloydbomni:
      children:
        primary_instance_nodes:
          hosts:
            db-node-1:
            db-node-2:
            NEW_NODE:
    

    מחליפים את NEW_NODE בכתובת ה-IP או בשם המארח של הצומת החדש במצב המתנה שמוסיפים.

  2. כדי לעדכן את מפרט המשאבים, פותחים את קובץ מפרט המשאבים 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: המספר הכולל החדש של צמתים במצב המתנה באשכול, אחרי ההגדלה.
  3. מחילים את מפרטי המשאבים המעודכנים באחת מהשיטות הבאות. מערכת ה-RPM Orchestrator מקצה באופן אוטומטי את הצומת החדש:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ansible

    כדי להחיל את השינויים באמצעות Ansible, מבצעים את השלבים הבאים:

    1. יוצרים פלייבוק של 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 פרטי לאימות ללא סיסמה.
    2. מריצים את הפלייבוק שנוצר:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" add.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

    מחליפים את המשתנים הבאים:

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • ‫DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.

הסרה של צומת מסד נתונים ספציפי

כדי להסיר צומת המתנה ספציפי מהאשכול, צריך להסיר אותו ממפרט הפריסה ולהקטין את מספר צומתי ההמתנה.

  1. כדי לעדכן את מפרט הפריסה, פותחים את הקובץ deployment_spec.yaml ומסירים את כתובת ה-IP או את שם המארח של צומת היעד מהקבוצה primary_instance_nodes.

  2. כדי לעדכן את מפרט המשאב, פותחים את קובץ מפרט המשאב 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: המספר הכולל החדש של צמתים במצב המתנה באשכול, אחרי ההפחתה.
  3. מחילים את המניפסטים המעודכנים באחת מהשיטות הבאות:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ansible

    כדי להחיל את השינויים באמצעות Ansible, מבצעים את השלבים הבאים:

    1. יוצרים פלייבוק של 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 הפרטי לאימות ללא סיסמה.
    2. מריצים את הפלייבוק:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" remove.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

    מחליפים את המשתנים הבאים:

    • ‫DEPLOYMENT_SPEC_PATH: הנתיב לספריית מפרט הפריסה.
    • ‫DBCLUSTER_SPECIFICATION: הנתיב למניפסט DBCluster ששיניתם.
  4. אופציונלי: מנקים את הרכיבים בצומת שהוסר.

    alloydbctl

    מסירים ידנית את רכיבי AlloyDB Omni כדי לנקות את הצומת שהוסר.

    Ansible

    אם הרכיבים הבאים קיימים במכונה הווירטואלית, כלי התזמור Ansible מנקה אותם באופן אוטומטי:

    • AlloyDB Omni
    • רכיב מעקב ב-AlloyDB Omni
    • Node Manager
    • pgBackRest
    • PgBouncer
    • Keepalived