בדף הזה מוסבר איך להגדיר אשכול היברידי במצב זמינות גבוהה (HA) באמצעות מכונות וירטואליות (VM) שפועלות ב-Compute Engine.
אתם יכולים לנסות את Google Distributed Cloud רק באמצעות תוכנה, במהירות ובלי שתצטרכו להכין חומרה כלשהי. ביצוע השלבים בדף הזה יספק לכם סביבת בדיקה פעילה שפועלת ב-Compute Engine.
כדי לנסות את Google Distributed Cloud רק בתוכנה במכונות וירטואליות ב-Compute Engine, מבצעים את השלבים הבאים:
- יצירת שש מכונות וירטואליות ב-Compute Engine
- יצירת רשת
vxlanבין כל המכונות הווירטואליות עם קישוריות L2 - התקנת הדרישות המוקדמות ל-Google Distributed Cloud
- פריסת אשכול היברידי
- אימות האשכול
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- חשוב לשים לב למזהה הפרויקט כי תצטרכו אותו כדי להגדיר משתנה סביבה שמשמש בסקריפטים ובפקודות בדף הזה. אם בחרתם פרויקט קיים, ודאו שאתם בעלים או עורכים של הפרויקט.
- במחשב הלינוקס שלכם, מוודאים שהתקנתם את הגרסה האחרונה של Google Cloud CLI, כלי שורת הפקודה לאינטראקציה עם Google Cloud. אם כבר התקנתם את ה-CLI של gcloud, מעדכנים את הרכיבים שלו באמצעות הפקודה הבאה:
gcloud components update
בהתאם לאופן ההתקנה של ה-CLI של gcloud, יכול להיות שתופיע ההודעה הבאה:
"You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:"פועלים לפי ההוראות כדי להעתיק את הפקודה ולהדביק אותה כדי לעדכן את הרכיבים.
השלבים במדריך הזה מבוססים על סקריפט ההתקנה במאגר anthos-samples. בקטע השאלות הנפוצות יש מידע נוסף על התאמה אישית של הסקריפט הזה כדי לעבוד עם כמה וריאציות פופולריות.
יצירת שש מכונות וירטואליות ב-Compute Engine
כדי ליצור את המכונות הווירטואליות הבאות:
- מכונה וירטואלית אחת לתחנת העבודה של האדמין. תחנת עבודה של אדמין מארחת כלי ממשק שורת פקודה (CLI) וקובצי הגדרות להקצאת אשכולות במהלך ההתקנה, וכלי CLI לאינטראקציה עם אשכולות שהוקצו לאחר ההתקנה. לתחנת העבודה של האדמין תהיה גישה לכל הצמתים האחרים באשכול באמצעות SSH.
- שלוש מכונות וירטואליות לשלושת הצמתים של מישור הבקרה שנדרשים להפעלת מישור הבקרה של Google Distributed Cloud.
- שתי מכונות וירטואליות לשני צמתי העובדים שנדרשים להפעלת עומסי עבודה באשכול Google Distributed Cloud.
מגדירים משתני סביבה:
export PROJECT_ID=PROJECT_ID export ZONE=ZONE export CLUSTER_NAME=CLUSTER_NAME export BMCTL_VERSION=1.35.100במקום
ZONE, אפשר להשתמש ב-us-central1-aאו בכל אחד מהתחומים האחרים של Compute Engine .מריצים את הפקודות הבאות כדי להתחבר באמצעות חשבון Google ולהגדיר את הפרויקט כברירת מחדל:
gcloud auth login gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONEיוצרים את חשבון השירות ואת המפתח
baremetal-gcr:מפעילים את Google Cloud APIs and services:
כדי שלא תצטרכו להשתמש בכמה חשבונות שירות לממשקי API ולשירותים שונים, תנו לחשבון השירות
baremetal-gcrהרשאות נוספות:יוצרים את המשתנים והמערכים שנדרשים לכל הפקודות בדף הזה:
משתמשים בלולאה הבאה כדי ליצור שש מכונות וירטואליות:
הפקודה הזו יוצרת מכונות וירטואליות עם השמות הבאים:
- abm-ws: המכונה הווירטואלית לתחנת העבודה של האדמין.
- abm-cp1, abm-cp2, abm-cp3: מכונות וירטואליות לצמתים של מישור הבקרה.
- abm-w1, abm-w2: מכונות ה-VM של הצמתים שמריצים עומסי עבודה.
כדי לוודא ש-SSH מוכן בכל המכונות הווירטואליות, משתמשים בלולאה הבאה:
יצירת רשת vxlan עם קישוריות L2 בין מכונות וירטואליות
משתמשים בפונקציונליות הרגילה של vxlan Linux כדי ליצור רשת שמחברת את כל המכונות הווירטואליות עם קישוריות L2.
הפקודה הבאה מכילה שתי לולאות שמבצעות את הפעולות הבאות:
- משתמשים ב-SSH כדי לגשת לכל מכונה וירטואלית.
- מעדכנים ומתקינים את החבילות הנדרשות.
מריצים את הפקודות הנדרשות כדי להגדיר את הרשת באמצעות
vxlan.
עכשיו יש לכם קישוריות L2 ברשת 10.200.0.0/24. למכונות הווירטואליות יש את כתובות ה-IP הבאות:
- מכונה וירטואלית של תחנת עבודה לאדמין: 10.200.0.2
- מכונות וירטואליות שמריצות את צמתי מישור הבקרה:
- 10.200.0.3
- 10.200.0.4
- 10.200.0.5
- מכונות וירטואליות שמריצות את צמתי העובדים:
- 10.200.0.6
- 10.200.0.7
התקנת דרישות מוקדמות ל-Google Distributed Cloud
לפני שמתקינים את Google Distributed Cloud, צריך להתקין את הכלים הבאים בתחנת העבודה של האדמין:
bmctlkubectl- Docker
כדי להתקין את הכלים ולהכין את ההתקנה של Google Distributed Cloud:
מריצים את הפקודות הבאות כדי להוריד את המפתח של חשבון השירות לתחנת העבודה של האדמין ולהתקין את הכלים הנדרשים:
מריצים את הפקודות הבאות כדי לוודא ש-
root@10.200.0.xפועל. הפקודות מבצעות את המשימות הבאות:- יוצרים מפתח SSH חדש בתחנת העבודה של האדמין.
- מוסיפים את המפתח הציבורי לכל המכונות הווירטואליות האחרות בפריסה.
פריסת אשכול היברידי
בלוק הקוד הבא מכיל את כל הפקודות וההגדרות שנדרשות כדי לבצע את המשימות הבאות:
- יוצרים את קובץ ההגדרות עבור האשכול ההיברידי הנדרש.
- מריצים את הבדיקות לפני ההטמעה.
- פורסים את האשכול.
אימות האשכול
אפשר למצוא את קובץ kubeconfig של האשכול בתחנת העבודה של האדמין בספרייה bmctl-workspace של חשבון הבסיס. כדי לאמת את הפריסה, מבצעים את השלבים הבאים.
משתמשים ב-SSH כדי לגשת לתחנת העבודה של האדמין כ-root:
gcloud compute ssh root@abm-ws --zone ${ZONE}אפשר להתעלם מהודעות לגבי עדכון המכונה הווירטואלית ולהשלים את המדריך הזה. אם אתם מתכננים להשתמש במכונות הווירטואליות כסביבת בדיקה, כדאי לעדכן את מערכת ההפעלה או לשדרג לגרסה הבאה, כמו שמתואר במסמכי Ubuntu.
כדי להפעיל פקודות
kubectlבאשכול, צריך להגדיר את משתנה הסביבהKUBECONFIGעם הנתיב לקובץ התצורה של האשכול.export clusterid=CLUSTER_NAME export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig kubectl get nodesמגדירים את ההקשר הנוכחי במשתנה סביבה:
export CONTEXT="$(kubectl config current-context)"מריצים את הפקודה הבאה ב-CLI של gcloud. הפקודה הזו:
- הפקודה מעניקה לחשבון המשתמש שלכם את התפקיד
clusterrole/cluster-adminב-Kubernetes באשכול. - הפקודה מגדירה את האשכול כך שאפשר להריץ פקודות
kubectlבמחשב המקומי בלי להתחבר באמצעות SSH לתחנת העבודה של האדמין.
מחליפים את
GOOGLE_ACCOUNT_EMAILבכתובת האימייל שמשויכת לחשבון Google Cloud . לדוגמה:--users=alex@example.com.gcloud container fleet memberships generate-gateway-rbac \ --membership=CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --applyהפלט של הפקודה הזו אמור להיראות כך, והוא קוצר כדי שיהיה קל לקרוא אותו:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig, context: CLUSTER_NAME-admin@CLUSTER_NAME Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.- הפקודה מעניקה לחשבון המשתמש שלכם את התפקיד
כשמסיימים את הבדיקה, מזינים exit כדי להתנתק מתחנת העבודה לאדמין.
מקבלים את הרשומה
kubeconfigשאפשר לגשת אל האשכול דרכה באמצעות שער החיבור.gcloud container fleet memberships get-credentials CLUSTER_NAMEהפלט אמור להיראות כך:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_CLUSTER_NAME" has been generated and set as the current context.עכשיו אפשר להריץ פקודות של
kubectlדרך שער החיבור:kubectl get nodes kubectl get namespaces
התחברות לאשכול מ Google Cloud המסוף
כדי לראות את עומסי העבודה באשכול ב Google Cloud מסוף, צריך להיכנס לאשכול. לפני הכניסה הראשונה למסוף, צריך להגדיר שיטת אימות. שיטת האימות הכי קלה להגדרה היא זהות Google. שיטת האימות הזו מאפשרת לכם להיכנס באמצעות כתובת האימייל שמשויכת לחשבוןGoogle Cloud .
הפקודה gcloud container fleet memberships generate-gateway-rbac שהרצתם בקטע הקודם מגדירה את האשכול כך שתוכלו להיכנס באמצעות הזהות שלכם ב-Google.
נכנסים לדף GKE Clusters במסוף Google Cloud .
לוחצים על פעולות לצד האשכול הרשום, ואז לוחצים על כניסה.
בוחרים באפשרות שימוש בזהות שלכם ב-Google כדי להיכנס.
לוחצים על התחברות.
הסרת המשאבים
מתחברים לתחנת העבודה של האדמין כדי לאפס את מכונות ה-VM של האשכול למצב שהיה לפני ההתקנה, ומבטלים את הרישום של האשכול מהפרויקט: Google Cloud
gcloud compute ssh root@abm-ws --zone ${ZONE} << EOF set -x export clusterid=CLUSTER_NAME bmctl reset -c \$clusterid EOFמציגים רשימה של כל המכונות הווירטואליות שהשם שלהן כולל את
abm:gcloud compute instances list | grep 'abm'מוודאים שאין בעיה למחוק את כל המכונות הווירטואליות שכוללות את
abmבשם.אחרי האימות, אפשר למחוק מכונות וירטואליות של
abmעל ידי הפעלת הפקודה הבאה:gcloud compute instances list --format="value(name)" | grep 'abm' | xargs gcloud \ --quiet compute instances delete