הגדרת מאזן העומסים

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

אפשר להגדיר מאזן עומסים ל-AlloyDB Omni באמצעות כלי התזמור RPM.

מגבלות

ההגבלות הבאות חלות:

  • נקודת הקצה מוגבלת לנקודת הקצה ReadWrite. בעתיד תהיה תמיכה בנקודות קצה לקריאה בלבד.

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

לפני שמגדירים את מאזן העומסים, חשוב לוודא שהמקרה שלכם עונה על הקריטריונים הבאים:

  • כדי להגדיר צמתים של מאזן עומסים, בקובץ מפרט הפריסה, מוסיפים קבוצת load_balancer_nodes שמכילה את שמות המארחים או את כתובות ה-IP של המכונות הווירטואליות הייעודיות של מאזן העומסים:

    alloydbomni:
      vars:
        ...
      children:
        load_balancer_nodes:
          hosts:
            lb-node-1:
            lb-node-2:
    
  • כדי להגדיר את חומת האש, צריך לאפשר את התנועה הנכנסת הבאה:

    • במכונות וירטואליות ייעודיות של מאזן עומסים:

      • יציאה 5432 ‏ (TCP): לתנועה של מסד הנתונים של HAProxy.

      • יציאה 6432 (TCP): לתנועת מאגר חיבורים של PgBouncer, אם רלוונטי.

      • פרוטוקול VRRP: לבחירת מנהיג keepalived ולבדיקות תקינות.

    • בצמתי מסד נתונים:

      • יציאה 8086 (HTTP): לבדיקות תקינות של מאזן העומסים.
  • אם אתם משתמשים בסביבת Google Cloud , צריך להגדיר את ENVIRONMENT_TYPE לערך gcp. לאחר מכן, צריך לאמת את החשבון ב-CLI של gcloud על ידי הפעלת gcloud auth login בתור המשתמש root. בנוסף, לחשבון המאומת צריכות להיות ההרשאות הבאות:

    • compute.instances.get
    • compute.instances.list
    • compute.instances.updateNetworkInterface

הגדרת מאזן העומסים

הכלי לניהול חבילות RPM משתמש ב-HAProxy כדי להפיץ את התנועה וב-Keepalived כדי לספק זמינות גבוהה עם כתובת IP וירטואלית (VIP).

עדכון מפרט המשאב

בקובץ המפרט של DBCluster, מוסיפים את dbLoadBalancerOptions כדי לוודא שתוכנה לניהול אשכולות וכלי תזמור יודעים איך לנהל את נקודות הקצה של מאזן העומסים.

DBCluster:
  metadata:
    name: DBCLUSTER_NAME
  spec:
    primarySpec:
      # ... other primary settings ...
      dbLoadBalancerOptions:
        ENVIRONMENT_TYPE::
          loadBalancerIP: "VIRTUAL_IP"
          loadBalancerType: "internal"
          loadBalancerInterface: "VIRTUAL_IP_INTERFACE"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫ENVIRONMENT_TYPE: קובע את הסביבה שבה האשכול מוגדר – onprem או gcp.

  • ‫DBCLUSTER_NAME: השם של אשכול מסד הנתונים שלכם ב-AlloyDB Omni, לדוגמה my-db-cluster.

  • ‫VIRTUAL_IP: כתובת IP סטטית שמשמשת ל-IP וירטואלי צף. אפליקציות לקוח של מסד נתונים משתמשות בכתובת ה-IP שמוגדרת כאן. כדי לוודא ש-Keepalived יכול לשדר בהצלחה פרוטוקולים של Address Resolution Protocol‏ (GARP), כתובת ה-IP הזו צריכה לעמוד בתנאים הבאים: היא צריכה להיות זמינה, היא לא יכולה להיות לולאה חוזרת (loopback), ובמקרה של on-premises, היא צריכה להיות שייכת לאותה רשת משנה כמו הממשקים של הצומת הראשי.

  • ‫VIRTUAL_IP_INTERFACE: ממשק הרשת שבו מוגדר VIRTUAL_IP. ערך ברירת המחדל הוא eth0.

שימוש בתצורה

מחילים את השינויים בהגדרות באמצעות ממשק התזמור המועדף.

Ansible

מריצים את ה-playbook של ה-bootstrap באמצעות קובצי המלאי והמפרט של המשאבים:

ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \
      -e resource_spec="DBCLUSTER_SPECIFICATION"

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

  • ‫DBCLUSTER_PLAYBOOK: הנתיב ל-playbook שיצרתם עבור אשכול מסד הנתונים שלכם במאמר יצירת אשכול.

  • ‫DEPLOYMENT_SPECIFICATION: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבי AlloyDB Omni.

  • ‫DBCLUSTER_SPECIFICATION: הנתיב למפרט של האשכול.

alloydbctl

מחילים את מפרטי המשאבים והפריסה:

alloydbctl apply -d "DEPLOYMENT_SPECIFICATION" -r "DBCLUSTER_SPECIFICATION"

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

אימות מאזן העומסים

אחרי שהכלי לניהול חבילות RPM משלים את ההגדרה, מוודאים שאפשר להתחבר לאשכול מסדי הנתונים באמצעות כתובת ה-IP הווירטואלית:

psql -h VIRTUAL_IP -U postgres

מחליפים את VIRTUAL_IP בכתובת ה-IP שהגדרתם בשדה loadBalancerIP.

מאזן העומסים מנתב אוטומטית את החיבור שלכם לצומת הראשי הנוכחי.