במאמר הזה מוסבר איך להגדיר אשכול Google Distributed Cloud לשימוש בזיקה למארח של מכונה וירטואלית.
הקשר בין קבוצת מארחי VM הוא אחד מהמנגנונים ש-Google Distributed Cloud מספקת כדי להבטיח זמינות גבוהה. באמצעות קבוצת מארחי מכונות וירטואליות עם תחום עניין משותף, אתם יוצרים קבוצות של מארחי ESXi פיזיים. לאחר מכן מגדירים את האשכול כך שקבוצות של מכונות וירטואליות ישויכו לקבוצות של מארחים.
לדוגמה, אפשר להגדיר שכל המכונות הווירטואליות במאגר צמתים יפעלו בקבוצת מארחים מסוימת. אפשר גם להגדיר את כל המכונות הווירטואליות במאגר צמתים שני לפעול בקבוצת מארחים אחרת. אז אפשר להתייחס לכל מאגר צמתים כאל דומיין כשל. כדי להבדיל בין דומייני הכשל, אפשר להוסיף תוויות למכונות הווירטואליות במאגרי הצמתים השונים.
השימוש בהעדפה של קבוצת מארחים של מכונות וירטואליות לא נתמך באשכולות מתקדמים.
לפני שמתחילים
כדי לבצע את התרגיל הזה, צריך שיהיו לכם לפחות שישה מארחי ESXi בסביבת vSphere.
יצירת קבוצות של מארחים
יוצרים שתי קבוצות או יותר של DRS למארחים בסביבת vSphere. לתרגיל הזה, שתי קבוצות של מארחים עם שלושה מארחים בכל אחת יתאימו. הוראות מפורטות זמינות במאמר בנושא יצירת קבוצת DRS של מארחים.
יצירת אשכול משתמשים
בקטע הזה מופיעה דוגמה לאופן שבו יוצרים אשכול משתמשים שמשתמש בהעדפה של קבוצת מכונות וירטואליות מארחות. האשכול בדוגמה הזו משתמש ב-Controlplane V2. לאשכול יש רמת בקרה עם זמינות גבוהה, ולכן יש שלושה צמתים של רמת הבקרה. בנוסף לצמתים של מישור הבקרה, יש שישה צמתים של worker: שלושה במאגר צמתים אחד ושלושה במאגר צמתים שני. כל הצמתים משתמשים בכתובות IP סטטיות.
מתחילים בפעולה לפי ההוראות במאמר יצירת אשכול משתמשים.
כשממלאים את קובץ התצורה של אשכול המשתמשים:
- מציינים שני מאגרי צמתים לצמתי עובדים. לכל מאגר צמתים, מגדירים את
replicasלערך3ומזינים את השם של קבוצת מארחים קיימת.
קובץ תצורה לדוגמה
דוגמה לקובץ של בלוק IP ולחלק מקובץ התצורה של אשכול משתמשים.
user-ipblock.yaml
blocks:
- netmask: 255.255.255.0
gateway: 172.16.21.1
ips:
- ip: 172.16.21.2
- ip: 172.16.21.3
- ip: 172.16.21.4
- ip: 172.16.21.5
- ip: 172.16.21.6
- ip: 172.16.21.7
- ip: 172.16.21.8
user-cluster-yaml
apiVersion: v1
kind: UserCluster
...
network:
hostConfig:
dnsServers:
- "203.0.113.2"
- "198.51.100.2"
ntpServers:
- "216.239.35.4"
ipMode:
type: "static"
ipBlockFilePath: "user-ipblock.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.9"
hostname: "cp-vm-1"
- ip: "172.16.21.10"
hostname: "cp-vm-2"
- ip: "172.16.21.11"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: MetalLB
metalLB:
addressPools:
- name: "address-pool-1"
addresses:
- "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
cpus: 4
memoryMB: 8192
replicas: 3
nodePools:
- name: "worker-pool-1"
enableLoadBalancer: true
replicas: 3
vsphere:
hostgroups:
- "hostgroup-1"
labels:
failuredomain: "failuredomain-1"
- name: "worker-pool-2"
replicas: 3
vsphere:
hostgroups:
- "hostgroup-2"
labels:
failuredomain: "failuredomain-2"
...
אלה הנקודות החשובות שצריך להבין בדוגמה שלמעלה:
כתובות ה-IP הסטטיות של צמתי העובדים מצוינות בקובץ של טווח כתובות IP. בקובץ של חסימת כתובות IP יש שבע כתובות, למרות שיש רק שש צמתי עובד. כתובת ה-IP הנוספת נדרשת במהלך שדרוג, עדכון ותיקון אוטומטי של האשכול.
כתובות ה-IP הסטטיות של שלושת הצמתים של מישור הבקרה מצוינות בקטע
network.controlPlaneIPBlockשל קובץ התצורה של אשכול המשתמשים. אין צורך בכתובת IP נוספת בבלוק הזה.השדה
masterNode.replicasמוגדר ל-3, ולכן יהיו שלושה צמתים של מישור הבקרה.בקר האשכול ייצור קבוצת VM DRS עם שלושת הצמתים ב
worker-pool-1מאגר הצמתים. בנוסף, בקר יוצר כלל שיוך של מכונה וירטואלית למארח כדי להבטיח שהצמתים ב-worker-pool-1יפעלו במארחים שנמצאים ב-hostgroup-1. לצמתים ב-worker-pool-1יש את התוויתfailuredomain: "failuredomain-1"בקר האשכול ייצור קבוצת VM DRS עם שלושת הצמתים ב
worker-pool-2מאגר הצמתים. בנוסף, בקר יוצר כלל שיוך של מכונה וירטואלית למארח, כדי להבטיח שהצמתים ב-worker-pool-2יפעלו במארחים שנמצאים ב-hostgroup-2. לצמתים ב-worker-pool-2יש את התוויתfailuredomain: "failuredomain-2"
ממשיכים ליצור את אשכול המשתמשים כמו שמתואר במאמר יצירת אשכול משתמשים.