יוצרים אשכול אדמין לתוכנת Google Distributed Cloud רק ל-VMware באמצעות gkectl. משתמשים ב-gkectl אם אתם צריכים לנהל את כל מחזור החיים של אשכול האדמין באופן מקומי בסביבה המקומית שלכם כדי לעמוד בדרישות מחמירות של אבטחה, תאימות או סביבה מבודדת. אפשר גם ליצור אשכול אדמין באמצעות Terraform או מסוףGoogle Cloud .
לפני שמתחילים
חשוב לוודא שהגדרתם את תחנת העבודה לאדמין ושאתם יכולים להיכנס אליה כמו שמתואר במאמר יצירת תחנת עבודה לאדמין.
מוודאים שקובצי מפתח ה-JSON של חשבונות השירות נמצאים בתחנת העבודה של האדמין.
מעיינים במסמך התכנון של כתובות ה-IP. מוודאים שיש מספיק כתובות IP זמינות לשלושת הצמתים של רמת הבקרה ולכתובת ה-IP הווירטואלית של רמת הבקרה. אם אתם מתכננים ליצור אשכולות משתמשים מסוג kubeception, אתם צריכים לוודא שיש לכם מספיק כתובות IP זמינות לצמתי מישור הבקרה של אשכולות המשתמשים האלה.
כדאי לעיין בסקירה הכללית על איזון עומסים ולשקול מחדש את ההחלטה לגבי סוג מאזן העומסים שבו רוצים להשתמש. במאזני עומסים שמוגדרים באופן ידני, צריך להגדיר את מאזן העומסים לפני שיוצרים את אשכול האדמין.
אם אתם משתמשים ב-
gkectlכדי ליצור את אשכול האדמין, אתם צריכים להחליט אם אתם רוצים להשתמש במאגר ציבורי או פרטי לרכיבי Google Distributed Cloud. מידע על שימוש במאגר פרטי של Docker זמין במאמרprivateRegistry. אי אפשר להשתמש במאגר Docker פרטי לרכיבי מערכת, גם לא ב-Terraform וגם לא במסוף Google Cloud .מחליטים איזה סוג של מערכת הפעלה רוצים להפעיל בצמתים של אשכול האדמין.
אם הארגון שלכם דורש שתעבורה יוצאת תעבור דרך שרת proxy, הקפידו להוסיף לרשימת ההיתרים את ממשקי ה-API הנדרשים ואת הכתובת של Artifact Registry.
בגרסה 1.29 ומעלה, בדיקות מקדימות בצד השרת מופעלות כברירת מחדל. בדיקות קדם-הפעלה בצד השרת דורשות כללי חומת אש נוספים. בקטע Firewall rules for admin clusters (כללי חומת אש לאשכולות אדמין), מחפשים את האפשרות Preflight checks (בדיקות לפני המראה) ומוודאים שכל כללי חומת האש הנדרשים מוגדרים. בדיקות מקדימות בצד השרת מופעלות באשכול bootstrap במקום באופן מקומי בתחנת העבודה של האדמין.
סקירה כללית של התהליך
אלה השלבים העיקריים שנדרשים ליצירת אשכול אדמין:
ממלאים את קובצי התצורה. מציינים את הפרטים של קובץ התצורה החדש של פרטי הכניסה לאדמין, ואולי גם קובץ של בלוק כתובות IP.
אם רלוונטי, מייבאים תמונות של מערכת הפעלה ל-vSphere ומעבירים בדחיפה תמונות של קונטיינרים למאגר פרטי. מריצים את
gkectl prepare.ליצור אשכול אדמין. משתמשים ב-
gkectlכדי ליצור אשכול אדמין חדש כמו שצוין בקובצי ההגדרות שהושלמו. כש-Google Distributed Cloud יוצר אשכול אדמין, הוא פורס אשכול Kubernetes in Docker (kind) כדי לארח באופן זמני את בקרי Kubernetes שנדרשים ליצירת אשכול האדמין. האוסף הזמני הזה נקרא אוסף bootstrap. אשכולות משתמשים נוצרים ומשודרגים על ידי האדמין המנהל שלהם ללא שימוש באשכול bootstrap.מוודאים שקלאסטר האדמין פועל. אפשר להשתמש ב-
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 באמצעות גרסה 1.29 שלgkectl. גרסאות תיקון לא משנות. לדוגמה, אפשר להשתמש בגרסהgkectl1.29.0-gke.1456 כדי ליצור אשכול עם גרסת תיקון גבוהה יותר, כמו 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
החבילה היא קובץ מכווץ שמכיל רכיבי אשכול. היא כלולה בתחנת העבודה של האדמין. השדה הזה כבר מלא בשבילכם.
vCenter
השדות בקטע הזה כבר מלאים בערכים שהזנתם כשבניתם את תחנת העבודה של האדמין.
enableAdvancedCluster
בגרסה 1.31, אם רוצים להפעיל את התכונה המתקדמת של אשכולות, צריך להגדיר את enableAdvancedCluster לערך true.
חשוב לשים לב להבדלים הבאים בין הגרסאות:
בגרסה 1.31, התכונה המתקדמת של אשכולות נמצאת בגרסת טרום-השקה:
אפשר להפעיל את התכונה 'אשכול מתקדם' רק באשכולות חדשים בגרסה 1.31, בזמן יצירת האשכול.
אחרי שמפעילים אשכול מתקדם, אי אפשר לשדרג את האשכול לגרסה 1.32. מומלץ להפעיל את האשכול המתקדם רק בסביבת בדיקה.
בגרסה 1.32, התכונה המתקדמת של אשכולות זמינה לכולם (GA).
כברירת מחדל, אשכולות אדמין נוצרים כאשכולות מתקדמים. כדי ליצור אשכול לא מתקדם, צריך להגדיר את
enableAdvancedClusterלערךfalse.אפשר לשדרג אשכולות שהתכונה 'אשכולות מתקדמים' מופעלת בהם.
בגרסה 1.33 ואילך, כל האשכולות נוצרים כאשכולות מתקדמים. אם מגדירים את
enableAdvancedClusterל-false, יצירת האשכול נכשלת.
network
ממלאים את הקטע network.controlPlaneIPBlock ואת הקטע network.hostConfig. צריך גם להגדיר את
adminMaster.replicas
לערך 3.
השדות network.podCIDR ו-network.serviceCIDR מאוכלסים מראש בערכים שאפשר להשאיר ללא שינוי, אלא אם הם מתנגשים עם כתובות שכבר נמצאות בשימוש ברשת. Kubernetes משתמש בטווחים האלה כדי להקצות כתובות IP לקבוצות Pod ולשירותים באשכול.
ממלאים את שאר השדות בקטע network של קובץ התצורה לפי הצורך.
loadBalancer
מגדירים כתובת VIP לשרת Kubernetes API של אשכול האדמין. מזינים את מספר ה-VIP כערך של loadBalancer.vips.controlPlaneVIP
מידע נוסף זמין במאמר בנושא כתובות IP וירטואליות ברשת המשנה של אשכול האדמין.
מחליטים באיזה סוג של איזון עומסים רוצים להשתמש. האפשרויות הן:
איזון עומסים בחבילה של MetalLB. מגדירים את
loadBalancer.kindלערך"MetalLB".איזון עומסים ידני. מגדירים את
loadBalancer.kindל-"ManualLB"ומסירים את הקטעmanualLB.
מידע נוסף על אפשרויות איזון העומסים זמין במאמר סקירה כללית של איזון עומסים.
antiAffinityGroups
מגדירים את antiAffinityGroups.enabled
ל-true או ל-false בהתאם להעדפה שלכם.
בשדה הזה מציינים אם רוצים ש-Google Distributed Cloud ייצור כללי אנטי-אפיניות של Distributed Resource Scheduler (DRS) של VMware עבור הצמתים של אשכול האדמין, כך שהם יפוזרו על פני לפחות שלושה מארחים פיזיים במרכז הנתונים.
adminMaster
אם רוצים לציין את המעבד והזיכרון של הצמתים במישור הבקרה של אשכול האדמין, ממלאים את השדות cpus ו-memoryMB בקטע adminMaster.
בקטרי אדמין חייבים להיות שלושה צמתים של מישור הבקרה. מגדירים את השדה replicas בקטע adminMaster לערך 3.
proxy
אם הרשת שבה יהיו הצמתים של אשכול האדמין נמצאת מאחורי שרת proxy, צריך למלא את הקטע proxy.
privateRegistry
מחליטים איפה רוצים לשמור את קובצי האימג' של הקונטיינרים לרכיבים של Google Distributed Cloud. האפשרויות הן:
Artifact Registry
מאגר Docker פרטי משלכם.
אם אתם רוצים להשתמש במאגר פרטי משלכם, אתם צריכים למלא את הקטע
privateRegistry.
מידע נוסף על שימוש במאגר פרטי, כולל ההבדלים בין אשכולים רגילים לאשכולים מתקדמים, זמין במאמר הגדרת מאגר פרטי של קונטיינרים.
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
אם אתם רוצים לשלב את יומני הביקורת משרת Kubernetes API של האשכול עם יומני הביקורת של 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 שבו רוצים לשמור את הגיבויים של האשכול.
אם מפעילים את האפשרות 'מקבץ מתקדם', צריך להסיר את הקטע הזה. גיבוי של אשכול הניהול למאגר נתונים של vSphere לא נתמך.
autoRepair
אם רוצים להפעיל תיקון אוטומטי של הצמתים באשכול האדמין, צריך להגדיר את autoRepair.enabled לערך true.
secretsEncryption
אם רוצים להפעיל את התכונה הצפנת סודות שפועלת תמיד, צריך למלא את הקטע 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"
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"
network:
hostConfig:
dnsServers:
- "203.0.113.1"
- "198.51.100.1"
ntpServers:
- "216.239.35.4"
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"
enableVPC: false
serviceAccountKeyPath: "log-mon-sa-2203040617.json"
disableVsphereResourceMetrics: false
clusterBackup:
datastore: "vc-01-datastore-bu"
autoRepair:
enabled: true
osImageType: "ubuntu_containerd"
אימות קובץ ההגדרות
אחרי שממלאים את קובץ ההגדרות של אשכול האדמין, מריצים את הפקודה
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 תווים או שווה לו, השם הוא DATA_DISK_NAME.yaml, בגלל המגבלה של vSphere על אורך שם הקובץ.
הקובץ הזה מכיל את מצב אשכול האדמין ואת פרטי הכניסה שלו, והוא משמש לשדרוגים עתידיים. אל תמחקו את הקובץ הזה אלא אם אתם פועלים לפי התהליך של מחיקת אשכול אדמין.
אם הפעלתם הצפנה של מכונות וירטואליות במופע של 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 בקובץ התצורה של אשכול האדמין, האשכול נרשם לFleet במהלך היצירה או העדכון. כדי להפעיל את הפונקציונליות של ניהול צי, Google Cloud מבצעים פריסה של סוכן Connect ויוצרים חשבון שירות של Google שמייצג את הפרויקט שבו האשכול רשום.
סוכן Connect יוצר חיבור לחשבון השירות כדי לטפל בבקשות לשרת Kubernetes API של האשכול. הגישה הזו מאפשרת להשתמש בתכונות של ניהול אשכולות ועומסי עבודה ב- Google Cloud, כולל גישה לGoogle Cloud מסוף שמאפשר אינטראקציה עם האשכול.
שרת ה-API של Kubernetes באשכול האדמין צריך להיות מסוגל לאשר בקשות מסוכן Connect. כדי לוודא זאת, מוגדרות בחשבון השירות מדיניות בקרת הגישה לפי תפקידים (RBAC) הבאות:
מדיניות התחזות שמאשרת לסוכן Connect לשלוח בקשות לשרת Kubernetes API בשם חשבון השירות.
מדיניות הרשאות שמציינת את הפעולות שמותרות במשאבי Kubernetes אחרים.
חשבון השירות ומדיניות RBAC נדרשים כדי שתוכלו לנהל את מחזור החיים של אשכולות המשתמשים במסוף Google Cloud .