הגדרת זיקה של קבוצת מארחים של מכונות וירטואליות

במאמר הזה מוסבר איך להגדיר אשכול 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"

ממשיכים ליצור את אשכול המשתמשים כמו שמתואר במאמר יצירת אשכול משתמשים.