יצירת אשכול אדמין לתוכנת Google Distributed Cloud ל-VMware בלבד באמצעות gkectl. השתמשו ב-gkectl אם אתם צריכים לנהל את כל מחזור החיים של אשכול האדמין באופן מקומי בסביבה המקומית, כדי לעמוד בדרישות מחמירות של אבטחה, תאימות או air gap. אפשר גם ליצור אשכול אדמין באמצעות Terraform או מסוףGoogle Cloud .
לפני שמתחילים
מוודאים שהגדרתם את תחנת העבודה של האדמין ואתם יכולים להיכנס אליה, כמו שמתואר במאמר יצירת תחנת עבודה של אדמין.
מוודאים שקובצי המפתחות בפורמט JSON של חשבונות השירות נמצאים בתחנת העבודה של האדמין.
עיינו במסמך התכנון של כתובות IP. חשוב לוודא שיש מספיק כתובות IP זמינות לשלושת הצמתים של מישור הבקרה ולכתובת ה-VIP של מישור הבקרה. אם אתם מתכננים ליצור אשכולות משתמשים ב-kubeception, אתם צריכים לוודא שיש מספיק כתובות IP זמינות לצומתי מישור הבקרה של אשכולות המשתמשים האלה.
כדאי לקרוא את הסקירה הכללית על איזון עומסים ולבחון מחדש את ההחלטה לגבי סוג מאזן העומסים שבו רוצים להשתמש. במאזני עומסים ידניים, צריך להגדיר את מאזן העומסים לפני שיוצרים את אשכול האדמין.
אם אתם משתמשים ב-
gkectlכדי ליצור את אשכול האדמין, אתם צריכים להחליט אם להשתמש במרשם ציבורי או פרטי לרכיבים של Google Distributed Cloud. למידע על שימוש במרשם פרטי של Docker, ראוprivateRegistry. אי אפשר להשתמש במאגר פרטי של Docker לרכיבי מערכת ב-Terraform או במסוף Google Cloud .מחליטים איזה סוג של מערכת הפעלה רוצים להריץ בצמתים של אשכול האדמין.
אם הארגון שלכם דורש שתעבורת הנתונים היוצאת תעבור דרך שרת proxy, ודאו שהוספתם לרשימת ההיתרים את ממשקי ה-API הנדרשים ואת הכתובת של Artifact Registry.
בגרסה 1.29 ואילך, בדיקות מקדימות בצד השרת מופעלות כברירת מחדל. בדיקות מקדימות בצד השרת דורשות כללים נוספים של חומת האש. במאמר כללי חומת אש לאשכולות אדמין, חפשו את "בדיקות מקדימות" וודאו שכל כללי חומת האש הנדרשים מוגדרים. בדיקות מקדימות בצד השרת מופעלות באשכול ה-bootstrap במקום באופן מקומי בתחנת העבודה של האדמין.
סקירה כללית של התהליך
אלה השלבים העיקריים ליצירת אשכול אדמין:
ממלאים את קובצי התצורה. מציינים את הפרטים של קובץ התצורה החדש של פרטי הכניסה של האדמין, ואולי גם קובץ של חסימת כתובות IP.
מייבאים קובצי אימג' של מערכת ההפעלה ל-vSphere, ומעבירים בדחיפה קובצי אימג' של קונטיינרים למרשם הפרטי, אם רלוונטי. מריצים את
gkectl prepare.יוצרים אשכול אדמין. משתמשים ב-
gkectlכדי ליצור אשכול אדמין חדש, כמו שמצוין בקובצי התצורה שהושלמו. כשיוצרים אשכול אדמין ב-Google Distributed Cloud, נפרס אשכול Kubernetes in Docker (kind) כדי לארח באופן זמני את בקרי Kubernetes שנדרשים ליצירת אשכול האדמין. האשכול הזמני הזה נקרא אשכול אתחול. האדמין שמנהל את אשכולות המשתמשים יוצר ומשדרג אותם בלי להשתמש באשכול בוטסטראפ.מוודאים שאשכול האדמין פועל. משתמשים ב-
kubectlכדי להציג את הצמתים באשכול.
בסוף התהליך הזה, יהיה לכם אשכול אדמין פעיל שתוכלו להשתמש בו כדי ליצור ולנהל אשכולות של משתמשים.
אם אתם משתמשים ב-VPC Service Controls, יכול להיות שתראו שגיאות כשתריצו פקודות מסוימות של gkectl, כמו "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services". כדי להימנע מהשגיאות האלה, הוסיפו את הפרמטר --skip-validation-gcp לפקודות שלכם.
ממלאים את קובץ התצורה
מוודאים שבתחנת העבודה של האדמין מותקנת הגרסה הנדרשת של
gkectl. בדרך כלל משתמשים באותה גרסה שלgkectlכמו הגרסה שבה משתמשים כשיוצרים את האשכול. מציינים את גרסת האשכול בשדהgkeOnPremVersionבקובץ התצורה של האשכול. במהלך יצירת האשכול, המערכת אוכפת את כללי הגרסאות הבאים:הגרסה המשנית של
gkectlלא יכולה להיות נמוכה מהגרסה המשנית של האשכול. לדוגמה, אי אפשר ליצור אשכול בגרסה 1.30 באמצעותgkectlבגרסה 1.29. גרסאות התיקון לא משנות. לדוגמה, אתם יכולים להשתמש בגרסה 1.29.0-gke.1456 שלgkectlכדי ליצור אשכול עם גרסת תיקון גבוהה יותר, כמו 1.29.1000-gke.94.הגרסה המשנית של
gkectlלא יכולה להיות גבוהה ביותר משתי גרסאות משניות מגרסת האשכול. לדוגמה, אם יוצרים אשכול בגרסה 1.28, הגרסה שלgkectlיכולה להיות 1.29 או 1.30. אבל אי אפשר להשתמש בגרסה 1.31 שלgkectl, כי היא גבוהה בשלוש גרסאות משניות מגרסת האשכול.
אם צריך, אפשר לעיין במאמר הורדת
gkectlכדי לקבל גרסה נתמכת שלgkectl.
אם השתמשתם ב-gkeadm כדי ליצור את תחנת הניהול, נוצר קובץ תצורה בשם admin-cluster.yaml.
אם לא השתמשתם ב-gkeadm כדי ליצור את תחנת הניהול, אתם יכולים ליצור את admin-cluster.yaml על ידי הרצת הפקודה הבאה בתחנת הניהול:
gkectl create-config admin
קובץ התצורה הזה מיועד ליצירת אשכול האדמין.
כדי להכיר את קובץ התצורה, כדאי לעיין במסמך קובץ התצורה של אשכול האדמין. כדאי להשאיר את המסמך הזה פתוח בכרטיסייה או בחלון נפרדים, כי תצטרכו לעיין בו במהלך ביצוע השלבים הבאים.
name
אם רוצים לציין שם לאשכול האדמין, ממלאים את השדה name.
bundlePath
החבילה היא קובץ ZIP שמכיל רכיבי אשכול. הוא כלול בתחנת העבודה של האדמין. השדה הזה כבר מלא.
vCenter
השדות בקטע הזה כבר מלאים בערכים שהזנתם כשיצרתם את תחנת העבודה של האדמין.
enableAdvancedCluster
בגרסה 1.31, אם רוצים להפעיל את התכונה המתקדמת של האשכול, מגדירים את enableAdvancedCluster לערך true.
שימו לב להבדלים הבאים בין הגרסאות:
בגרסה 1.31, התכונה של אשכול מתקדם נמצאת בגרסת טרום-השקה (Preview):
אפשר להפעיל את התכונה "אשכול מתקדם" בזמן יצירת האשכול רק לאשכולות חדשים בגרסה 1.31.
אחרי שמפעילים את האשכול המתקדם, אי אפשר לשדרג את האשכול לגרסה 1.32. צריך להפעיל את האשכול המתקדם רק בסביבת בדיקה.
בגרסה 1.32, התכונה המתקדמת של אשכולות זמינה לכולם.
כברירת מחדל, אשכולות אדמין נוצרים כאשכולות מתקדמים. כדי ליצור אשכול לא מתקדם, צריך להגדיר במפורש את
enableAdvancedClusterל-false.באשכולות שבהם מופעלת התכונה "אשכולות מתקדמים", אפשר לשדרג את האשכולות.
בגרסה 1.33 ואילך, כל האשכולות נוצרים כאשכולות מתקדמים. אם מגדירים את
enableAdvancedClusterלערךfalse, יצירת האשכול נכשלת.
network
ממלאים את הקטע network.controlPlaneIPBlock ואת הקטע network.hostConfig. צריך גם להגדיר את adminMaster.replicas לערך 3.
השדות network.podCIDR ו-network.serviceCIDR מאוכלסים מראש בערכים שאפשר להשאיר ללא שינוי, אלא אם הם מתנגשים עם כתובות שכבר נמצאות בשימוש ברשת. Kubernetes משתמש בטווחים האלה כדי להקצות כתובות IP ל-Pods ולשירותים באשכול.
ממלאים את שאר השדות בקטע הרשת של קובץ התצורה לפי הצורך.
loadBalancer
הקצו כתובת VIP לשרת ה-API של Kubernetes באשכול האדמין. מזינים את כתובת ה-VIP כערך של loadBalancer.vips.controlPlaneVIP
למידע נוסף, ראו כתובות VIP ברשת המשנה של אשכול האדמין.
מחליטים באיזה סוג של איזון עומסים רוצים להשתמש. האפשרויות הן:
איזון עומסים בחבילה של MetalLB. מגדירים את
loadBalancer.kindלערך"MetalLB".איזון עומסים ידני. מגדירים את
loadBalancer.kindכ-"ManualLB"ומסירים את הקטעmanualLB.
למידע נוסף על אפשרויות לאיזון עומסים, קראו את סקירה כללית של איזון עומסים.
antiAffinityGroups
מגדירים את antiAffinityGroups.enabled לערך true או false, בהתאם להעדפה שלכם.
בשדה הזה מציינים אם רוצים ש-Google Distributed Cloud תיצור כללי אנטי-אפיניות של VMware Distributed Resource Scheduler (DRS) לצומתי אשכולות הניהול, כדי לפזר אותם בין לפחות שלושה מארחים פיזיים במרכז הנתונים.
adminMaster
אם רוצים לציין את המעבד והזיכרון לצומתי מישור הבקרה של אשכול האדמין, ממלאים את השדות cpus ו-memoryMB בקטע adminMaster.
באשכולות אדמין חייבים להיות שלושה צומתי מישור בקרה. מגדירים את השדה replicas בקטע adminMaster לערך 3.
proxy
אם הרשת שבה יהיו צומתי אשכולות הניהול נמצאת מאחורי שרת proxy, צריך למלא את הקטע proxy.
privateRegistry
מחליטים איפה לשמור את קובצי האימג' של הקונטיינרים לרכיבי Google Distributed Cloud. האפשרויות הן:
Artifact Registry
מרשם Docker פרטי משלכם.
אם אתם רוצים להשתמש במרשם פרטי משלכם, מלאו את הקטע
privateRegistry.
מידע נוסף על שימוש ב-Container Registry פרטי, כולל ההבדלים בין אשכולות רגילים לאשכולות מתקדמים, זמין במאמר הגדרת Container Registry פרטי.
componentAccessServiceAccountKeyPath
Google Distributed Cloud משתמש בחשבון השירות לגישה לרכיבים כדי להוריד רכיבי אשכול מ-Artifact Registry. השדה הזה מכיל את הנתיב של קובץ מפתח JSON לחשבון השירות שלכם עם גישה לרכיבים.
השדה הזה כבר מלא.
gkeConnect
רושמים את אשכול האדמין ל- Google Cloud fleet באמצעות מילוי הקטע gkeConnect. אם כוללים את הקטעים stackdriver ו-cloudAuditLogging בקובץ התצורה, המזהה ב-gkeConnect.projectID חייב להיות זהה למזהה שמוגדר ב-stackdriver.projectID וב-cloudAuditLogging.projectID. אם מזהי הפרויקטים לא זהים, יצירת האשכול תיכשל.
בגרסה 1.28 ואילך, אפשר לציין אזור שבו שירותי Fleet ו-Connect פועלים ב-gkeConnect.location. אם לא כוללים את השדה הזה, האשכול משתמש במכונות הגלובליות של השירותים האלה.
אם כוללים את gkeConnect.location, האזור שמציינים חייב להיות זהה לאזור שהוגדר ב-cloudAuditLogging.clusterLocation, ב-stackdriver.clusterLocation וב-gkeOnPremAPI.location. אם האזורים לא זהים, יצירת האשכול תיכשל.
gkeOnPremAPI
אם GKE On-Prem API מופעל בפרויקט ב-Google Cloud , כל האשכולות בפרויקט רשומים ל-GKE On-Prem API באופן אוטומטי באזור שהוגדר ב-stackdriver.clusterLocation.
האזור gkeOnPremAPI.location חייב להיות זהה לאזור שצוין ב-cloudAuditLogging.clusterLocation, ב-gkeConnect.location וב-stackdriver.clusterLocation. אם האזורים לא זהים, יצירת האשכול תיכשל.
אם אתם רוצים לרשום את כל האשכולות בפרויקט ל-GKE On-Prem API, הקפידו לבצע את השלבים שמפורטים בקטע לפני שמתחילים כדי להפעיל את GKE On-Prem API בפרויקט ולהשתמש בו.
אם אתם לא רוצים לרשום את האשכול ב-GKE On-Prem API, צריך לכלול את הקטע הזה ולהגדיר את
gkeOnPremAPI.enabledכ-false. אם אתם לא רוצים לרשום אשכולות בפרויקט, השביתו אתgkeonprem.googleapis.com(שם השירות של GKE On-Prem API) בפרויקט. הוראות מפורטות זמינות במאמר השבתת שירותים.
stackdriver
אם רוצים להפעיל את Cloud Logging ו-Cloud Monitoring באשכול, ממלאים את הקטע stackdriver.
כברירת מחדל, חובה למלא את הקטע הזה. כלומר, אם לא תמלאו את הקטע הזה, תצטרכו לכלול את הדגל --skip-validation-stackdriver כשאתם מריצים את gkectl create admin.
שימו לב לדרישות הבאות:
אם מפעילים אשכול מתקדם, צריך לציין את אותו נתיב ב-
cloudAuditLogging.serviceAccountKeyPathוב-stackdriver.serviceAccountKeyPath.המזהה בשדה
stackdriver.projectIDצריך להיות זהה למזהה בשדותgkeConnect.projectIDו-cloudAuditLogging.projectID.האזור של Google Cloud שמוגדר ב-
stackdriver.clusterLocationצריך להיות זהה לאזור שמוגדר ב-cloudAuditLogging.clusterLocationוב-gkeConnect.location. בנוסף, אם הערך שלgkeOnPremAPI.enabledהואtrue, צריך להגדיר את אותו אזור ב-gkeOnPremAPI.location.
אם מזהי הפרויקטים והאזורים לא זהים, יצירת האשכול תיכשל.
cloudAuditLogging
אם אתם רוצים לשלב את יומני הביקורת משרת ה-API של Kubernetes באשכול עם יומני הביקורת של Cloud, מלאו את הקטע cloudAuditLogging.
שימו לב לדרישות הבאות:
אם מפעילים אשכול מתקדם, צריך לציין את אותו נתיב ב-
cloudAuditLogging.serviceAccountKeyPathוב-stackdriver.serviceAccountKeyPath.המזהה בשדה
cloudAuditLogging.projectIDצריך להיות זהה למזהה בשדותgkeConnect.projectIDו-stackdriver.projectID.האזור שמוגדר ב- Google Cloud ב-
cloudAuditLogging.clusterLocationחייב להיות זהה לאזור שמוגדר ב-stackdriver.clusterLocationוב-gkeConnect.location(אם השדה נכלל בקובץ התצורה). בנוסף, אם הערך שלgkeOnPremAPI.enabledהואtrue, צריך להגדיר את אותו אזור ב-gkeOnPremAPI.location.
אם מזהי הפרויקטים והאזורים לא זהים, יצירת האשכול תיכשל.
clusterBackup
אם רוצים להפעיל גיבוי של אשכול האדמין, מגדירים את clusterBackup.datastore ל-vSphere datastore שבו רוצים לשמור את הגיבויים של האשכול.
אם מפעילים אשכול מתקדם, צריך להסיר את הקטע הזה. אי אפשר לגבות את אשכול האדמין למאגר נתונים של vSphere.
autoRepair
אם רוצים להפעיל תיקון אוטומטי של צמתים באשכול האדמין, מגדירים את autoRepair.enabled כ-true.
secretsEncryption
אם רוצים להפעיל את הצפנה של Secrets בזמינות תמידית, ממלאים את הקטע secretsEncryption.
אם מפעילים את האשכול המתקדם, צריך להגדיר את secretsEncryption.enabled לערך false.
אין תמיכה בהצפנת סודות בזמינות תמידית.
osImageType
מחליטים באיזה סוג של קובץ אימג' של מערכת ההפעלה רוצים להשתמש לצומתי אשכול האדמין, וממלאים את הקטע osImageType בהתאם.
אם מפעילים את האשכול המתקדם, צריך להגדיר את osImageType לערך ubuntu_cgroupv2 או ubuntu_containerd.
דוגמה לקובצי תצורה מלאים
דוגמה לקובץ תצורה מלא של אשכול אדמין: ההגדרה מפעילה חלק מהתכונות הזמינות, אבל לא את כולן.
vc-01-admin-cluster.yaml
apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz"
enableAdvancedCluster: true
vCenter:
address: "vc01.example"
datacenter: "vc-01"
cluster: "vc01-workloads-1"
resourcePool: "vc-01-pool-1"
datastore: "vc01-datastore-1"
caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem"
credentials:
fileRef:
path: "credential.yaml"
entry: "vCenter"
folder: "vc01-folder-1"
network:
hostConfig:
dnsServers:
- "203.0.113.1"
- "198.51.100.1"
ntpServers:
- "216.239.35.4"
ipMode:
type: static
ipBlockFilePath: network.hostconfig
serviceCIDR: "10.96.232.0/24"
podCIDR: "192.168.0.0/16"
vCenter:
networkName: "vc01-net-1"
controlPlaneIPBlock:
netmask: "255.255.248.0"
gateway: "21.0.143.254"
ips:
- ip: "21.0.140.226"
hostname: "admin-cp-vm-1"
- ip: "21.0.141.48"
hostname: "admin-cp-vm-2"
- ip: "21.0.141.65"
hostname: "admin-cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.20.59"
kind: "MetalLB"
antiAffinityGroups:
enabled: true
adminMaster:
cpus: 4
memoryMB: 16384
replicas: 3
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
projectID: "my-project-123"
registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
projectID: "my-project-123"
clusterLocation: "us-central1"
serviceAccountKeyPath: "log-mon-sa-2203040617.json"
disableVsphereResourceMetrics: false
cloudAuditLogging:
projectID: "my-project-123"
clusterLocation: "us-central1"
serviceAccountKeyPath: "log-mon-sa-2203040617.json"
autoRepair:
enabled: true
osImageType: "ubuntu_cgv2"
אימות קובץ התצורה
אחרי שממלאים את קובץ התצורה של אשכול האדמין, מריצים את הפקודה gkectl check-config כדי לוודא שהקובץ תקין:
gkectl check-config --config ADMIN_CLUSTER_CONFIG
מחליפים את ADMIN_CLUSTER_CONFIG בנתיב של קובץ התצורה של אשכול האדמין.
אם הפקודה מחזירה הודעות שגיאה, צריך לתקן את הבעיות ולאמת את הקובץ שוב.
אם אתם רוצים לדלג על האימותים שאורכים יותר זמן, העבירו את הדגל --fast.
כדי לדלג על אימותים ספציפיים, משתמשים בדגלים --skip-validation-yyy. למידע נוסף על הפקודה check-config, קראו את המאמר הרצת בדיקות טרום-טיסה.
קבלת קובצי אימג' של מערכת ההפעלה
מריצים את הפקודה gkectl prepare כדי להפעיל את סביבת vSphere:
gkectl prepare --config ADMIN_CLUSTER_CONFIG
הפקודה gkectl prepare מבצעת את משימות ההכנה הבאות:
מייבא קובצי אימג' של מערכת ההפעלה ל-vSphere ומסמן אותם כתבניות של מכונות וירטואליות.
אם אתם משתמשים במאגר פרטי של Docker, מעבירים את קובצי האימג' של הקונטיינר למאגר שלכם.
אופציונלי: מאמת את אישורי ה-build של קובצי האימג' של הקונטיינר, וכך מוודא שקובצי האימג' נוצרו ונחתמו על ידי Google ומוכנים לפריסה.
אם הגדרתם את bundlePath לשימוש בחבילה מלאה, gkectl prepare משתמש בקובצי האימג' של מערכת ההפעלה והקונטיינר שכלולים בחבילה, בלי צורך להוריד אותם מרשתות חיצוניות. מומלץ להשתמש באפשרות הזו בסביבות שמאחורי שרת proxy איטי או עם גישה מוגבלת לאינטרנט. מידע נוסף זמין במאמר מידע על חבילות של Google Distributed Cloud.
יצירת אשכול הניהול
יוצרים את אשכול האדמין:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
אם אתם משתמשים ב-VPC Service Controls, יכול להיות שתראו שגיאות כשתריצו פקודות מסוימות של gkectl, כמו "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services". כדי להימנע מהשגיאות האלה, הוסיפו את הפרמטר --skip-validation-gcp לפקודות שלכם.
המשך היצירה של אשכול האדמין אחרי כשל
אם היצירה של אשכול האדמין נכשלת או מבוטלת, אפשר להריץ שוב את הפקודה create:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
איתור קובץ kubeconfig של אשכול האדמין
הפקודה gkectl create admin יוצרת קובץ kubeconfig בשם kubeconfig בספרייה הנוכחית. תצטרכו את קובץ ה-kubeconfig הזה בהמשך כדי ליצור אינטראקציה עם אשכול האדמין.
קובץ ה-kubeconfig מכיל את השם של אשכול האדמין. כדי לראות את שם האשכול, אפשר להריץ את הפקודה:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
בפלט מוצג שם האשכול. לדוגמה:
NAME gke-admin-tqk8x
אם רוצים, אפשר לשנות את השם והמיקום של קובץ ה-kubeconfig.
ניהול הקובץ checkpoint.yaml
הקטע הזה רלוונטי רק לאשכולות אדמין שהם לא HA. הקובץ checkpoint.yaml לא משמש ליצירת אשכולות אדמין של HA.
כשהרצתם את הפקודה gkectl create admin כדי ליצור את אשכול האדמין, נוצר קובץ נקודת ביקורת באותה תיקייה של מאגר הנתונים שבה נמצא דיסק הנתונים של אשכול האדמין. כברירת מחדל, שם הקובץ הוא DATA_DISK_NAME‑checkpoint.yaml. אם האורך של DATA_DISK_NAME הוא 245 תווים או יותר, בגלל המגבלה של vSphere על אורך שם הקובץ, השם הוא DATA_DISK_NAME.yaml.
הקובץ הזה מכיל את המצב ואת פרטי הכניסה של אשכול האדמין, והוא משמש לשדרוגים עתידיים. אל תמחקו את הקובץ הזה, אלא אם אתם פועלים לפי התהליך של מחיקת אשכול אדמין.
אם הפעלתם הצפנת VM במופע של vCenter Server, אתם צריכים את ההרשאה Cryptographic operations.Direct Access לפני שאתם יוצרים או משדרגים את אשכול האדמין. אחרת, נקודת הבדיקה לא תועלה. אם אתם לא יכולים לקבל את ההרשאה הזו, אתם יכולים להשבית את ההעלאה של קובץ נקודת הבדיקה באמצעות הדגל המוסתר --disable-checkpoint כשאתם מריצים פקודה רלוונטית.
הקובץ checkpoint.yaml מתעדכן אוטומטית כשמריצים את הפקודה gkectl upgrade admin, או כשמריצים פקודת gkectl update שמשפיעה על אשכול האדמין.
איך מוודאים שאשכול האדמין פועל
מוודאים שאשכול האדמין פועל:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
מחליפים את ADMIN_CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig של אשכול האדמין.
הפלט מציג את הצמתים של אשכול האדמין. לדוגמה:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
גיבוי קבצים
מומלץ לגבות את קובץ ה-kubeconfig של אשכול האדמין. כלומר, להעתיק את קובץ kubeconfig מתחנת העבודה של האדמין למיקום אחר. כך, אם תאבדו את הגישה לתחנת העבודה של האדמין או אם קובץ ה-kubeconfig בתחנת העבודה של האדמין יימחק בטעות, עדיין תהיה לכם גישה לאשכול האדמין.
מומלץ גם לגבות את מפתח ה-SSH הפרטי של אשכול האדמין. כך, אם תאבדו את הגישה לאשכול האדמין, עדיין תוכלו להשתמש ב-SSH כדי להתחבר לצומתי אשכול האדמין. כך תוכלו לפתור בעיות ולחקור בעיות בקישוריות לאשכול האדמין.
מחלצים את מפתח ה-SSH מאשכול האדמין לקובץ בשם admin-cluster-ssh-key:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \
-o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key
עכשיו אפשר לגבות את admin-cluster-ssh-key במיקום אחר לבחירתך.
כללי מדיניות של RBAC
כשממלאים את הקטע gkeConnect בקובץ התצורה של אשכול האדמין, האשכול נרשם בצי במהלך היצירה או העדכון. כדי להפעיל את פונקציונליות ניהול הצי, Google Cloud פורס את סוכן Connect ויוצר חשבון שירות של Google שמייצג את הפרויקט שאליו רשום האשכול.
סוכן Connect יוצר חיבור עם חשבון השירות כדי לטפל בבקשות לשרת ה-API של Kubernetes באשכול. כך אפשר לגשת לתכונות של ניהול אשכולות ועומסי עבודה ב- Google Cloud, כולל גישה למסוףGoogle Cloud , שמאפשר לכם לנהל את האשכול.
שרת ה-API של Kubernetes באשכול האדמין צריך להיות מסוגל לאשר בקשות מסוכן Connect. כדי לוודא שזה קורה, כללי המדיניות הבאים של בקרת גישה מבוססת-תפקידים (RBAC) מוגדרים בחשבון השירות:
מדיניות התחזות שמאשרת לסוכן Connect לשלוח בקשות לשרת ה-API של Kubernetes בשם חשבון השירות.
מדיניות הרשאות שמציינת את הפעולות שמותר לבצע במשאבים אחרים ב-Kubernetes.
חשבון השירות וכללי המדיניות של RBAC נדרשים כדי שתוכלו לנהל את מחזור החיים של אשכולות המשתמשים במסוף Google Cloud .