כדי להכין את הסביבה ליצירת אשכול, צריך להגדיר את המשאבים הנדרשים של Google Cloud . ההגדרה הזו יוצרת את חשבונות השירות, תפקידי ה-IAM וממשקי ה-API הנדרשים לפני פריסת האשכולות.
לפני שמתחילים
יוצרים פרויקט 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 חובה: כדי להפעיל את ממשקי ה-API של Google שנדרשים ל-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 API בפרויקט המשויך ב- Google Cloud . Google Distributed Cloud משתמש בממשקי ה-API כשיוצרים אשכולות. ממשקי ה-API נדרשים גם כדי לשמור על החיבור ל- Google Cloud. החיבור ל- Google Cloud מאפשר ל-Google Distributed Cloud להשתמש ב-Cloud Logging וב-Cloud Monitoring, ובתכונות של Fleet כמו 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 האלה לרשימת החיבורים המותרים. במאמר התקנה מאחורי שרת proxy מפורטת רשימה של ממשקי API ונקודות קצה שצריך להוסיף לרשימת ההיתרים, וגם הסיבה לכך שצריך לגשת אליהם.
כדי לראות אילו ממשקי 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 Agent משתמש בחשבון השירות הזה כדי לרשום את האשכולות שלכם ב צי. | 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. אתם יכולים להשתמש בחשבון השירות הזה כדי לאפשר העלאה אוטומטית של קובצי Snapshot של אשכולות לקטגוריות של 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
מידע נוסף על יצירת קובצי snapshot של אשכולות והעלאה אוטומטית שלהם לקטגוריה של Cloud Storage זמין במאמר יצירת קובצי snapshot כדי לאבחן בעיות באשכול.
למידע נוסף על ייבוא קובצי אימג' של מכונות וירטואליות מ-Cloud Storage, קראו את המאמר יצירת פרטי כניסה ושימוש בהם כדי לייבא קובצי אימג' מ-Cloud Storage ל-VM Runtime on GDC.