ב-Google Distributed Cloud, תוכנה בלבד, יש תמיכה בשימוש ב-OpenStack כפלטפורמת ענן פרטי. במדריך הזה מוסבר איך להגדיר אשכול לעבודה עם ספק שירותי ענן חיצוני. הפעלת התקנה של אשכולות רק של תוכנה ב-Google Distributed Cloud ב-OpenStack מאפשרת לכם להשתמש בשירותי OpenStack הבאים:
תשתית כשירות (IaaS)
איזון עומסים כשירות (LBaaS)
אחסון
הגדרת אשכול לעבודה עם OpenStack כוללת את הפעולות הבאות:
כשיוצרים את האשכול, מוסיפים
baremetal.cluster.gke.io/external-cloud-providerהערהההערה הזו גורמת ל-Google Distributed Cloud להוסיף דגל kubelet
cloud-provider=externalלאחר מכן, ה-kubelet מוסיף את ה-taints
node.cloudprovider.kubernetes.io/uninitialized:NoScheduleלצמתי האשכול.
ההגדרה הזו מאפשרת לכם ול-OpenStack להיות הבעלים של תהליכי האתחול של הצומת. לדוגמה, אתם יכולים לפרוס תוכנה של Google Distributed Cloud ב-OpenStack כדי להקצות באופן אוטומטי משאבים של OpenStack Load Balancing as a Service (LBaaS) או כדי להשתמש ביכולות אחרות של OpenStack. המשאבים של LBaaS יכולים להחליף את המשאבים של MetalLB כדי לחשוף שירותים שפועלים באשכולות שלכם לדיירים אחרים ב-OpenStack או מחוץ לרשת OpenStack. לקבלת מידע נוסף על התכונות והיתרונות של OpenStack, אפשר לעיין במסמכי OpenStack.
דוגמאות קשורות
במאמר הזה מוסבר רק איך להגדיר את האשכול לשימוש עם OpenStack. במדריכים הבאים מוסבר איך לבצע פריסה לדוגמה:
פריסת אשכול ב-OpenStack מסביר איך לבצע פריסה לדוגמה של אשכול היברידי במכונות וירטואליות (VM) של OpenStack. הפריסה מתבצעת באמצעות סקריפט כדי לפשט את ההתקנה. במדריך מוסבר גם על דרך אחת להפעיל איזון עומסים כשירות (LBaaS).
במאמר הגדרת ספק הענן OpenStack ל-Kubernetes מוסבר איך להתקין את ספק הענן OpenStack באשכול שנפרס ב-OpenStack. לא צריך את ספק הענן OpenStack כדי להשתמש בתוכנת Google Distributed Cloud עם OpenStack.
לפני שמתחילים
מחליטים באילו אשכולות צריך להשתמש במשאבי OpenStack LBaaS.
אחרי שיוצרים אשכול שהוגדר לשימוש במשאבי OpenStack LBaaS, אי אפשר לשנות את ההגדרה כדי לעבור למשאבי MetalLB. חשוב לוודא שאתם מאתחלים את האשכולות עם ההגדרה הנכונה של ספק שירותי הענן.
מוודאים שיש לכם גישה למכונות שאתם מנסים להגדיר.
מידע נוסף על הפעלת cloud-controller-manager זמין במסמכי התיעוד של Kubernetes.
שינוי קובץ התצורה של האשכול
ספק הענן OpenStack Kubernetes מחייב ש-kubelet יפעל בכל הצמתים עם הארגומנט הבא:
cloud-provider: "external"
כדי לוודא שהאשכול עומד בדרישה הזו, מוסיפים את ההערה
baremetal.cluster.gke.io/external-cloud-provider: "true" לקובץ התצורה של האשכול בקטע metadata לפני שיוצרים את האשכול.
הערך בקובץ התצורה צריך להיראות כמו בדוגמה הבאה:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
baremetal.cluster.gke.io/external-cloud-provider: "true"
spec:
...
חלק מספקי הענן בפלטפורמות ענן אחרות דורשים פורמט מיוחד ל-providerID. Google Distributed Cloud יוצרת providerID בפורמט כמו baremetal://MACHINE_ADDRESS לכל מכונת צומת. אם רוצים להשתמש בproviderID שונה, אפשר לציין אחד לכל צומת יחד עם כתובת ה-IP.
בקובץ התצורה לדוגמה של האשכול הבא אפשר לראות איך מציינים את
providerID לצמתי האשכול:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
clusterNetwork:
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/20
controlPlane:
nodePoolSpec:
nodes:
- address: 10.200.0.1
+ providerID: some-prefix://unique-string
- address: 10.200.0.2
+ providerID: some-prefix2://unique-string2
...
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: nodepool1
namespace: cluster-cluster1
spec:
clusterName: cluster1
nodes:
- address: 172.18.0.2
+ providerID: some-prefix3://unique-string3
יצירת האשכול
אחרי שעורכים את קובץ התצורה, משתמשים בפקודה הבאה כדי לאתחל את האשכול:
bmctl create cluster -c cluster1
מידע נוסף על יצירת אשכולות זמין במאמר סקירה כללית על יצירת אשכולות.
הגדרת הצומת
כשיוצרים אשכול שמוגדר ל-OpenStack, מתבצעים השינויים הבאים בצמתי האשכול:
כל הצמתים ב-
cluster1פועלים עם ארגומנט החובה:cloud-provider: "external".בנוסף, לכל הצמתים מתווסף ה-taint הבא לקובצי ההגדרות שלהם:
taints: - effect: NoSchedule key: node.cloudprovider.kubernetes.io/uninitialized value: "true"ההכתמות האלה יוסרו אחרי שתפעילו את ספק שירותי הענן באשכול הזה.
הפקודה
kubeletמופעלת עםproviderIDשציינתם בקובץ התצורה של האשכול.