מגבלות
ההגבלות הבאות חלות:
- נקודת הקצה מוגבלת לנקודת הקצה 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.getcompute.instances.listcompute.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"מחליפים את המשתנים הבאים:
DEPLOYMENT_SPECIFICATION: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבים של AlloyDB Omni.
DBCLUSTER_SPECIFICATION: הנתיב למפרט של האשכול.
אימות מאזן העומסים
אחרי שהכלי לניהול חבילות RPM משלים את ההגדרה, מוודאים שאפשר להתחבר לאשכול מסדי הנתונים באמצעות כתובת ה-IP הווירטואלית:
psql -h VIRTUAL_IP -U postgresמחליפים את VIRTUAL_IP בכתובת ה-IP שהגדרתם בשדה loadBalancerIP.
מאזן העומסים מנתב אוטומטית את החיבור שלכם לצומת הראשי הנוכחי.