הגדרת Google Distributed Cloud במכונות וירטואליות (VM) של Compute Engine, מאפשרת לפרוס אשכול היברידי במצב זמינות גבוהה (HA) בלי חומרה ייעודית. ההגדרה הזו מספקת סביבת בדיקה פונקציונלית שבה אפשר לבחון את ניהול האשכולות ואת פריסת עומסי העבודה.
הפריסה הזו מיועדת למטרות הערכה בלבד. אל תריצו את Google Distributed Cloud software-only במכונות וירטואליות של Compute Engine בסביבת הייצור. כדי לפרוס את Google Distributed Cloud בסביבת ייצור, פועלים לפי השלבים שמפורטים במאמר יצירת אשכולות בסיסיים.
במדריך הזה תגדירו שש מכונות וירטואליות של Compute Engine, תקימו קישוריות בשכבה 2 ברשת שכבת-על של vxlan, תתקינו את הדרישות המוקדמות הנדרשות ותפרסו ותאמתו את האשכול ההיברידי.
לפני שמתחילים
- נכנסים לחשבון 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.
- שימו לב למזהה הפרויקט, כי תצטרכו אותו כדי להגדיר משתנה סביבה שמשמש בסקריפטים ובפקודות שבדף הזה. אם בחרתם פרויקט קיים, ודאו שאתם הבעלים או העורכים של הפרויקט.
-
בתחנת העבודה שלכם ב-Linux, ודאו שהתקנתם את הגרסה האחרונה של 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.36.200-gke.118בשביל
ZONE, אפשר להשתמש ב-us-central1-aאו בכל אחד מהאזורים האחרים של Compute Engine .מריצים את הפקודות הבאות כדי להתחבר באמצעות חשבון Google ולהגדיר את הפרויקט כברירת מחדל:
gcloud auth login gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONEיוצרים את חשבון השירות והמפתח של
baremetal-gcr:מפעילים את ממשקי ה-API והשירותים של Google Cloud :
כדי להימנע מהצורך במספר חשבונות שירות ל-APIs ולשירותים שונים, אפשר לתת לחשבון השירות
baremetal-gcrהרשאות נוספות:יוצרים את המשתנים והמערכים שנדרשים לכל הפקודות בדף הזה:
משתמשים בלולאה הבאה כדי ליצור שש מכונות וירטואליות:
הפקודה הזו יוצרת מכונות וירטואליות עם השמות הבאים:
- abm-ws: המכונה הווירטואלית של תחנת העבודה של האדמין.
- abm-cp1, abm-cp2, abm-cp3: המכונות הווירטואליות של צומתי מישור הבקרה.
- abm-w1, abm-w2: המכונות הווירטואליות של הצמתים שמריצים עומסי עבודה.
כדי לוודא ש-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}אפשר להתעלם מהודעות לגבי עדכון ה-VM ולהשלים את המדריך הזה. אם אתם מתכננים להשאיר את המכונות הווירטואליות כסביבת בדיקה, יכול להיות שתרצו לעדכן את מערכת ההפעלה או לשדרג לגרסה הבאה, כמו שמתואר במסמכי התיעוד של Ubuntu.
מגדירים את משתנה הסביבה
KUBECONFIGעם הנתיב לקובץ התצורה של האשכול כדי להריץ פקודותkubectlבאשכול.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שיכולה לגשת לאשכול דרך שער Connect.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 Identity. שיטת האימות הזו מאפשרת לכם להתחבר באמצעות כתובת האימייל שמשויכת לחשבוןGoogle Cloud .
הפקודה gcloud container fleet memberships generate-gateway-rbac שהרצתם בקטע הקודם מגדירה את האשכול כך שתוכלו להתחבר באמצעות זהות Google שלכם.
במסוף Google Cloud , נכנסים לדף אשכולות GKE.
לוחצים על Actions ליד האשכול הרשום ואז על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
הסרת המשאבים
מתחברים לתחנת העבודה של האדמין כדי לאפס את המכונות הווירטואליות של האשכול למצב שלהן לפני ההתקנה, ולבטל את הרישום של האשכול בפרויקט ב- 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