בדף הזה מוסבר על Google Cloud המשאבים שצריך ליצור ולהגדיר לפני שיוצרים אשכולות.
לפני שמתחילים
יוצרים פרויקט Google Cloud וחשבון לחיוב.
אם אתם לא Google Cloud בעלי הפרויקט, בקשו מבעלי הפרויקט להקצות לכם את התפקידים הבאים בממשק לניהול הזהויות והרשאות הגישה (IAM):
תפקיד מטרה roles/compute.viewer חובה: נדרש כש- bmctlמאמת את השדה clusterOperations.location בקובץ התצורה של האשכול.roles/iam.serviceAccountAdmin נדרש: צריך אותו כדי ליצור את חשבונות השירות שנדרשים ל-Google Distributed Cloud. roles/iam.securityAdmin חובה: נדרש כדי להקצות תפקידי IAM לחשבונות השירות שנדרשים ל-Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin נדרש: צריך ליצור קובצי מפתח JSON לחשבונות השירות שנדרשים ל-Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin נדרשת: צריך להשתמש בה כדי להפעיל את ממשקי Google API שנדרשים ל-Google Distributed Cloud. roles/gkeonprem.admin אופציונלי: נדרש אם רוצים ליצור אשכולות באמצעות לקוחות GKE On-Prem API או להגדיר אשכול לניהול על ידי GKE On-Prem API. roles/gkehub.viewer
roles/container.viewerאופציונלי: נדרשת אם רוצים לגשת לדפי GKE במסוף Google Cloud . מידע על הקצאת התפקידים מופיע במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים.
הפעלת ממשקי ה-API
צריך להפעיל כמה Google APIs בפרויקט המשויך ב- Google Cloud . מערכת Google Distributed Cloud משתמשת בממשקי ה-API האלה כשהיא יוצרת אשכולות. בנוסף, צריך את ממשקי ה-API כדי לשמור על חיבור ל- Google Cloud. החיבור אל Google Cloud מאפשר ל-Google Distributed Cloud להשתמש ב-Cloud Logging וב-Cloud Monitoring, ובתכונות של צי כמו Cloud Service Mesh, סנכרון תצורות, Policy Controller ו-Config Controller.
אם אתם מתכוונים להשתמש בכלי bmctl כדי ליצור אשכולות, אתם יכולים לכלול את הדגל --enable-apis כשאתם מריצים את הפקודה bmctl create config, וכלי bmctl יפעיל את ממשקי ה-API שמפורטים בפקודה gcloud services enable הבאה. אם אתם מתכוונים להשתמש בלקוח GKE On-Prem API כדי ליצור אשכול אדמין או אשכול משתמשים, אתם צריכים להפעיל את ממשקי ה-API לפני שיוצרים את האשכול.
כדי להפעיל את ממשקי ה-API, מריצים את הפקודות הבאות:
מתחברים ל-Google Cloud CLI:
gcloud auth login
מפעילים את ממשקי ה-API הבאים:
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ compute.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ kubernetesmetadata.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ storage.googleapis.comלמעט
gkeonprem.googleapis.com, ממשקי ה-API האלה של Google נדרשים לפרויקט שלכם. ממשקי ה-API הבאים נדרשים רק בגרסה 1.29 ואילך:compute.googleapis.comkubernetesmetadata.googleapis.com
אם מתקינים את האשכולות מאחורי שרת proxy, צריך להוסיף הרבה מממשקי ה-API האלה לרשימת החיבורים המותרים. רשימה של ממשקי API ונקודות קצה שצריך להוסיף לרשימת ההיתרים, וההסבר לגישה שלהם, מופיעה במאמר התקנה מאחורי שרת proxy .
כדי לראות אילו ממשקי API ושירותים מופעלים בפרויקט, מריצים את הפקודה הבאה:
gcloud services list --project=PROJECT_ID \ --enabled
הגדרת חשבונות שירות
כדי להשתמש ב-Google APIs, צריך ב-Google Distributed Cloud חשבון שירות שמוגדר עם תפקידי IAM ספציפיים בפרויקט המשויך Google Cloud . מומלץ ליצור חשבונות שירות נפרדים למטרות שונות, במיוחד בסביבות ייצור.
אם אתם משתמשים בכלי bmctl כדי ליצור אשכולות, אתם יכולים לכלול את הדגל --create-service-accounts כשאתם מריצים את הפקודה bmctl create config כדי ש-bmctl ייצור את חשבונות השירות עם תפקידי ה-IAM הנדרשים.
אם אתם משתמשים בלקוח GKE On-Prem API כדי ליצור אשכול אדמין, כברירת מחדל הפקודה bmctl register bootstrap יוצרת את חשבונות השירות עם תפקידי ה-IAM הנדרשים כשמריצים את הפקודה כדי ליצור אשכול bootstrap.
חשבונות השירות נדרשים גם ליצירת אשכול משתמשים, אבל הם נוצרים ומוגדרים כשיוצרים את אשכול האדמין שמנהל את אשכולות המשתמשים.
בטבלה הבאה מפורטים חשבונות השירות שנוצרים באופן אוטומטי:
| חשבון שירות | מטרה | תפקידים |
|---|---|---|
| anthos-baremetal-gcr | Google Distributed Cloud משתמש בחשבון השירות הזה כדי להוריד קובצי אימג' של קונטיינרים מ-Artifact Registry. | ללא |
| anthos-baremetal-connect | Connect Agent משתמש בחשבון השירות הזה כדי לשמור על חיבור בין האשכול לבין Google Cloud. כך מקבלים גישה לאשכול ולתכונות של ניהול עומסי עבודה, כולל מסוף Google Cloud ושער חיבור, כדי לקיים אינטראקציה עם האשכול. | roles/gkehub.connect |
| anthos-baremetal-register | הסוכן Connect משתמש בחשבון השירות הזה כדי לרשום את האשכולות שלכם ב צי. | roles/gkehub.admin |
| anthos-baremetal-cloud-ops | סוכן Stackdriver משתמש בחשבון השירות הזה כדי לייצא יומנים ומדדים מאשכולות אל Cloud Logging וCloud Monitoring. |
roles/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer roles/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher |
הגדרה ידנית של חשבונות שירות
אם אתם מעדיפים, אתם יכולים ליצור את חשבונות השירות באופן ידני, להגדיר אותם עם התפקידים הנדרשים ולהוריד קובצי מפתח JSON לפני שאתם יוצרים אשכולות.
אם אתם משתמשים ב-bmctl כדי ליצור אשכולות, אתם מוסיפים הפניות לקובצי מפתחות JSON לקובץ ההגדרות המתאים של האשכול. דוגמה מופיעה במאמר עריכת קובץ תצורה.
אם אתם משתמשים ב-GKE On-Prem API כדי ליצור אשכול אדמין, אתם יכולים לציין את קובצי המפתח כשאתם מריצים את הפקודה bmctl register bootstrap כדי ליצור את אשכול ה-bootstrap.
כדי ליצור את חשבונות השירות ואת קובצי המפתחות:
בוודאים שאתם נמצאים בספרייה
baremetalבתחנת העבודה של האדמין.אם עדיין לא עשיתם זאת, נכנסים אל Google Cloud CLI:
gcloud auth login
יוצרים את חשבונות השירות:
gcloud iam service-accounts create anthos-baremetal-gcr \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-connect \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-register \ --project=PROJECT_ID gcloud iam service-accounts create anthos-baremetal-cloud-ops \ --project=PROJECT_IDמקצים לחשבונות השירות את תפקידי ה-IAM הנדרשים:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/gkehub.connect" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/stackdriver.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.viewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/serviceusage.serviceUsageViewer" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/kubernetesmetadata.publisher"מורידים את קובצי מפתחות ה-JSON של חשבון השירות:
gcloud iam service-accounts keys create anthos-baremetal-gcr.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-agent.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create connect-register.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create anthos-baremetal-cloud-ops.json \ --project=PROJECT_ID \ --iam-account=anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
הגדרת חשבון שירות שיכול לגשת לקטגוריה של Cloud Storage
אתם משתמשים בחשבון שירות ובקובץ מפתח כדי לגשת ל-Cloud Storage. אתם יכולים להשתמש בחשבון השירות הזה כדי להפעיל העלאה אוטומטית של תמונות מצב של אשכולות לקטגוריות של Cloud Storage, או כדי לייבא תמונות של מכונות וירטואליות (VM) מקטגוריות של Cloud Storage לשימוש עם VM Runtime ב-GDC.
כדי ליצור את חשבון השירות ואת קובץ המפתח, פועלים לפי השלבים הבאים:
חשוב לוודא שאתם נמצאים בספרייה
baremetal.אם עדיין לא עשיתם זאת, נכנסים אל Google Cloud CLI:
gcloud auth loginאם הוא לא מופעל, מפעילים את Cloud Storage API,
storage.googleapis.comבפרויקט Google Cloud :gcloud services enable --project=PROJECT_ID \ storage.googleapis.comיוצרים חשבון שירות שהאשכול יכול להשתמש בו כדי לגשת לקטגוריות של Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_IDמחליפים את
SA_NAMEבשם של חשבון השירות החדש. השם של חשבון השירות מופיע בכתובת האימייל שמוקצית במהלך היצירה, בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.com.יוצרים תפקיד בהתאמה אישית עם ההרשאות הבאות:
storage.buckets.createstorage.buckets.getstorage.buckets.liststorage.objects.createresourcemanager.projects.get
gcloud iam roles create ROLE_ID \ --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \ --project=PROJECT_IDמחליפים את
ROLE_IDבשם של התפקיד החדש בהתאמה אישית, למשלsnapshotUpload. הנתיב המלא של התפקיד המותאם אישית הזה הוא בפורמטprojects/PROJECT_ID/roles/ROLE_ID.מוסיפים קישור מדיניות לחשבון השירות:
gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role='projects/PROJECT_ID/roles/ROLE_ID'מורידים את קובץ ה-JSON של מפתח חשבון השירות:
gcloud iam service-accounts keys create OUTPUT_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
מידע נוסף על יצירת תמונות מצב של אשכולות והעלאה אוטומטית שלהן לקטגוריה של Cloud Storage זמין במאמר יצירת תמונות מצב כדי לאבחן בעיות באשכולות.
מידע נוסף על ייבוא תמונות של מכונות וירטואליות מ-Cloud Storage זמין במאמר יצירה ושימוש בפרטי כניסה לייבוא תמונות מ-Cloud Storage ל-VM Runtime ב-GDC.