תוכנת Distributed Cloud ל-Bare Metal בלבד מאפשרת לכם להעריך את הפריסה והפעולות של האשכולות על ידי יצירת אשכולות הדגמה במכונות וירטואליות (VM) של Compute Engine. במדריך הזה תריצו סקריפט שמקצה חמש מכונות וירטואליות של Compute Engine ומגדיר רשת VPC כדי לספק קישוריות לאשכול. אחרי שהסקריפט מסתיים, משתמשים ב-bmctl, במסוףGoogle Cloud , ב-Google Cloud CLI או ב-Terraform כדי ליצור אשכול אדמין ואשכול משתמש נלווה שיכול לארח עומסי עבודה.
השלבים האלה יכולים להימשך בין 40 דקות לשעה. הפריסה הזו מיועדת למטרות הערכה בלבד. אל תריצו את אשכולות ההדגמה האלה בסביבת הייצור. כדי לפרוס את Google Distributed Cloud בסביבת ייצור, פועלים לפי השלבים שמפורטים במאמר יצירת אשכולות בסיסיים.
סקירה כללית של התהליך
במדריך הזה תבצעו את השלבים הבאים:
מכינים את הסביבה המקומית כדי שלסקריפט יהיו משתני הסביבה הנדרשים, ואוספים את המידע הבסיסי שצריך כדי להריץ פקודות.
יוצרים את המכונות הווירטואליות ואת הרשת באמצעות הסקריפט שהורדתם.
יוצרים את אשכול האדמין באמצעות אחד מהלקוחות הנתמכים.
יוצרים את אשכול המשתמש באמצעות אחד מהלקוחות הנתמכים.
ניקוי כדי להסיר את האשכולות והמכונות הווירטואליות שיצרתם באמצעות המדריך הזה.
1. הכנת הסביבה המקומית
המדריך הזה משתמש בסקריפט שמגדיר את הרשת בשבילכם, ולכן אתם לא צריכים לאסוף הרבה מידע או לתכנן. בשלבים הבאים מגדירים את הסביבה המקומית ואוספים את המידע הבסיסי שצריך בשלבים הבאים של המדריך:
- נכנסים לחשבון 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.
- שימו לב למזהה הפרויקט, כי תצטרכו אותו כדי להגדיר משתנה סביבה שמשמש בסקריפט ובפקודות שבדף הזה. אם בחרתם פרויקט קיים, ודאו שאתם הבעלים או העורכים של הפרויקט.
-
אתם יכולים להריץ את הסקריפט ב-Cloud Shell או במחשב המקומי שבו פועלת מערכת Linux או macOS. אם אתם משתמשים במכונה מקומית, ודאו שבסביבה שלכם מותקנים הכלים הנדרשים:
- מוודאים שהתקנתם את הגרסה האחרונה של 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:
פועלים לפי ההוראות כדי להעתיק ולהדביק את הפקודה לעדכון הרכיבים.
- מוודאים ש-
kubectlמותקן: אמורים להופיע נתוני השימוש שלkubectl
kubectl. אם הפקודה לא זמינה, מתקינים אתkubectl:gcloud components install kubectl
- מוודאים שהתקנתם את הגרסה האחרונה של Google Cloud CLI, כלי שורת הפקודה לאינטראקציה עם Google Cloud. מעדכנים את הרכיבים של ה-CLI של gcloud, אם צריך:
- מוודאים שבפרויקט יש רשת VPC שנקראת default.
אם אין לכם רשת VPC שמוגדרת כברירת מחדל, הסקריפט שבקטע הבא לא יצליח להקצות את המשאבים הנדרשים. אלא אם תבחרו למחוק או להגביל אותה, כל פרויקט חדש מתחיל עם רשת VPC במצב אוטומטי בשם default, שאמורה לעבוד עם הסקריפט. מידע נוסף זמין במאמר רשתות VPC.
- מוודאים שאילוצי מדיניות הארגון הבאים לא נאכפים:
constraints/iam.disableServiceAccountKeyCreationconstraints/compute.vmCanIpForwardconstraints/compute.requireShieldedVmconstraints/compute.vmExternalIpAccess
אם האילוצים האלה נאכפים, הסקריפט שבקטע הבא לא יצליח להקצות את המשאבים הנדרשים. בפרויקט חדש, האילוצים האלה מוגדרים כלא פעילים (לא נאכפים) כברירת מחדל. מידע נוסף על אילוצים של מדיניות הארגון
- מגדירים את משתני הסביבה:
export PROJECT_ID=PROJECT_ID export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME export ON_PREM_API_REGION=ON_PREM_API_REGION export ZONE=ZONE
-
ADMIN_CLUSTER_NAME: השם שבחרתם לאשכול האדמין. -
ON_PREM_API_REGION: Google Cloud האזור שבו GKE On-Prem API פועל ומאחסן את המטא-נתונים שלו. צריך לציין אתus-central1או אזור נתמך אחר. -
ZONE: האזור ( Google Cloud ) שבו נוצרות המכונות הווירטואליות של Compute Engine. אפשר להשתמש ב-us-central1-aאו בכל אחד מהאזורים האחרים של Compute Engine.
-
- מריצים את הפקודות הבאות כדי להגדיר את פרויקט ברירת המחדל ואת האזור.
gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONE
אם מופיעה השגיאה
PERMISSION_DENIED, צריך לבדוק שוב את מזהה הפרויקט שהזנתם. אם מזהה הפרויקט נכון, מריצים אתgcloud auth loginכדי להיכנס ל-ה-CLI של gcloud באמצעות החשבון שיש לו גישה לפרויקט. - כדי לקבל רשימה של הגרסאות הנתמכות שאפשר להתקין:
gcloud container bare-metal admin-clusters query-version-config \ --location=ON_PREM_API_REGION
- בוחרים גרסה מהפלט של הפקודה הקודמת ומגדירים אותה במשתנה סביבה:
export BMCTL_VERSION=BMCTL_VERSION
כדי לקבל את התכונות והתיקונים האחרונים של Google Distributed Cloud, מומלץ לבחור את הגרסה התואמת הגבוהה ביותר.
2. יצירת המכונות הווירטואליות והרשת
בקטע הזה מורידים ומריצים את הסקריפט install_admin_cluster.sh.
משכפלים את המאגר
anthos-samplesועוברים לספרייה שבה נמצא הסקריפט:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-bashמריצים את הסקריפט:
bash install_admin_cluster.shבהודעה, מזינים
2כדי להגדיר רק את התשתית של Compute Engine ומאשרים את הבחירה כשמופיעה בקשה.הסקריפט יוצר מכונות וירטואליות ב-Compute Engine, יוצר רשת VXLAN ומגדיר את תחנת העבודה של האדמין ואת צומתי האשכול. הגדרת התשתית הזו נמשכת כ-5 דקות.
כדי לקבל מידע נוסף על הסקריפט, אפשר ללחוץ על הקישור הבא:
מידע על הסקריפט
אפשר לראות את הסקריפט בתיקייה
anthos-bm-gcp-bashבמאגר anthos-samples ב-GitHub. הסקריפט מבצע את הפעולות הבאות:-
מפעיל את ממשקי ה-API הבאים של Google Cloud :
anthos.googleapis.com anthosaudit.googleapis.com anthosgke.googleapis.com cloudresourcemanager.googleapis.com connectgateway.googleapis.com container.googleapis.com compute.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com gkeonprem.googleapis.com serviceusage.googleapis.com stackdriver.googleapis.com monitoring.googleapis.com logging.googleapis.com kubernetesmetadata.googleapis.com iam.googleapis.com opsconfigmonitoring.googleapis.com
-
במקום ליצור כמה חשבונות שירות לממשקי API ולשירותים שונים, הסקריפט יוצר חשבון שירות אחד בשם
baremetal-gcrומקצה לו את התפקידים הבאים ב-IAM:roles/gkehub.adminroles/gkehub.connectroles/logging.logWriterroles/monitoring.dashboardEditorroles/monitoring.metricWriterroles/monitoring.viewerroles/opsconfigmonitoring.resourceMetadata.writerroles/serviceusage.serviceUsageViewerroles/stackdriver.resourceMetadata.writer
-
יוצר את המכונות הווירטואליות הבאות:
- מכונה וירטואלית אחת לתחנת העבודה של האדמין
- מכונה וירטואלית אחת לצומת של מישור הבקרה באשכול האדמין
- שתי מכונות וירטואליות לצומתי העובדים של אשכול המשתמשים
- מכונה וירטואלית אחת לצומת של מישור הבקרה באשכול המשתמשים
- מוודא ש-SSH מופעל בכל המכונות הווירטואליות, ושלתחנת העבודה של האדמין יש גישת SSH לכל המכונות הווירטואליות האחרות שנוצרו בשביל הצמתים באשכול.
-
יצירת רשת שכבת-על של Virtual Extensible LAN (VXLAN) לקישוריות של שכבה 2 בין המכונות הווירטואליות. רשת ה-VXLAN לא נשמרת, כך שאם מפעילים מחדש מכונה וירטואלית, הרשת נמחקת. הרשת מוגדרת להיות ברשת המשנה
10.200.0.0/24. קישוריות שכבה 2 נדרשת בשביל מאזן העומסים המצורף. -
מתקין את הכלים הבאים בתחנת העבודה של האדמין:
bmctlkubectl- Docker
הסקריפט גם מוריד את המפתח של חשבון השירות
baremetal-gcrלתחנת העבודה של האדמין. -
מוודאים שאפשר להפעיל את
root@10.200.0.xמתחנת העבודה של האדמין:- יצירת מפתח SSH חדש בתחנת העבודה של האדמין.
- מוסיף את המפתח הציבורי לכל שאר המכונות הווירטואליות בפריסה.
הסקריפט מפיק פלט של כל פקודה שהוא מריץ ושל הסטטוס שלה. בסיום, הסקריפט יוציא את הפלט הבא:
✅ Successfully set up SSH access from admin workstation to cluster node VMs. ✅ GCE Infrastructure setup complete. Please check the logs for any errors!!! ✅ If you do not see any errors in the output log, then you now have the following setup: |---------------------------------------------------------------------------------------------------------| | VM Name | L2 Network IP (VxLAN) | INFO | |---------------------------------------------------------------------------------------------------------| | abm-admin-cluster-cp | 10.200.0.3 | 🌟 Ready for use as control plane for the admin cluster | | abm-user-cluster-cp | 10.200.0.4 | 🌟 Ready for use as control plane for the user cluster | | abm-user-cluster-w1 | 10.200.0.5 | 🌟 Ready for use as worker for the user cluster | | abm-user-cluster-w2 | 10.200.0.6 | 🌟 Ready for use as worker for the user cluster | |---------------------------------------------------------------------------------------------------------|-
מפעיל את ממשקי ה-API הבאים של Google Cloud :
3. יצירת אשכול הניהול
bmctl
כדי ליצור אשכול אדמין באמצעות bmctl, צריך לגשת למכונה הווירטואלית של תחנת העבודה של האדמין בחלון הטרמינל ולהריץ משם פקודות:
משתמשים ב-SSH כדי לגשת למכונה הווירטואלית של תחנת העבודה של האדמין,
abm-ws, בתור משתמש root:gcloud compute ssh root@abm-ws --zone ZONEמגדירים את פרטי הכניסה של המשתמש כ-Application Default Credentials (ADC):
gcloud auth application-default loginפועלים לפי ההנחיות כדי לבחור את חשבון Google ל-ADC.
יוצרים קובץ תצורה של אשכול:
bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_IDמאמתים את קובץ התצורה של אשכול האדמין:
קובץ התצורה הבא של האשכול מכיל את הערכים שסיפקתם קודם. בנוסף לערכים שהזנתם, שימו לב להבדלים הבאים מקובץ התצורה שנוצר:
- ההערות הוסרו מהדוגמה הזו כדי לשפר את הקריאוּת.
- הסקריפט יוצר חשבון שירות אחד עם כל ההרשאות הנדרשות ומוריד את המפתח
bm-gcr.jsonשאליו מפנה קובץ התצורה.
gcrKeyPath: /root/bm-gcr.json sshPrivateKeyPath: /root/.ssh/id_rsa gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json --- apiVersion: v1 kind: Namespace metadata: name: cluster-ADMIN_CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: ADMIN_CLUSTER_NAME namespace: cluster-ADMIN_CLUSTER_NAME spec: type: admin profile: default anthosBareMetalVersion: BMCTL_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: 10.200.0.3 clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: 10.200.0.48 clusterOperations: projectID: PROJECT_ID location: ON_PREM_API_REGION storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 110מחליפים את התוכן של קובץ התצורה שנוצר בתחנת העבודה של האדמין בתוכן מהדוגמה שלמעלה.
פותחים את הקובץ שנוצר,
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml, ומחליפים את התוכן שלו בתוכן של הדוגמה שאימתתם בשלב הקודם.יוצרים את אשכול האדמין:
bmctl create cluster -c ADMIN_CLUSTER_NAME
הפקודה
bmctlמציגה פלט במסך בזמן שהיא מריצה בדיקות מקדימות ויוצרת את האשכול. מידע מפורט נכתב ביומנים בתיקייהbaremetal/bmctl-workspace/abm-user-cluster-metallb/logבתחנת העבודה של האדמין.יצירת האשכול יכולה להימשך כמה דקות.
במסוף, נכנסים לדף אשכולות GKE.
מוודאים שהפרויקט שבו יצרתם את אשכול המשתמשים נבחר. אשכול האדמין אמור להופיע ברשימה.
נכנסים לאשכול האדמין:
לוחצים על הקישור של שם האשכול, ובחלונית הצדדית לוחצים על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
אימות של אשכול האדמין
קובץ ה-kubeconfig של אשכול האדמין נמצא בתחנת העבודה של האדמין בספרייה bmctl-workspace של חשבון הבסיס. כדי לאמת את הפריסה, מבצעים את השלבים הבאים:
משתמשים ב-SSH כדי לגשת לתחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEמוודאים שאשכול האדמין נוצר ופועל:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodesהפלט אמור להיראות כך:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81כשמסיימים, מזינים
exitכדי להתנתק מתחנת העבודה של האדמין.
המסוף
כדי ליצור אשכול אדמין במסוף, צריך להריץ את bmctl
register bootstrap מה-VM של תחנת העבודה של האדמין כדי ליצור אשכול בוטסטראפ.
בזמן שהפקודה bmctl register bootstrap פועלת, מבצעים את השלבים במסוף כדי ליצור את אשכול האדמין.
הזנת הפרטים הבסיסיים של סביבת האתחול
במסוף Google Cloud , נכנסים לדף אשכולות GKE.
לוחצים על יצירה.
בתיבת הדו-שיח Create a cluster, בוחרים באפשרות On-premises ולוחצים על Configure לשרת פיזי.
חשוב לבחור את
PROJECT_IDמרשימת הפרויקטים.בסרגל הניווט הימני, לוחצים על Install bootstrap environment.
מזינים את הערך
ADMIN_CLUSTER_NAMEבתור שם אשכול האדמין.בוחרים באפשרות
BMCTL_VERSIONבתור הגרסה של אשכול האדמין. הסקריפט הוריד את הגרסה הזו של כלי שורת הפקודהbmctlלתחנת העבודה של האדמין. גרסת Google Distributed Cloud שאתם מתקינים צריכה להתאים לגרסתbmctl.בשדה Google Cloud API Location, בוחרים את ON_PREM_API_REGION מהרשימה. ההגדרה הזו מציינת את האזור שבו פועל GKE On-Prem API, ואת האזור שבו מאוחסנים:
- המטא-נתונים של האשכול שנדרשים ל-GKE On-Prem API כדי לנהל את מחזור החיים של האשכול
- נתוני Cloud Logging ו-Cloud Monitoring של רכיבי המערכת
- יומן הביקורת של האדמין שנוצר על ידי יומני הביקורת של Cloud
שם האשכול, הפרויקט והמיקום מזהים באופן ייחודי את האשכול ב- Google Cloud.
כדי ליצור את אשכול ה-bootstrap, צריך להשתמש בשלבים שבקטע הבא במקום בשלבים שמוצגים במסוף. משאירים את דף המסוף פתוח כי ממשיכים ממנו ליצירת אשכול האדמין.
יצירת אשכול ה-bootstrap
כשמשתמשים בלקוח GKE On-Prem API, כמו המסוף, כדי ליצור אשכול אדמין, צריך ליצור אשכול אתחול בתחנת העבודה של האדמין. אשכול ה-bootstrap מארח את בקרי Kubernetes שנדרשים כדי ליצור את אשכול האדמין.
משורת הפקודה, משתמשים ב-SSH כדי לגשת למכונה הווירטואלית של תחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEאפשר להתעלם מהודעות לגבי עדכון ה-VM ולהשלים את המדריך הזה. אם אתם מתכננים להשאיר את המכונות הווירטואליות כסביבת בדיקה, יכול להיות שתרצו לעדכן את מערכת ההפעלה או לשדרג לגרסה הבאה, כמו שמתואר במסמכי התיעוד של Ubuntu.
מגדירים את פרטי הכניסה של המשתמש כ-Application Default Credentials (ADC):
gcloud auth application-default loginפועלים לפי ההנחיות כדי לבחור את חשבון Google ל-ADC.
עוברים לספרייה
baremetal/ומריצים את הפקודה הבאה כדי ליצור את אשכול ה-bootstrap.שם אשכול ה-bootstrap נגזר מהוספת
bootstrap-לפני שם אשכול האדמין.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_IDאחרי ש-
bmctlיוצר בהצלחה את אשכול ה-bootstrap, הפלט שמופיע דומה לזה:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
יצירת אשכול הניהול
בדף Install bootstrap environment, בקטע Bootstrap environment from admin workstation, לוחצים על Check Connection.
אם החיבור הצליח, במסוף תופיע ההודעה Connection established.
לפני שממשיכים, צריך ליצור את החיבור לאשכול ה-bootstrap. אם החיבור לא נוצר, בודקים את הארגומנטים שצוינו בפקודה
bmctl register bootstrap:חשוב לוודא שהערך של
--nameתואם ל-Derived bootstrap name שמוצג בקטע Bootstrap environment basics.מוודאים שהערך של
--project-idתואם למזהה הפרויקט שבחרתם במסוף.
אם אתם צריכים לשנות את שם אשכול ה-bootstrap או את מזהה הפרויקט, הזינו
Ctrl-Cכדי לצאת מ-bmctl register bootstrapוהריצו מחדש את הפקודה.
Networking
בסרגל הניווט הימני, לוחצים על Networking.
בקטע מישור הבקרה, מזינים את הערך הבא בשדה Control plane node IP 1:
10.200.0.3זו כתובת ה-IP של המכונה הווירטואלית abm-admin-cluster-cp ב-VXLAN שנוצר על ידי הסקריפט.
בקטע מאזן עומסים, מוודאים שהאפשרות Bundled מסומנת.
בקטע Virtual IPs (VIPs), מזינים את הערך הבא בשדה VIP של מישור הבקרה:
10.200.0.48השלב הבא תלוי בזמינות של אשכול ה-bootstrap. הפקודה
bmctl register bootstrapבחלון הטרמינל צריכה לפעול במשך כמה דקות לפני שאשכול ה-bootstrap יופיע כחבר רשום. אם הוא עדיין לא זמין אחרי כמה דקות, בדקו את שם אשכול ה-bootstrap ואת מזהה הפרויקט שבהם השתמשתם. אם אתם צריכים לשנות את שם אשכול ה-bootstrap או את מזהה הפרויקט, הזינוCtrl-Cבחלון הטרמינל השני כדי לצאת מ-bmctl register bootstrapולהריץ מחדש את הפקודה.לוחצים על אימות ויצירה.
במסוף מוצגות הודעות סטטוס בזמן אימות ההגדרות ויצירת האשכול.
כשיוצרים את אשכול האדמין, אשכול ה-bootstrap בתחנת העבודה של האדמין נמחק. הפלט של הפקודה
bmctl register bootstrapבחלון הטרמינל השני אמור להיראות כך:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
אימות של אשכול האדמין
קובץ ה-kubeconfig של אשכול האדמין נמצא בתחנת העבודה של האדמין בספרייה bmctl-workspace של חשבון הבסיס. כדי לאמת את הפריסה, מבצעים את השלבים הבאים:
משתמשים ב-SSH כדי לגשת לתחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEמוודאים שאשכול האדמין נוצר ופועל:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodesהפלט אמור להיראות כך:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81כשמסיימים, מזינים
exitכדי להתנתק מתחנת העבודה של האדמין.
CLI של gcloud
כדי לבצע את ההוראות הבאות, צריך שני חלונות טרמינל. בחלון טרמינל אחד, מריצים את bmctl register bootstrap כדי ליצור אשכול אתחול. בזמן שהפקודה bmctl register bootstrap פועלת, מריצים את הפקודה gcloud container
bare-metal admin-clusters create בחלון טרמינל אחר כדי ליצור את אשכול האדמין.
יצירת אשכול ה-bootstrap
כשמשתמשים בלקוח API של GKE On-Prem, כמו ה-CLI של gcloud, כדי ליצור אשכול אדמין, צריך ליצור אשכול אתחול בתחנת העבודה של האדמין. אשכול ה-bootstrap מארח את בקרי Kubernetes שנדרשים כדי ליצור את אשכול האדמין.
משורת הפקודה, משתמשים ב-SSH כדי לגשת למכונה הווירטואלית של תחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEאפשר להתעלם מהודעות לגבי עדכון ה-VM ולהשלים את המדריך הזה. אם אתם מתכננים להשאיר את המכונות הווירטואליות כסביבת בדיקה, יכול להיות שתרצו לעדכן את מערכת ההפעלה או לשדרג לגרסה הבאה, כמו שמתואר במסמכי התיעוד של Ubuntu.
מגדירים את פרטי הכניסה של המשתמש כ-Application Default Credentials (ADC):
gcloud auth application-default loginפועלים לפי ההנחיות כדי לבחור את חשבון Google ל-ADC.
עוברים לספרייה
baremetal/ומריצים את הפקודה הבאה כדי ליצור את אשכול ה-bootstrap.שם אשכול ה-bootstrap נגזר מהוספת
bootstrap-לפני שם אשכול האדמין.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_IDאחרי ש-
bmctlיוצר בהצלחה את אשכול ה-bootstrap, הפלט שמופיע דומה לזה:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
יצירת אשכול הניהול
בחלון טרמינל חדש, מוודאים שאשכול ה-bootstrap רשום כחבר ב-fleet:
gcloud container fleet memberships list \ --project=PROJECT_IDהפקודה
gcloud container bare-metal admin-clusters createבשלב הבא תלויה בזמינות של אשכול ה-bootstrap. הפקודהbmctl register bootstrapבחלון הטרמינל השני צריכה לפעול במשך כמה דקות לפני שאשכול ה-bootstrap יופיע כחבר רשום. אם אחרי כמה דקות הוא עדיין לא מופיע, בודקים את השם של אשכול ה-bootstrap ואת מזהה הפרויקט שבהם השתמשתם. אם אתם צריכים לשנות את שם אשכול ה-bootstrap או את מזהה הפרויקט, הזינוCtrl-Cבחלון הטרמינל השני כדי לצאת מ-bmctl register bootstrapולהריץ מחדש את הפקודה.יוצרים את אשכול האדמין עם מאזן העומסים המצורף:
חשוב לוודא שהערכים שאתם מציינים תואמים למשתני הסביבה שציינתם קודם לסקריפט.
gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --version=BMCTL_VERSION \ --max-pods-per-node=110 \ --control-plane-vip=10.200.0.48 \ --control-plane-load-balancer-port=443 \ --control-plane-node-configs node-ip=10.200.0.3 \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disksבפקודה הזו:
--control-plane-vip: מוגדר לערך10.200.0.48. זוהי כתובת ה-IP הווירטואלית (VIP) במאזן העומסים של שרת ה-API של Kubernetes באשכול.
--control-plane-node-configs: הערך שלnode-ipהוא10.200.0.3. זוהי כתובת ה-IP של המכונה הווירטואלית שלabm-admin-cluster-cpב-VXLAN שנוצרה על ידי הסקריפט.
רשימה מלאה של הדגלים והתיאורים שלהם מופיעה בחומר העזר של ה-CLI של gcloud.
הפלט של הפקודה אמור להיראות כך:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
בפלט לדוגמה, המחרוזת
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179היא ה-OPERATION_IDשל הפעולה שרצה לאורך זמן. כדי לבדוק את סטטוס הפעולה, אפשר להריץ את הפקודה הבאה בחלון טרמינל אחר:gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGIONכשהפקודה
gcloud container bare-metal admin-clusters createמסתיימת, הפלט אמור להיראות כך:Created Anthos on bare metal Admin Cluster [https://gkeonprem.googleapis.com/v1/projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-gcloud-001]. NAME LOCATION VERSION MEMBERSHIP STATE abm-cluster-1 us-central1 1.31.300-gke.81 abm-cluster-1 RUNNINGכשיוצרים את אשכול האדמין, אשכול ה-bootstrap בתחנת העבודה של האדמין נמחק. הפלט של הפקודה
bmctl register bootstrapבחלון הטרמינל השני אמור להיראות כך:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
אימות של אשכול האדמין
קובץ ה-kubeconfig של אשכול האדמין נמצא בתחנת העבודה של האדמין בספרייה bmctl-workspace של חשבון הבסיס. כדי לאמת את הפריסה, מבצעים את השלבים הבאים:
משתמשים ב-SSH כדי לגשת לתחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEמוודאים שאשכול האדמין נוצר ופועל:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodesהפלט אמור להיראות כך:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81כשמסיימים, מזינים
exitכדי להתנתק מתחנת העבודה של האדמין.
Terraform
כדי לבצע את ההוראות הבאות, צריך שני חלונות טרמינל. בחלון טרמינל אחד, מריצים את bmctl register bootstrap כדי ליצור אשכול אתחול. בזמן שהפקודה bmctl register bootstrap פועלת, מריצים את פקודות Terraform בחלון טרמינל אחר כדי ליצור את אשכול האדמין.
שינוי קובצי דוגמה של אשכולות משתמשים כדי שיפעלו באשכול אדמין
המאגר anthos-samples לא כולל דוגמה ספציפית ליצירת אשכול אדמין ב-Google Distributed Cloud. בשלבים הבאים מוסבר איך ליצור אשכול אדמין על ידי שינוי של דוגמת Terraform קיימת של אשכול משתמש.
בספרייה שבה שכפלתם את
anthos-samples, מריצים את הפקודה הבאה כדי להעתיק את הקבצים לדוגמה של אשכול המשתמשים של MetalLB לתיקייה חדשה של אשכול האדמין:cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \ anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basicעוברים לספרייה
abm_admin_cluster_basic:cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basicעורכים את קובצי Terraform:
variables.tf:מגדירים משתנה לכתובות ה-IP של צומת מישור הבקרה (למרות שבהדגמה הזו אנחנו משתמשים רק באחת). המשתנה הזה צריך להיות דומה לרשומה
variable "control_plane_ips" { ... }.מגדירים משתנה לכתובת ה-VIP של מישור הבקרה. המשתנה הזה צריך להיות דומה לרשומה
variable "control_plane_vip" { ... }.
terraform.tfvars:מקצים ערכים למשתנים של הגדרות אשכול הניהול הבאות:
כתובות ה-IP של צומת מישור הבקרה:
10.200.0.3כתובת ה-VIP של מישור הבקרה:
10.200.0.48
main.tf:מחליפים את המשאב
google_gkeonprem_bare_metal_clusterבמשאבgoogle_gkeonprem_bare_metal_admin_cluster.מוחקים את המשאב
google_gkeonprem_bare_metal_node_poolואת הקטעlifecycleשקשור אליו.מעדכנים את המשאב כדי להשתמש במשתנים החדשים שהוגדרו.
כך נראה קובץ
main.tfאחרי שערכו אותו כדי ליצור אשכול אדמין:/** * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #[START anthos_onprem_terraform_bare_metal_admin_cluster_basic_main] module "enable_google_apis_primary" { source = "terraform-google-modules/project-factory/google//modules/project_services" version = "~> 14.0" project_id = var.project_id activate_apis = [ "anthos.googleapis.com", "anthosaudit.googleapis.com", "anthosgke.googleapis.com", "cloudresourcemanager.googleapis.com", "compute.googleapis.com", "connectgateway.googleapis.com", "container.googleapis.com", "file.googleapis.com", "gkehub.googleapis.com", "iam.googleapis.com", "kubernetesmetadata.googleapis.com", "logging.googleapis.com", "monitoring.googleapis.com", "opsconfigmonitoring.googleapis.com", "serviceusage.googleapis.com", "stackdriver.googleapis.com" ] disable_services_on_destroy = false } # Enable GKE OnPrem API resource "google_project_service" "default" { project = var.project_id service = "gkeonprem.googleapis.com" disable_on_destroy = false } # Create a baremetal admin cluster and enroll it with the gkeonprem API resource "google_gkeonprem_bare_metal_admin_cluster" "admin-cluster-basic" { name = var.admin_cluster_name description = "Bare metal admin cluster" provider = google depends_on = [google_project_service.default] location = var.region bare_metal_version = var.bare_metal_version network_config { island_mode_cidr { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] } } node_config { max_pods_per_node = 250 } control_plane { control_plane_node_pool_config { node_pool_config { operating_system = "LINUX" dynamic "node_configs" { for_each = var.admin_cp_ips content { node_ip = node_configs.value } } } } } load_balancer { port_config { control_plane_load_balancer_port = 443 } vip_config { control_plane_vip = var.admin_cp_vip } } storage { lvp_share_config { lvp_config { path = "/mnt/localpv-share" storage_class = "local-shared" } shared_path_pv_count = 5 } lvp_node_mounts_config { path = "/mnt/localpv-disk" storage_class = "local-disks" } } dynamic "security_config" { for_each = length(var.admin_user_emails) == 0 ? [] : [1] content { authorization { dynamic "admin_users" { for_each = var.admin_user_emails content { username = admin_users.value } } } } } lifecycle { ignore_changes = [ annotations["onprem.cluster.gke.io/user-cluster-resource-link"], annotations["alpha.baremetal.cluster.gke.io/cluster-metrics-webhook"], annotations["baremetal.cluster.gke.io/operation"], annotations["baremetal.cluster.gke.io/operation-id"], annotations["baremetal.cluster.gke.io/start-time"], annotations["baremetal.cluster.gke.io/upgrade-from-version"] ] } } #[END anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]למידע נוסף על המשאב של Terraform לאשכולות אדמין, ראו google_gkeonprem_bare_metal_admin_cluster במרשם של Terraform.
יצירת אשכול ה-bootstrap
כשמשתמשים בלקוח API של GKE On-Prem, כמו Terraform, כדי ליצור אשכול אדמין, צריך ליצור אשכול אתחול בתחנת העבודה של האדמין. אשכול ה-bootstrap מארח את בקרי Kubernetes שנדרשים כדי ליצור את אשכול האדמין.
משורת הפקודה, משתמשים ב-SSH כדי לגשת למכונה הווירטואלית של תחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEאפשר להתעלם מהודעות לגבי עדכון ה-VM ולהשלים את המדריך הזה. אם אתם מתכננים להשאיר את המכונות הווירטואליות כסביבת בדיקה, יכול להיות שתרצו לעדכן את מערכת ההפעלה או לשדרג לגרסה הבאה, כמו שמתואר במסמכי התיעוד של Ubuntu.
מגדירים את פרטי הכניסה של המשתמש כ-Application Default Credentials (ADC):
gcloud auth application-default loginפועלים לפי ההנחיות כדי לבחור את חשבון Google ל-ADC.
עוברים לספרייה
baremetal/ומריצים את הפקודה הבאה כדי ליצור את אשכול ה-bootstrap.שם אשכול ה-bootstrap נגזר מהוספת
bootstrap-לפני שם אשכול האדמין.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_IDאחרי ש-
bmctlיוצר בהצלחה את אשכול ה-bootstrap, הפלט שמופיע דומה לזה:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
יצירת אשכול הניהול
מאתחלים ויוצרים את התוכנית ב-Terraform:
terraform initTerraform מתקין את כל הספריות הנדרשות, כמו הספק Google Cloud .
בודקים את ההגדרות ומשנים אותן לפי הצורך:
terraform planמחילים את התוכנית של Terraform כדי ליצור את אשכול האדמין:
terraform applyיצירת אשכול האדמין נמשכת 15 דקות או יותר. בסיום יצירת האשכול, תופיע הודעה כמו זו:
... google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Still creating... [20m10s elapsed] google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Creation complete after 20m11s [id=projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-terra002] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.אחרי שיוצרים את אשכול האדמין, אשכול ה-bootstrap בתחנת העבודה של האדמין נמחק. הפלט של הפקודה
bmctl register bootstrapבחלון הטרמינל השני אמור להיראות כך:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.במסוף, נכנסים לדף אשכולות GKE.
מוודאים שהפרויקט שבו יצרתם את אשכול המשתמשים נבחר. אשכול האדמין אמור להופיע ברשימה.
נכנסים לאשכול האדמין:
לוחצים על הקישור של שם האשכול, ובחלונית הצדדית לוחצים על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
אימות של אשכול האדמין
קובץ ה-kubeconfig של אשכול האדמין נמצא בתחנת העבודה של האדמין בספרייה bmctl-workspace של חשבון הבסיס. כדי לאמת את הפריסה, מבצעים את השלבים הבאים:
משתמשים ב-SSH כדי לגשת לתחנת העבודה של האדמין בתור משתמש root:
gcloud compute ssh root@abm-ws --zone ZONEמוודאים שאשכול האדמין נוצר ופועל:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodesהפלט אמור להיראות כך:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81כשמסיימים, מזינים
exitכדי להתנתק מתחנת העבודה של האדמין.
4. יצירת אשכול המשתמשים
כדי ליצור את אשכול המשתמש, אתם יכולים להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-Terraform. כדי לפשט את התהליך, השתמשו ב-abm-user-cluster-metallb כשם של אשכול המשתמש, כך שיתאים לשם שמוגדר בתוך הקוד בסקריפטים של Terraform.
bmctl
משתמשים ב-SSH כדי לגשת למכונה הווירטואלית של תחנת העבודה של האדמין,
abm-ws, כמשתמש root:gcloud compute ssh root@abm-ws --zone ZONEיוצרים קובץ תצורה של אשכול:
bmctl create config -c abm-user-cluster-metallb \ --project-id=PROJECT_ID
בקובץ התצורה הבא של אשכול המשתמשים, מגדירים את כתובת האימייל בקטע
clusterSecurityומאמתים את שאר ההגדרות:קובץ התצורה הבא של האשכול מכיל את הערכים שהזנתם בטבלת התכנון בשלב הקודם. בנוסף לערכים שהזנתם, שימו לב להבדלים הבאים מקובץ התצורה שנוצר:
- ההערות הוסרו מהדוגמה הזו כדי לשפר את הקריאוּת.
- הקטע של פרטי הכניסה הוסר, כמו שקורה בדרך כלל באשכולות של משתמשים.
- סוג האשכול,
spec.type, הוגדר כ-user. - השדה
spec.clusterSecurity.authorization.clusterAdmin.gcpAccountsנוסף כדי להקצות לחשבון את התפקידclusterrole/cluster-admin. בין השאר, השדה הזה מאפשר לכם להיכנס לאשכול במסוףGoogle Cloud כדי לראות פרטים נוספים על האשכול.
--- apiVersion: v1 kind: Namespace metadata: name: cluster-abm-user-cluster-metallb --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: abm-user-cluster-metallb namespace: cluster-abm-user-cluster-metallb spec: type: user profile: default anthosBareMetalVersion: BMCTL_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: 10.200.0.4 clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: 10.200.0.50 ingressVIP: 10.200.0.51 addressPools: - name: pool1 addresses: - 10.200.0.51-10.200.0.70 clusterOperations: projectID: PROJECT_ID location: ON_PREM_API_REGION clusterSecurity: authorization: clusterAdmin: gcpAccounts: - YOUR_EMAIL_ADDRESS storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 250 --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-abm-user-cluster-metallb spec: clusterName: abm-user-cluster-metallb nodes: - address: 10.200.0.5מחליפים את התוכן של קובץ התצורה שנוצר בתחנת העבודה של האדמין בתוכן מהדוגמה שלמעלה.
פותחים את הקובץ שנוצר,
bmctl-workspace/abm-user-cluster-metallb/abm-user-cluster-metallb.yaml, ומחליפים את התוכן שלו בתוכן של הקובץ לדוגמה שאימתתם בשלב הקודם.יוצרים את אשכול המשתמשים:
bmctl create cluster -c abm-user-cluster-metallb \ --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
הפקודה
bmctlמציגה פלט במסך בזמן שהיא מריצה בדיקות מקדימות ויוצרת את האשכול. מידע מפורט נכתב ביומנים בתיקייהbaremetal/bmctl-workspace/abm-user-cluster-metallb/logבתחנת העבודה של האדמין.יצירת האשכול יכולה להימשך כמה דקות.
במסוף Google Cloud , נכנסים לדף אשכולות GKE.
מוודאים שהפרויקט שבו יצרתם את אשכול המשתמשים נבחר. אשכול האדמין ואשכול המשתמש אמורים להופיע ברשימה.
נכנסים לאשכול המשתמשים:
לוחצים על הקישור של שם האשכול, ובחלונית הצדדית לוחצים על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
חוזרים על אותם שלבים כדי להיכנס לאשכול האדמין.
המסוף
כדי ליצור אשכול משתמשים במסוף:
במסוף, נכנסים לדף Create a bare metal cluster.
מוודאים שבחרתם את הפרויקט ב- Google Cloud שבו יצרתם את אשכול האדמין.
לוחצים על Create Cluster.
בתיבת הדו-שיח, לוחצים על On-premises.
לצד Bare metal, לוחצים על Configure. הדף Prerequisites ייפתח.
בקטע Choose your cluster type, בוחרים באפשרות Create a user cluster for an existing admin cluster.
לוחצים על הבא.
מידע בסיסי על אשכולות
מזינים שם לאשכול המשתמש או משתמשים בברירת המחדל.
מוודאים שאשכול האדמין החדש שנוצר נבחר. אפשר להשתמש בערכי ברירת המחדל בשאר ההגדרות בדף הזה.
בסרגל הניווט הימני, לוחצים על Networking.
Networking
הסקריפט שהרצתם כדי ליצור את המכונות הווירטואליות ואת אשכול האדמין יצר גם VXLAN בשכבה 2 עם כתובות IP ברשת המשנה 10.200.0.0/24.
בקטע מישור הבקרה, מזינים את הפרטים הבאים בשדה Control plane node IP 1:
10.200.0.4זוהי כתובת ה-IP של המכונה הווירטואלית של
abm-user-cluster-cp1ב-VXLAN שנוצרה על ידי הסקריפט.בקטע Load balancer, משתמשים במאזן העומסים שמוגדר כברירת מחדל, Bundled with MetalLB.
בקטע New address pool, מזינים את טווח כתובות ה-IP הבא בשדה IP address range 1:
10.200.0.51-10.200.0.70לוחצים על סיום.
בקטע Virtual IPs, מזינים את כתובת ה-IP הבאה בשדה Control Plane VIP:
10.200.0.50מזינים את כתובת ה-IP הבאה בשדה Ingress VIP:
10.200.0.51משתמשים בכתובות ה-IP שמוגדרות כברירת מחדל בקטע Service and Pod CIDRs.
בסרגל הניווט הימני, לוחצים על default pool (מאגר ברירת המחדל).
יצירת מאגר צמתים
באשכול המשתמשים צריך להיות לפחות מאגר צמתים אחד עבור צומתי עובדים.
מזינים את כתובת ה-IP הבאה בשדה Nodes address 1:
10.200.0.5זו כתובת ה-IP של המכונה הווירטואלית abm-user-cluster-w1 ב-VXLAN שנוצר על ידי הסקריפט.
יצירת האשכול
לוחצים על Verify and Create כדי ליצור את אשכול המשתמשים.
יצירת אשכול המשתמשים נמשכת 15 דקות או יותר. במסוף יוצגו הודעות סטטוס בזמן אימות ההגדרות ויצירת האשכול.
אם יש בעיה בהגדרה, במסוף תוצג הודעת שגיאה שאמורה להיות ברורה מספיק כדי שתוכלו לתקן את הבעיה בהגדרה ולנסות שוב ליצור את האשכול.
כדי לראות מידע נוסף על תהליך היצירה, לוחצים על Show details כדי להציג חלונית צדדית. לוחצים על כדי לסגור את חלונית הפרטים.
אחרי שהאשכול נוצר, מוצג הסטטוס Cluster status: running.
אחרי שהאשכול נוצר, לוחצים על Clusters כדי לחזור לדף Clusters.
נכנסים לאשכול המשתמשים:
לוחצים על הקישור של שם האשכול, ובחלונית הצדדית לוחצים על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
חוזרים על אותם שלבים כדי להיכנס לאשכול האדמין.
CLI של gcloud
כדי ליצור את אשכול המשתמשים:
מריצים את הפקודה הבאה כדי ליצור את אשכול המשתמש:
gcloud container bare-metal clusters create abm-user-cluster-metallb \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/ON_PREM_API_REGION/memberships/ADMIN_CLUSTER_NAME \ --location=ON_PREM_API_REGION \ --version=BMCTL_VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=10.200.0.51-10.200.0.70' \ --control-plane-node-configs='node-ip=10.200.0.4' \ --control-plane-vip=10.200.0.50 \ --control-plane-load-balancer-port=443 \ --ingress-vip=10.200.0.51 \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disksאחרי הרצת הפקודה, הפלט אמור להיראות כך:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678304606537-5f668bde5c57e-341effde-b612ff8a] to complete...בפלט לדוגמה, המחרוזת
operation-1678304606537-5f668bde5c57e-341effde-b612ff8aהיא ה-OPERATION_IDשל הפעולה שרצה לאורך זמן.כדי לברר את סטטוס הפעולה, פותחים חלון טרמינל נוסף ומריצים את הפקודה.
gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGIONמחליפים את
OPERATION_IDבמחרוזת המתאימה מהפלט של השלב הקודם.יצירת האשכול נמשכת כ-15 דקות או יותר. בזמן שהאשכול נוצר, אתם יכולים להריץ את הפקודה הקודמת מדי פעם כדי לקבל את הסטטוס הנוכחי.
אחרי שהאשכול נוצר, הפלט אמור להיראות כך:
Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb].
למידע נוסף על הפקודה
gcloud container bare-metal clusters create, כולל תיאורים של כל דגל, קראו את הדף container bare-metal clusters create בנושא המשאב clusters במדריך העזר ל-CLI של gcloud.
יצירת מאגר צמתים
אחרי שיוצרים את האשכול, אפשר ליצור מאגר צמתים לאשכול.
כדי ליצור מאגר צמתים:
מריצים את הפקודה הבאה כדי ליצור מאגר צמתים:
gcloud container bare-metal node-pools create NODE_POOL_NAME \ --cluster=abm-user-cluster-metallb \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --node-configs='node-ip=10.200.0.5'מחליפים את
NODE_POOL_NAMEבשם של מאגר הצמתים.אחרי הרצת הפקודה, הפלט אמור להיראות כך:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...יצירת מאגר הצמתים נמשכת כ-5 דקות או פחות. אחרי שמאגר הצמתים נוצר, מופיע פלט כמו זה:
Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb/bareMetalNodePools/NODE_POOL_NAME].נכנסים לדף Kubernetes clusters במסוף:
כניסה לדף Create a bare metal cluster
מוודאים שהפרויקט שבו יצרתם את אשכול המשתמשים נבחר. אשכול האדמין ואשכול המשתמש אמורים להופיע ברשימה.
נכנסים לאשכול המשתמשים:
לוחצים על הקישור של שם האשכול, ובחלונית הצדדית לוחצים על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
חוזרים על אותם שלבים כדי להיכנס לאשכול האדמין.
Terraform
אתם יכולים להשתמש בדוגמה הבאה להגדרה בסיסית כדי ליצור אשכול משתמש עם מאזן עומסים מקובץ של MetalLB. למידע נוסף, ראו את מאמרי העזרה של google_gkeonprem_bare_metal_cluster.
בספרייה שבה שכפלתם את
anthos-samples, עוברים לספרייה שבה נמצאת הדוגמה של Terraform:cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallbהדוגמה כוללת קובץ משתנים לדוגמה שאפשר להעביר אל
main.tf.יוצרים עותק של הקובץ
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsבודקים את הערכים בדוגמה הבאה.
קובץ המשתנים הבא של Terraform,
terraform.tfvars.sample, מכיל כתובות IP וערכים שהזנתם בקטעים הקודמים במדריך הזה.מחליפים את
ADMIN_2_EMAIL_ADDRESSבכתובת אימייל שמשויכת לחשבון Google Cloud , או מסירים אותה כשעורכים את קובץ המשתנים.למידע נוסף על הארגומנטים בדוגמה הזו שעבורם אתם מגדירים משתנים, ראו הפניה לארגומנט במסמכי התיעוד של Terraform לאשכולות משתמשים ב-bare metal.
מחליפים את התוכן של העותק של קובץ המשתנים בתוכן מהדוגמה שלמעלה.
מאתחלים ויוצרים את התוכנית ב-Terraform:
terraform initTerraform מתקין את כל הספריות הנדרשות, כמו הספק Google Cloud .
בודקים את ההגדרות ומשנים אותן לפי הצורך:
terraform planמפעילים את התוכנית של Terraform כדי ליצור את אשכול המשתמש:
terraform applyיצירת אשכול המשתמשים נמשכת 15 דקות או יותר. אפשר לראות את אשכול ה-GKE בדף GKE clusters במסוף Google Cloud .
במסוף Google Cloud , נכנסים לדף אשכולות GKE.
מוודאים שהפרויקט שבו יצרתם את אשכול המשתמשים נבחר. אשכול האדמין ואשכול המשתמש אמורים להופיע ברשימה.
נכנסים לאשכול המשתמשים:
לוחצים על הקישור של שם האשכול, ובחלונית הצדדית לוחצים על Login.
בוחרים באפשרות Use your Google identity to log in.
לוחצים על Login (התחברות).
חוזרים על אותם שלבים כדי להיכנס לאשכול האדמין.
5. הסרת המשאבים
כדי להסיר את האשכולות והמכונות הווירטואליות שיצרתם באמצעות המדריך הזה, צריך לפעול לפי ההוראות הבאות.
מחיקת אשכול המשתמשים
bmctl
כדי למחוק את אשכול המשתמשים באמצעות
bmctl, מריצים את הפקודה הבאה מהמכונה הווירטואלית של תחנת העבודה של האדמין,abm-ws:bmctl reset \ --cluster abm-user-cluster-metallb \ --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
המסוף
נכנסים לדף אשכולות GKE במסוף.
ברשימת האשכולות, לוחצים על אשכול המשתמשים.
בחלונית פרטים, לוחצים על הצגת פרטים נוספים.
בחלק העליון של החלון, לוחצים על מחיקה.
כשמופיעה בקשה לאישור, מזינים את שם האשכול ולוחצים על Delete.
לוחצים על בפינה הימנית העליונה כדי לראות את סטטוס המחיקה. יכול להיות שתצטרכו לרענן את הדף כדי לעדכן את רשימת האשכולות.
CLI של gcloud
מוחקים את האשכול:
gcloud container bare-metal clusters delete abm-user-cluster-metallb \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --forceהדגל
--forceמאפשר למחוק אשכול שיש בו מאגרי צמתים. בלי הדגל--force, צריך קודם למחוק את מאגרי הצמתים ואז למחוק את האשכול.
למידע על דגלים אחרים, ראו gcloud container bare-metal clusters delete.
Terraform
הפקודה terraform destroy מסיימת את המשאבים שנוצרו כשהרצתם את terraform apply כדי ליצור את אשכול המשתמשים.
מריצים את הפקודה הבאה מהספרייה שבה נמצאים הקבצים לדוגמה של אשכול המשתמשים ב-Terraform, כמו
main.tf:terraform destroy
צריך להמתין עד שאשכול המשתמש יימחק לפני שמוחקים את אשכול האדמין ואת המכונות הווירטואליות.
מחיקת אשכול האדמין והמכונות הווירטואליות
מבטלים את הרישום של אשכול האדמין מ-GKE On-Prem API:
gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGIONמתחברים לתחנת העבודה של האדמין:
gcloud compute ssh root@abm-ws --zone ZONEמוחקים את אשכול האדמין:
bmctl reset -c ADMIN_CLUSTER_NAME
bmctlמבטל את הרישום של האשכול מה-fleet ואז מוחק את האשכול. צריך להמתין עד שהאשכול יימחק לפני שמוחקים את המכונות הווירטואליות.יוצאים מתחנת העבודה של האדמין:
exitרשימה של כל המכונות הווירטואליות שהשם שלהן מכיל את
abm:gcloud compute instances list | grep 'abm'מוודאים שאתם רוצים למחוק את כל המכונות הווירטואליות שהשם שלהן מכיל את
abm.אחרי האימות, אפשר למחוק את המכונות הווירטואליות של
abmבאמצעות הפקודה הבאה:gcloud compute instances list --format="value(name)" | \ grep 'abm' | \ xargs gcloud compute instances delete --quiet --zone ZONEמריצים את הפקודה הבאה כדי למחוק את חשבון השירות, וכשמופיעה בקשה, מזינים
y:gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.comהמאמרים הבאים
כדי להתחיל ליצור אשכולות בחומרה שלכם, קראו את המאמרים תכנון התקנה בסיסית בחומרה ויצירת אשכולות בסיסיים בחומרה.
לדרישות התקנה מפורטות, ראו סקירה כללית של דרישות מוקדמות להתקנה.
מידע נוסף על ההתקנה זמין במאמר סקירה כללית על יצירת אשכולות.
הוראות לפריסה באשכול מפורטות במאמר פריסת אפליקציה.