יצירת אשכול אדמין

בדף הזה מוסבר איך ליצור אשכול אדמין ל-Google Distributed Cloud. קלאסטר האדמין מנהל את קלאסטרים המשתמשים שמריצים את עומסי העבודה. אם רוצים להשתמש בדומיינים של טופולוגיה, אפשר לעיין במאמר יצירת אשכול אדמין לשימוש עם דומיינים של טופולוגיה.

הדף הזה מיועד לאדמינים, לארכיטקטים ולמפעילים שמגדירים, מנטרים ומנהלים את התשתית הטכנולוגית. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם בתוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE. Google Cloud

פרטים נוספים על אשכול האדמין מופיעים במאמר סקירה כללית על ההתקנה.

בגרסה 1.33 ואילך, כל האשכולות החדשים נוצרים כאשכולות מתקדמים. חשוב לעיין במאמר ההבדלים בהפעלת אשכולות מתקדמים.

לפני שמתחילים

  • חשוב לוודא שהגדרתם את תחנת העבודה של האדמין ושאתם יכולים להיכנס אליה כמו שמתואר במאמר יצירת תחנת עבודה לאדמין.

  • מוודאים שקובצי ה-JSON של המפתחות של חשבונות השירות נמצאים בתחנת העבודה של האדמין.

  • מעיינים במסמך התכנון של כתובות ה-IP. מוודאים שיש מספיק כתובות IP זמינות לשלושת הצמתים של רמת הבקרה ולכתובת ה-IP הווירטואלית של רמת הבקרה. אם אתם מתכננים ליצור אשכולות משתמשים מסוג kubeception, אתם צריכים לוודא שיש לכם מספיק כתובות IP זמינות לצמתים של מישור הבקרה באשכולות המשתמשים האלה.

  • כדאי לעיין בסקירה הכללית על איזון עומסים ולשקול מחדש את ההחלטה לגבי סוג מאזן העומסים שבו רוצים להשתמש. במאזני עומסים שמוגדרים באופן ידני, צריך להגדיר את מאזן העומסים לפני שיוצרים את אשכול האדמין.

  • אם אתם משתמשים ב-gkectl כדי ליצור את אשכול האדמין, אתם צריכים להחליט אם אתם רוצים להשתמש במאגר ציבורי או פרטי לרכיבי Google Distributed Cloud. מידע על שימוש במאגר פרטי של Docker זמין במאמר privateRegistry. אי אפשר להשתמש ב-Terraform או במסוף Google Cloud כדי להגדיר רכיבי מערכת במאגר Docker פרטי.

  • מחליטים איזה סוג של מערכת הפעלה רוצים להפעיל בצמתים של אשכול האדמין.

  • אם הארגון שלכם דורש שתעבורת נתונים יוצאת תעבור דרך שרת proxy, הקפידו להוסיף לרשימת ההיתרים את כתובת ה-API הנדרשת ואת כתובת Artifact Registry.

  • בגרסה 1.29 ומעלה, בדיקות מקדימות בצד השרת מופעלות כברירת מחדל. בדיקות קדם-הפעלה בצד השרת דורשות כללי חומת אש נוספים. בקטע Firewall rules for admin clusters (כללי חומת אש לאשכולות אדמין), מחפשים את האפשרות Preflight checks (בדיקות לפני המראה) ומוודאים שכל כללי חומת האש הנדרשים מוגדרים. בדיקות מקדימות בצד השרת מופעלות באשכול bootstrap במקום באופן מקומי בתחנת העבודה של האדמין.

יצירת אשכול אדמין באמצעות הכלי שבחרתם

בקטע הזה מוסבר איך ליצור אשכול אדמין באמצעות gkectl, Terraform ומסוף Google Cloud . מידע שיעזור לכם לבחור כלי ומגבלות של חלק מהכלים מופיע במאמר בחירת כלי לניהול מחזור החיים של אשכול.

gkectl

סקירה כללית של התהליך

אלה השלבים העיקריים שנדרשים ליצירת אשכול אדמין:

  1. ממלאים את קובצי התצורה.
    ממלאים ומאמתים קובץ תצורה של אשכול אדמין, קובץ הגדרות של פרטי כניסה ואולי גם קובץ של בלוק IP, כדי לציין את הפרטים של אשכול האדמין החדש.
  2. מייבאים קובצי אימג' של מערכת הפעלה אל vSphere, ומעבירים בדחיפה קובצי אימג' של קונטיינרים אל המאגר הפרטי, אם רלוונטי.
    מריצים את gkectl prepare.
  3. יוצרים אשכול אדמין.
    משתמשים ב-gkectl כדי ליצור אשכול אדמין חדש כמו שצוין בקובצי ההגדרות שהושלמו. כש-Google Distributed Cloud יוצר אשכול אדמין, הוא פורס אשכול Kubernetes in Docker ‏ (kind) כדי לארח באופן זמני את בקרי Kubernetes שנדרשים ליצירת אשכול האדמין. האוסף הזמני הזה נקרא אוסף bootstrap. אשכולות משתמשים נוצרים ומשודרגים על ידי האדמין המנהל שלהם ללא שימוש באשכול bootstrap.
  4. מוודאים שקלאסטר האדמין פועל.
    משתמשים ב-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. אין חשיבות לגרסאות התיקון. לדוגמה, אפשר להשתמש בגרסה gkectl 1.29.0-gke.1456 כדי ליצור אשכול עם גרסת תיקון גבוהה יותר, כמו 1.29.1000-gke.94.

    • הגרסה המשנית gkectl לא יכולה להיות גבוהה ביותר משתי גרסאות משניות מגרסת האשכול. לדוגמה, אם יוצרים אשכול בגרסה 1.28, הגרסה של gkectl יכולה להיות 1.29 או 1.30. אבל אי אפשר להשתמש בגרסה gkectl 1.31 כי היא גבוהה בשלוש גרסאות משניות מהגרסה של האשכול.

    במקרה הצורך, אפשר לעיין במאמר בנושא הורדה של 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 צי על ידי מילוי הקטע 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.

  • האזור שמוגדר ב-stackdriver.clusterLocation צריך להיות זהה לאזור שמוגדר ב-cloudAuditLogging.clusterLocation וב-gkeConnect.location. Google Cloud בנוסף, אם 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-xxx. מידע נוסף על הפקודה check-config זמין במאמר הרצת בדיקות קדם-הפעלה.

קבלת קובצי אימג' של מערכת ההפעלה

מריצים את הפקודה gkectl prepare כדי לאתחל את סביבת vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

הפקודה gkectl prepare מבצעת את משימות ההכנה הבאות:

  • מייבא תמונות של מערכת הפעלה ל-vSphere ומסמן אותן כתבניות של מכונות וירטואליות.

  • אם אתם משתמשים במאגר Docker פרטי, קובצי האימג' של הקונטיינרים מועברים בדחיפה למאגר שלכם.

  • אופציונלי: אימות של הצהרות ה-build של קובצי האימג' בקונטיינר, כדי לוודא שהקובצים נוצרו ונחתמו על ידי Google ושהם מוכנים לפריסה.

יצירת אשכול האדמין

יוצרים את אשכול האדמין:

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 לא משמש ליצירה של אשכולות אדמין עם זמינות גבוהה.

כשמריצים את הפקודה 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 בקובץ התצורה של אשכול האדמין, האשכול נרשם לצי במהלך היצירה או העדכון. כדי להפעיל את הפונקציונליות של ניהול צי, Google Cloud הכלי פורס את סוכן Connect ויוצר חשבון שירות של Google שמייצג את הפרויקט שהאשכול רשום בו. סוכן Connect יוצר חיבור לחשבון השירות כדי לטפל בבקשות לשרת Kubernetes API של האשכול. הגישה הזו מאפשרת שימוש בתכונות של ניהול אשכולות ועומסי עבודה ב- Google Cloud, כולל גישה לGoogle Cloud מסוף שמאפשר אינטראקציה עם האשכול.

שרת ה-API של Kubernetes באשכול האדמין צריך להיות מסוגל לאשר בקשות מסוכן Connect. כדי לוודא זאת, מוגדרות בחשבון השירות מדיניות בקרת הגישה מבוססת-תפקידים (RBAC) הבאה:

  • מדיניות התחזות שמאשרת לסוכן Connect לשלוח בקשות לשרת Kubernetes API בשם חשבון השירות.

  • מדיניות הרשאות שמציינת את הפעולות שמותרות במשאבי Kubernetes אחרים.

חשבון השירות ומדיניות RBAC נדרשים כדי שתוכלו לנהל את מחזור החיים של אשכולות המשתמשים במסוף Google Cloud .

Terraform

סקירה כללית של התהליך

לפני שיוצרים את אשכול האדמין, צריך להריץ את הפקודה gkectl register bootstrap בתחנת העבודה של האדמין. הפקודה הזו פורסת אשכול Kubernetes ב-Docker ‏(kind) בתחנת העבודה של האדמין. באשכול האתחול הזה מתארחים בקרי Kubernetes שנדרשים ליצירת אשכול האדמין. כשיוצרים את אשכול האדמין, הבקרים באשכול ה-bootstrap יקצו צמתים, יריצו בדיקות קדם-הפעלה וירשמו את אשכול האדמין ב-Fleet. אחרי שיוצרים את אשכול האדמין, אשכול האתחול נמחק אוטומטית.

אלה השלבים ברמה גבוהה ליצירת אשכול אדמין באמצעות Terraform:

  1. ממלאים את קובץ התצורה.
    משתמשים במשאב google_gkeonprem_vmware_admin_cluster ובדוגמה שבהמשך כדי ליצור את קובץ התצורה main.tf.
  2. יוצרים אשכול bootstrap.
    מריצים את הפקודה gkectl register bootstrap כדי ליצור את אשכול האתחול. כשהפקודה מסיימת ליצור את אשכול האתחול, הפלט מודיע לכם שצריך לסיים את ההגדרה של אשכול האדמין. התהליך ממשיך לפעול עד שנוצר אשכול האדמין.
  3. יוצרים אשכול אדמין.
    בחלון מסוף אחר או במחשב אחר שיש לו גישה ל-GKE On-Prem API, מריצים פקודות terraform כדי ליצור אשכול אדמין חדש כמו שצוין בקובץ התצורה main.tf שהושלם.

מילוי קובץ התצורה

בדוגמה הבאה מוצג תהליך יצירה של אשכול אדמין עם זמינות גבוהה (HA) ושלושה צמתי מישור בקרה באמצעות MetalLB. בגרסה 1.28 ואילך, אשכולות אדמין חדשים צריכים להיות בעלי זמינות גבוהה. בגלל הדרישה הזו, אתם צריכים להגדיר את control_plane_node.replicas ל-3.

מידע נוסף ודוגמאות נוספות מופיעים במאמרי העזרה בנושא google_gkeonprem_vmware_admin_cluster. מידע על שימוש במאגר פרטי לתמונות מערכת זמין במאמר בנושא הגדרת מאגר פרטי של קונטיינרים.

ממלאים את משתני ה-placeholder בדוגמה הבאה, ואז מעתיקים ומדביקים אותה אל main.tf. אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה של האדמין, פותחים את קובץ התצורה של תחנת העבודה של האדמין כדי להעתיק ערכים מהקטע vCenter למשתני ה-placeholder המתאימים.

resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
  provider = google-beta
  name = "ADMIN_CLUSTER_NAME"
  project = "PROJECT_ID"
  location = "REGION"
  description = "DESCRIPTION"
  bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME"
  on_prem_version = "VERSION"
  image_type = "IMAGE_TYPE"
  vcenter {
    address = "VCENTER_ADDRESS"
    datacenter = "DATA_CENTER"
    cluster = "VCENTER_CLUSTER"
    resource_pool = "RESOURCE_POOL"
    datastore = "DATASTORE"
    ca_cert_data = "CA_CERT_DATA"
  }
  network_config {
    service_address_cidr_blocks = ["10.96.232.0/24"]
    pod_address_cidr_blocks = ["192.168.0.0/16"]
    vcenter_network = "NETWORK"
    dhcp_ip_config {
      enabled = true
    }
    host_config {
      dns_servers = ["DNS_SERVERS"]
      ntp_servers = ["NTP_SERVERS"]
    }
    ha_control_plane_config {
      control_plane_ip_block {
        gateway = "GATEWAY"
        netmask = "NETMASK"
        ips {
          hostname = "CONTROL_PLANE_HOST_1"
          ip       = "CONTROL_PLANE_NODE_IP_1"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_2"
          ip       = "CONTROL_PLANE_NODE_IP_2"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_3"
          ip       = "CONTROL_PLANE_NODE_IP_3"
        }
      }
    }
  }
  control_plane_node {
     cpus = NUM_CPUS
     memory = MEMORY
     replicas = 3
  }
  load_balancer {
    vip_config {
      control_plane_vip = "CONTROL_PLANE_VIP"
    }
    metal_lb_config {
      enabled = true
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ADMIN_CLUSTER_NAME: השם של אשכול האדמין. האורך המקסימלי של השם הוא 20 תווים.

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

  • REGION: האזור שבו פועלים GKE On-Prem API ‏ (gkeonprem.googleapis.com), שירות Fleet ‏(gkehub.googleapis.com) ושירות Connect ‏(gkeconnect.googleapis.com). Google Cloud מציינים us-west1 או אזור נתמך אחר.

    השדה location תואם לדגל --location בפקודה gkectl register bootstrap.

  • DESCRIPTION: תיאור של אשכול האדמין.

  • VERSION: הגרסה של Google Distributed Cloud עבור האשכול. אפשר ליצור אשכול באמצעות Terraform רק בגרסאות 1.28 ומעלה. הגרסה שמציינים כאן צריכה להיות זהה לגרסת החבילה שמציינים בדגל --bundle-path בפקודה gkectl register bootstrap. רשימת הגרסאות זמינה במאמר גרסאות של Google Distributed Cloud.

  • IMAGE_TYPE: סוג תמונת מערכת ההפעלה שרוצים להריץ בצמתים של אשכול האדמין. מציינים אחד מהערכים הבאים: "ubuntu_containerd",‏ "cos",‏ "ubuntu_cgv2" או "cos_cgv2".

  • VCENTER_ADDRESS: הכתובת של vCenter Server.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.credentials.address.

    • השדה vcenter.address תואם לדגל --vcenter-address בפקודה gkectl register bootstrap.

  • DATA_CENTER: השם של מרכז הנתונים של vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.datacenter.

    • השדה vcenter.datacenter תואם לדגל --vcenter-datacenter בפקודה gkectl register bootstrap.

  • VCENTER_CLUSTER: השם של אוסף השרתים של vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.cluster.

    • השדה vcenter.cluster תואם לדגל --vcenter-cluster בפקודה gkectl register bootstrap.

  • RESOURCE_POOL: השם או הנתיב של מאגר המשאבים של vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.resourcePool.

    • השדה vcenter.resource_pool תואם לדגל --vcenter-resource-pool בפקודה gkectl register bootstrap.

  • DATASTORE: השם של מאגר הנתונים של vCenter. הערך שאתם מציינים צריך להיות שם, ולא נתיב. אם צריך להזין נתיב, מוסיפים את השדה הבא: folder = "FOLDER"

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.datastore.

    • השדה vcenter.datastore תואם לדגל --vcenter-datastore בפקודה gkectl register bootstrap.

    אם רוצים להשתמש במדיניות אחסון של מכונה וירטואלית לצמתים של האשכול, צריך להסיר את השדה vcenter.datastore ולהוסיף במקומו את vcenter.storage_policy_name. בנוסף, מוסיפים את הדגל --vcenter-storage-policy לפקודה gkectl register bootstrap. חובה לציין ערך למאפיין vcenter.datastore או למאפיין vcenter.storage_policy_name, אבל לא לשניהם.

  • FOLDER: השם של תיקיית vCenter שבה ימוקמו מכונות ה-VM של האשכול. אם לא משתמשים בתיקייה, מסירים את השדה הזה.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.folder.

    • השדה vcenter.folder תואם לדגל --vcenter-folder בפקודה gkectl register bootstrap.

  • CA_CERT_DATA: אישור ה-CA של vCenter בפורמט PEM, אבל עם כל השורות החדשות שהוחלפו במחרוזת \n.

    1. מריצים את הפקודה הבאה כדי להחליף את השורות החדשות ב-\n:

      awk 'ORS="\\n" {print}' CA_CERT_PATH_LOCAL
      

      מחליפים את CA_CERT_PATH_LOCAL בנתיב אל אישור ה-CA הבסיסי של vCenter Server. אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה של האדמין, תוכלו להשתמש בערך מהשדה caCertPath בקובץ התצורה של תחנת העבודה של האדמין, שהוא הנתיב במחשב המקומי. gkeadm העתקתם את קובץ אישור CA לתחנת העבודה של האדמין. צריך לציין את הנתיב של תחנת העבודה של האדמין בדגל --vcenter-ca-cert-path בפקודה gkectl register bootstrap.

    2. מעתיקים את הפלט של הפקודה הקודמת ומדביקים אותו במשתנה CA_CERT_DATA של placeholder.

  • NETWORK: השם של רשת vCenter.

    • קובץ ההגדרה של תחנת העבודה של האדמין: משתמשים בערך מהשדה vCenter.network.

    • השדה network_config.vcenter_network תואם לדגל --vcenter-network בפקודה gkectl register bootstrap.

  • GATEWAY: כתובת ה-IP של שער ברירת המחדל של רשת המשנה שכוללת את הצמתים של אשכול מישור הבקרה.

  • NETMASK: מסכת הרשת של תת-הרשת שכוללת את צמתי האשכול של מישור הבקרה.

  • DNS_SERVERS: כתובת ה-IP של שרת ה-DNS.

  • NTP_SERVERS: כתובת ה-IP של שרת הזמן (NTP).

  • מזינים את כתובות ה-IP ואת שם המארח (אופציונלי) של שלושת הצמתים של מישור הבקרה בקטע control_plane_ip_block.ips. אם לא מזינים שם מארח, צריך להסיר את השדות hostname מההגדרה.

  • NUM_CPUS : מספר ליבות ה-vCPU לכל צומת במישור הבקרה באשכול האדמין. הערך חייב להיות לפחות 4.

  • MEMORY: מספר המביבייט של הזיכרון לכל צומת במישור הבקרה באשכול האדמין. הערך המינימלי הוא 8,192, אבל מומלץ להשתמש בערך 16,384.

  • CONTROL_PLANE_VIP: כתובת ה-IP שבחרתם להגדיר במאזן העומסים עבור שרת Kubernetes API של אשכול האדמין.

אופציונלי: הגדרת מאגר פרטי

כברירת מחדל, במהלך יצירה או שדרוג של אשכול, Google Distributed Cloud מושך תמונות מערכת מ-gcr.io/gke-on-prem-release באמצעות חשבון השירות של רכיב הגישה. אופציונלי: אתם יכולים לספק שרת רישום קונטיינרים משלכם, כדי שתמונות המערכת יימשכו משרת הרישום הפרטי שלכם במקום זאת.

כדי להגדיר מאגר פרטי:

  1. מוסיפים את השורות הבאות לקובץ התצורה של אשכול הניהול:

    private_registry_config {
      address = "ADDRESS"
      ca_cert = "CA_CERT"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ADDRESS: כתובת ה-IP או שם הדומיין המוגדר במלואו (FQDN) של המכונה שמריצה את המאגר הפרטי.

    • CA_CERT: נתוני אישור ה-CA של המפתח הציבורי, אבל כל השורות החדשות מוחלפות במחרוזת \n.

    1. מריצים את הפקודה הבאה כדי להחליף את השורות החדשות ב-\n:

      awk 'ORS="\\n" {print}' PUBLIC_KEY_PATH
      

      מחליפים את PUBLIC_KEY_PATH בנתיב של המפתח הציבורי.

    2. מעתיקים את הפלט של הפקודה הקודמת ומדביקים אותו במשתנה CA_CERT של placeholder.

  2. אם הרשת שלכם נמצאת מאחורי שרת proxy, צריך להוסיף את הפרטים הבאים:

    proxy {
      url: "PROXY_SERVER_ADDRESS"
      no_proxy: "BYPASS_LIST"
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROXY_SERVER_ADDRESS: כתובת ה-HTTP של שרת ה-Proxy. צריך לכלול את מספר היציאה גם אם הוא זהה ליציאת ברירת המחדל של הסכימה.

    • BYPASS_LIST: רשימה מופרדת בפסיקים של כתובות IP, טווחי כתובות IP, שמות מארחים ושמות דומיינים שלא צריכים לעבור דרך שרת ה-proxy.

    דוגמה:

    url: "http://my-proxy.example.local:80"
    no_proxy: "192.0.2.0/24,my-host.example.local,198.51.100.0"
    

    כש-Google Distributed Cloud שולח בקשה לאחת מהכתובות, המארחים או הדומיינים האלה, הבקשה עוקפת את שרת ה-proxy ונשלחת ישירות ליעד.

מידע נוסף על שימוש במאגר פרטי, כולל ההבדלים בין אשכולות רגילים לאשכולות מתקדמים, זמין במאמר הגדרת מאגר פרטי של קונטיינרים.

אימות קובץ התצורה והתוכנית

בספרייה שבה נמצא main.tf, מריצים את הפקודות הבאות:

  1. מאתחלים את Terraform:

    terraform init
    

    ‫Terraform מתקין את כל הספריות הנדרשות, כמו ספק Google Cloud . אם צריך, מתקנים את השגיאות בmaint.tf.

  2. יוצרים את התוכנית ב-Terraform:

    terraform plan -out tfplan
    

    בודקים את ההגדרות ומבצעים שינויים לפי הצורך.

לפני שמחילים את התוכנית, צריך קודם ליצור את אשכול ה-bootstrap כמו שמתואר בקטע הבא.

יצירת אשכול האתחול

כשמריצים את הפקודה gkectl register bootstrap, מוצגת בקשה להזין את שם המשתמש והסיסמה של חשבון vCenter. חשוב לוודא שיש לכם את פרטי הכניסה. אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה של האדמין, שם המשתמש והסיסמה נמצאים בקובץ credential.yaml.

  1. מתחברים לתחנת העבודה של האדמין באמצעות SSH.

  2. כדי לאמת עם Google Cloud CLI:

    gcloud auth login
    
  3. מריצים את הפקודה הבאה כדי ליצור את אשכול האתחול. הרבה ערכים של דגלים זהים לאלה שבשדות main.tf. עם זאת, שימו לב שהפקודה מקבלת ערכים נוספים שצריך לציין במשתני ה-placeholder שסופקו.

    gkectl register bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --vcenter-address=VCENTER_ADDRESS \
        --vcenter-datacenter=DATA_CENTER \
        --vcenter-cluster=VCENTER_CLUSTER \
        --vcenter-resource-pool=RESOURCE_POOL \
        --vcenter-datastore=DATASTORE \
        --vcenter-network=NETWORK \
        --vcenter-ca-cert-path=CA_CERT_PATH \
        --bundle-path=BUNDLE_PATH \
        --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
        --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
        --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH \
        --admin-kubeconfig-out=KUBECONFIG_NAME
    

    מחליפים את הנתיבים הבאים בנתיבים של תחנת העבודה של האדמין:

    • CA_CERT_PATH: הנתיב לאישור CA הבסיסי של vCenter Server.
    • BUNDLE_PATH: הנתיב לקובץ החבילה. אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה לאדמין, קובץ החבילה נמצא ב-/var/lib/gke/bundles/. שם הקובץ תלוי בגרסה של Google Distributed Cloud, לדוגמה, gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: הנתיב לקובץ המפתח של חשבון השירות של רכיב הגישה.
    • CONNECT_REGISTER_SA_PATH: הנתיב לקובץ המפתח של חשבון השירות connect-register.
    • LOG_MON_SA_PATH: הנתיב לקובץ המפתח של חשבון השירות של שירות הרישום ביומן והמעקב.
    • CLOUD_AUDIT_SA_PATH: הנתיב לחשבון השירות של יומן הביקורת. אם לא יצרתם חשבון שירות לרישום ביומן ביקורת, מציינים את הנתיב לקובץ המפתח של חשבון השירות של שירות הרישום ביומן והמעקב.
    • KUBECONFIG_NAME: השם של קובץ ה-kubeconfig שנוצר באמצעות הפקודה gkectl register bootstrap. אם לא מציינים את הדגל הזה, הפקודה יוצרת את הקובץ בשם kubeconfig בספריית העבודה הנוכחית. אם קיים קובץ בשם kubeconfig, הפקודה מחליפה את הקובץ.

    משנים את הפקודה לפי הצורך עבור הדגלים הבאים:

    • אם ציינתם תיקייה ב-main.tf, מוסיפים את הדגל הבא: --vcenter-folder=FOLDER
    • אם ציינתם מדיניות אחסון של מכונה וירטואלית ב-main.tf, מסירים את --vcenter-datastore ומוסיפים את הדגל הבא: --vcenter-storage-policy-name=STORAGE_POLICY_NAME
    • אם תחנת העבודה של האדמין תהיה ברשת שמוגנת על ידי שרת proxy, צריך להוסיף את הדגלים הבאים:

      • --proxy-url=PROXY_URL
      • --no-proxy=NO_PROXY

      מחליפים את מה שכתוב בשדות הבאים:

      • PROXY_URL: כתובת ה-URL של שרת ה-Proxy.
      • NO_PROXY: הערך של הדומיינים וכתובות ה-IP שמוחרגים מהפעלת ה-Proxy, מופרדים בפסיק.

    אם מוסיפים דגל, צריך לוודא שמוסיפים את התו של קו נטוי הפוך (\) להמשך שורת הפקודה.

  4. כשמתבקשים, מזינים (או מעתיקים ומדביקים) את שם המשתמש ב-vCenter. שם המשתמש לא מוצג במסך.

  5. כשמתבקשים, מזינים (או מעתיקים ומדביקים) את הסיסמה של vCenter. הסיסמה לא מוצגת במסך.

הפקודה מריצה מספר רב של אימותים. אחרי ש-gkectl יוצר את אשכול האתחול, מוצג פלט שדומה לזה (הפלט קוצר כדי שיהיה קל יותר לקרוא אותו):

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

התהליך ממשיך לפעול עד שנוצר אשכול האדמין.

אם יוצאים מהפקודה gkectl register bootstrap לפני שנוצר אשכול האדמין, יצירת אשכול האדמין נכשלת וצריך למחוק את אשכול האתחול באמצעות הפקודה הבאה:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

יצירת אשכול האדמין

מחילים את תוכנית Terraform כדי ליצור את אשכול האדמין:

terraform apply "tfplan"

יצירת אשכול האדמין נמשכת כ-15 דקות או יותר. אפשר לראות את האשכול במסוף Google Cloud בדף GKE clusters.

חיבור לאשכול הניהול

הפקודה gkectl register bootstrap יוצרת קובץ kubeconfig עבור אשכול האדמין בתחנת העבודה של האדמין. אם לא ציינתם את הדגל --admin-kubeconfig-out כשביצעתם את הפקודה gkectl register bootstrap, הפקודה יוצרת קובץ kubeconfig בשם kubeconfig בספרייה שבה הפעלתם את הפקודה.

צריך להגביל את הגישה אל kubeconfig כי הוא מכיל פרטי אימות של האשכול.

בנוסף, אפשר להריץ פקודות של kubectl לקריאה בלבד דרך שער החיבור.

  1. מריצים את הפקודה הבאה במחשב שמותקן בו ה-CLI של gcloud כדי לקבל רשומה kubeconfig שמאפשרת גישה לאשכול דרך שער החיבור.

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    הפלט אמור להיראות כך:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  2. עכשיו אפשר להריץ פקודות של kubectl לקריאה בלבד דרך שער החיבור, כמו הפקודות הבאות:

    kubectl get pods -A
    

    אם אתם צריכים הרשאות אדמין מלאות לאשכול האדמין, תוכלו לעיין במאמר בנושא הגדרת שער החיבור.

המסוף

סקירה כללית של התהליך

לפני שיוצרים את אשכול האדמין, צריך להריץ את הפקודה gkectl register bootstrap בתחנת העבודה של האדמין. הפקודה הזו פורסת אשכול Kubernetes ב-Docker ‏(kind) בתחנת העבודה של האדמין. באשכול האתחול הזה מתארחים בקרי Kubernetes שנדרשים ליצירת אשכול האדמין. כשיוצרים את אשכול האדמין, הבקרים באשכול ה-bootstrap יקצו צמתים, יריצו בדיקות קדם-הפעלה וירשמו את אשכול האדמין ב-Fleet. אחרי שיוצרים את אשכול האדמין, אשכול האתחול נמחק אוטומטית.

אלה השלבים ברמה גבוהה ליצירת אשכול אדמין באמצעות המסוף:

  1. במסוף, מזינים את המידע שנדרש על ידי gkectl register bootstrap. במסוף מוצגת הפקודה gkectl register bootstrap עם המידע שהזנתם. הפקודה שמוצגת כוללת גם דגלים לנתיבים שתצטרכו לציין לפני שתריצו את הפקודה.

  2. בתחנת העבודה של האדמין, מריצים את הפקודה gkectl register bootstrap כדי ליצור את אשכול ה-bootstrap. בסיום הפקודה ליצירת אשכול האתחול, הפלט מודיע לכם שעליכם לסיים את הגדרת אשכול האדמין. התהליך ממשיך לפעול עד שנוצר אשכול האדמין.

  3. חוזרים למסוף כדי לסיים להזין את המידע שנדרש ליצירת האשכול. במהלך יצירת האשכול, הפקודה gkectl register bootstrap מציגה מידע על ההתקדמות וכותבת יומנים בתחנת העבודה של האדמין. כשיוצרים את אשכול האדמין, אשכול ה-bootstrap נמחק אוטומטית.

מתחילים להגדיר את האשכול

  1. במסוף, עוברים לדף Create a cluster on VMware.

    מעבר אל יצירת אשכול ב-VMware

  2. בוחרים את Google Cloud הפרויקט שבו רוצים ליצור את האשכול.

    כשיוצרים את אשכול האתחול בקטע הבא, מזהה הפרויקט שנבחר מוצג בפקודה gkectl register bootstrap בדגל --project-id.

  3. מוודאים שהאפשרות Create an admin cluster (יצירת אשכול אדמין) מסומנת.

  4. לוחצים על הבא: התקנת סביבת bootstrap.

התקנת סביבת bootstrap

בקטע הזה מזינים את המידע שנדרש לפקודה gkectl register bootstrap. כשמזינים ערכים בשדות בממשק המשתמש, המסוף מעתיק את הערכים לדגלים המתאימים של הפקודה gkectl register bootstrap שמוצגת בקטע סביבת Bootstrap מתחנת עבודה של אדמין בחלק התחתון של הדף.

מידע בסיסי על סביבת Bootstrap

  1. מזינים שם לאשכול הניהול. המסוף משתמש בשם האשכול כערך של הדגל --target-cluster-name בפקודה gkectl register bootstrap שמוצגת בחלק התחתון של הדף. האורך המקסימלי של השם הוא 20 תווים.

  2. בשדה Google Cloud מיקום ה-API, בוחרים אזור מהרשימה. Google Cloudההגדרה הזו מציינת את האזור שבו פועלים ממשקי ה-API והשירותים הבאים:

    • ‫GKE On-Prem API ‏ (gkeonprem.googleapis.com)
    • שירות לצי רכב (gkehub.googleapis.com)
    • חיבור שירות (gkeconnect.googleapis.com)

    ההגדרה הזו קובעת גם את האזור שבו מאוחסנים:

    • המטא-נתונים של האשכול שנדרשים ל-GKE On-Prem API כדי לנהל את מחזור החיים של האשכול
    • הנתונים של רכיבי המערכת ב-Cloud Logging וב-Cloud Monitoring
    • יומן הביקורת של האדמין שנוצר על ידי יומני הביקורת של Cloud

    השדה Google Cloud API Location תואם לדגל --location בפקודה gkectl register bootstrap.

  3. בשדה Admin cluster version (גרסת אשכול Admin), מזינים את הגרסה שבה רוצים להשתמש כדי ליצור את האשכול. הגרסה שתבחרו כאן צריכה להיות זהה לגרסה של החבילה שציינתם בדגל --bundle-path בפקודה gkectl register bootstrap.

הגדרת vCenter

אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה שלכם לאדמין, פותחים את קובץ התצורה של תחנת העבודה לאדמין כדי להעתיק ערכים מהקטע vCenter לשדות במסוף. שימו לב שקובץ התצורה של אשכול האדמין שנוצר מכיל גם את המידע הזה.

רוב השדות בקטע הזה הם קבועים. אם אתם רוצים לדעת אם שדה מסוים ניתן לשינוי או לא, תוכלו לעיין בקטע vCenter בהפניה לקובץ התצורה של אשכול האדמין.

  1. בשדה כתובת, מזינים את הכתובת של vCenter Server.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.credentials.address.

    • השדה Address (כתובת) תואם לדגל --vcenter-address בפקודה gkectl register bootstrap.

  2. בשדה Datacenter (מרכז נתונים), מזינים את השם של מרכז הנתונים של vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.datacenter.

    • השדה Datacenter תואם לדגל --vcenter-datacenter בפקודה gkectl register bootstrap.

  3. בשדה שם האשכול, מזינים את השם של אשכול vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.cluster.

    • השדה Cluster Name (שם האשכול) תואם לדגל --vcenter-cluster בפקודה gkectl register bootstrap.

  4. בשדה Resource pool (מאגר משאבים), מזינים את השם או הנתיב של מאגר המשאבים של vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.resourcePool.

    • השדה Resource pool תואם לדגל --vcenter-resource-pool בפקודה gkectl register bootstrap.

  5. מגדירים אפשרות אחסון על ידי הזנת אחת מהאפשרויות הבאות:

    • שדה Datastore: מזינים את השם של מאגר הנתונים של vCenter. הערך שאתם מציינים צריך להיות שם, ולא נתיב. אם צריך להזין נתיב, מזינים אותו בשדה תיקייה.

      • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.datastore.

      • השדה Datastore תואם לדגל --vcenter-datastore בפקודה gkectl register bootstrap.

    • בשדה Storage policy name (שם מדיניות האחסון): מזינים את השם של מדיניות האחסון של מכונות וירטואליות עבור צמתי האשכול. מידע נוסף זמין במאמר בנושא הגדרת מדיניות אחסון.

      • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.storagePolicyName.

      • השדה Storage policy name תואם לדגל --vcenter-storage-policy בפקודה gkectl register bootstrap.

    חובה להזין ערך בשדה Datastore או בשדה Storage Policy Name, אבל לא בשניהם.

  6. אופציונלי: בשדה תיקייה, מזינים את השם של תיקיית vCenter שבה ימוקמו מכונות וירטואליות של האשכול.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.folder.

    • השדה Folder תואם לדגל --vcenter-folder בפקודה gkectl register bootstrap.

  7. בשדה Network, מזינים את השם של רשת vCenter.

    • קובץ ההגדרה של תחנת העבודה לאדמין: משתמשים בערך מהשדה vCenter.network.

    • השדה Network תואם לדגל --vcenter-network בפקודה gkectl register bootstrap.

  8. בשדה CA certificate path (נתיב לאישור CA), מזינים את הנתיב אל אישור הבסיס של ה-CA עבור vCenter Server.

    • אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה של האדמין, gkeadm העתיק את קובץ אישור ה-CA שהיה לכם באופן מקומי לתחנת העבודה של האדמין.

    • השדה נתיב אישור CA תואם ל---vcenter-ca-cert-path בפקודה gkectl register bootstrap.

קבלת אישור CA

אחרי שיוצרים את אשכול ה-bootstrap, צריך לספק את אישור ה-CA של vCenter בפורמט PEM בשדה CA certificate data בדף Cluster basics. מריצים את הפקודה הבאה כדי להציג את האישור:

cat CA_CERT_PATH

מחליפים את CA_CERT_PATH בנתיב לאישור CA הבסיסי של vCenter Server. אם מריצים את הפקודה הזו באופן מקומי, צריך להשתמש בנתיב שב-vCenter.caCertPath בקובץ התצורה של תחנת העבודה של האדמין.

מעתיקים את האישור כולו לכלי לעריכת טקסט כדי שתוכלו להדביק אותו בשדה CA certificate data בדף Cluster basics אחרי שיוצרים את אשכול ה-bootstrap.

הפעלת סביבת Bootstrap מתחנת עבודה של אדמין

כשמריצים את הפקודה gkectl register bootstrap, מוצגת בקשה להזין את שם המשתמש והסיסמה של חשבון vCenter. חשוב לוודא שיש לכם את פרטי הכניסה. אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה של האדמין, שם המשתמש והסיסמה נמצאים בקובץ credential.yaml.

  1. גוללים לקטע Bootstrap environment from admin workstation (הפעלת סביבת Bootstrap מתחנת עבודה של אדמין) כדי להציג את הפקודה gkectl register bootstrap.

    משאירים את הדף הזה פתוח ועוברים לתחנת העבודה של האדמין כדי ליצור את אשכול האתחול.

  2. מעתיקים את הפקודה gkectl register bootstrap ומדביקים אותה בעורך טקסט כדי לציין ערכים לדגלים הבאים:

        ./gkectl register bootstrap \
          ...
          --bundle-path=BUNDLE_PATH \
          ...
          --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
          --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
          --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
          --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH \
          --admin-kubeconfig-out=KUBECONFIG_NAME
    

    מחליפים את הנתיבים הבאים בנתיבים של תחנת העבודה של האדמין:

    • BUNDLE_PATH: הנתיב לקובץ החבילה. אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה לאדמין, קובץ החבילה נמצא ב-/var/lib/gke/bundles/. שם הקובץ תלוי בגרסה של Google Distributed Cloud, לדוגמה, gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: הנתיב לקובץ המפתח של חשבון השירות של רכיב הגישה.
    • CONNECT_REGISTER_SA_PATH: הנתיב לקובץ המפתח של חשבון השירות connect-register.
    • LOG_MON_SA_PATH: הנתיב לקובץ המפתח של חשבון השירות של שירות הרישום ביומן והמעקב.
    • CLOUD_AUDIT_SA_PATH: הנתיב לחשבון השירות של יומן הביקורת. אם לא יצרתם חשבון שירות לרישום ביומן ביקורת, מציינים את הנתיב לקובץ המפתח של חשבון השירות של שירות הרישום ביומן והמעקב.
    • KUBECONFIG_NAME: השם של קובץ ה-kubeconfig שנוצר באמצעות הפקודה gkectl register bootstrap. אם לא מציינים את הדגל הזה, הפקודה יוצרת את הקובץ בשם kubeconfig בספריית העבודה הנוכחית. אם קיים קובץ בשם kubeconfig, הפקודה מחליפה את הקובץ.

    בנוסף, אם השתמשתם ב-gkeadm כדי ליצור את תחנת העבודה של האדמין, הקובץ gkectl הורד לספרייה /usr/bin/. במקרה כזה, צריך להסיר את ./ מתחילת הפקודה כי gkectl לא נמצא בספריית העבודה הנוכחית.

  3. משתמשים ב-SSH כדי להתחבר לתחנת העבודה של האדמין.

  4. מעתיקים את הפקודה ומדביקים אותה בחלון מסוף בתחנת העבודה של האדמין.

  5. כשמתבקשים, מזינים (או מעתיקים ומדביקים) את שם המשתמש ב-vCenter. שם המשתמש לא מוצג במסך.

  6. כשמתבקשים, מזינים (או מעתיקים ומדביקים) את הסיסמה של vCenter. הסיסמה לא מוצגת במסך.

הפקודה מריצה מספר רב של אימותים. אחרי ש-gkectl יוצר את אשכול האתחול, מוצג פלט שדומה לזה (הפלט קוצר כדי שיהיה קל יותר לקרוא אותו):

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

התהליך ממשיך לפעול עד שנוצר אשכול האדמין.

אם יוצאים מהפקודה gkectl register bootstrap לפני שנוצר אשכול האדמין, יצירת אשכול האדמין נכשלת וצריך למחוק את אשכול האתחול באמצעות הפקודה הבאה:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

סיום ההגדרה של אשכול האדמין

חוזרים למסוף ומבצעים את השלבים הבאים:

  1. בדף Install bootstrap environment (התקנת סביבת bootstrap), לוחצים על Check Connection (בדיקת החיבור).

    אם הפעולה מצליחה, במסוף מוצגת ההודעה Connection established.

    צריך ליצור את החיבור לאשכול bootstrap לפני שממשיכים. אם החיבור לא נוצר, צריך לבדוק את הארגומנטים שצוינו בפקודה gkectl register bootstrap:

    • מוודאים שהערך של --target-cluster-name זהה לשם אשכול האדמין שמוצג בקטע Bootstrap environment basics (היסודות של סביבת האתחול).

    • מוודאים שהערך של --project-id תואם למזהה של הפרויקט שבחרתם במסוף.

    אם אתם צריכים לשנות את השם של אשכול ה-bootstrap, את מזהה הפרויקט או ערכים אחרים של דגלים, אתם צריכים לבצע את הפעולות הבאות:

    1. מזינים Ctrl-C כדי לצאת מ-gkectl register bootstrap.
    2. מוחקים את אשכול ה-bootstrap:

      gkectl delete bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
      
    3. מריצים מחדש את הפקודה gkectl register bootstrap.

  2. לוחצים על הבא: יסודות של אשכול כדי להתחיל להגדיר את אשכול הניהול.

מידע בסיסי על אשכולות

  1. בשדה CA certificate data, מעתיקים ומדביקים את כל אישור ה-CA של vCenter בפורמט PEM, כמו שמתואר בקטע Get the CA certificate.

  2. בקטע הרשאה, מזינים את כתובות האימייל של המשתמשים שרוצים להעניק להם את תפקיד Kubernetes clusterrole/view לקריאה בלבד. שימו לב שכתובת האימייל שלכם נוספת באופן אוטומטי. כללי המדיניות של בקרת הגישה מבוססת-תפקידים (RBAC) שמוחלים מאפשרים למשתמשים להריץ פקודות לקריאה בלבד דרך שער החיבור.

  3. לוחצים על Next Control Plane (המישור הבא של הבקרה).

מישור הבקרה

  1. בודקים את הגדרות ברירת המחדל בקטע מישור הבקרה ומשנים אותן לפי הצורך.

  2. בקטע Control plane node IPs, מזינים את כתובות ה-IP בשדות הבאים:

    • שער: כתובת ה-IP של שער ברירת המחדל של רשת המשנה שכוללת את צמתי האשכול.

    • Netmask: מסכת הרשת של רשת המשנה שכוללת את צמתי האשכול.

    • כתובות IP‏: מזינים את כתובת ה-IP ואת שם המארח (אופציונלי) של שלושת הצמתים של מישור הבקרה.

  3. לוחצים על הבא: רשת.

Networking

בקטע הזה מציינים את פרטי הרשת שנדרשים ליצירת אשכול האדמין.

  1. בקטע Service and Pod CIDRs (כתובות CIDR של שירותים ו-Pods), מאשרים את ערכי ברירת המחדל של טווחי כתובות ה-IP של שירותים ו-Pods ב-Kubernetes, או מזינים טווחי כתובות CIDR שונים.

    • CIDR של השירות: הטווח הקטן ביותר האפשרי: /24. הטווח הגדול ביותר האפשרי: /12.

    • Pod CIDR: הטווח הקטן ביותר האפשרי: /18. הטווח הגדול ביותר האפשרי: /8`.

  2. בקטע Host config, מציינים את שרתי ה-NTP, שרתי ה-DNS ואת דומייני החיפוש של ה-DNS שבהם נעשה שימוש במכונות הווירטואליות שהן הצמתים של האשכול. אחרי שיוצרים את האשכול, אי אפשר לשנות את הערכים האלה.

  3. לוחצים על הבא: מאזן עומסים.

מאזן עומסים

בקטע הזה בוחרים את סוג מאזן העומסים שרוצים להשתמש בו. מידע נוסף מופיע במאמר סקירה כללית על איזון עומסים.

  1. ברשימה סוג מאזן העומסים, בוחרים מאזן עומסים:

    • חבילה עם MetalLB: מאזן העומסים MetalLB כלול בחבילה ודורש פחות הגדרות מאשר איזון עומסים ידני. רכיבי MetalLB פועלים בצמתי האשכול, כך שלא צריך ליצור מכונות וירטואליות נפרדות למאזן העומסים.

    • ידני: אפשר להשתמש בכל איזון עומסים שתבחרו, כל עוד תגדירו אותו לפני יצירת האשכול. בכל איזון עומסים שמגדירים באופן ידני, צריך להגדיר מיפויים בין כתובות IP וירטואליות (VIP), כתובות צמתים וערכי NodePort.

  2. בשדה Control plane VIP (כתובת IP וירטואלית של מישור הבקרה), מזינים את כתובת ה-IP הווירטואלית שתשמש לתעבורת נתונים שנשלחת לשרת ה-API של Kubernetes.

  3. לוחצים על אימות ויצירה.

    במסוף מוצגות הודעות סטטוס בזמן שההגדרות מאומתות והאשכול נוצר במרכז הנתונים.

    אם יש בעיה בהגדרה, במסוף מוצגת הודעת שגיאה שאמורה להיות ברורה מספיק כדי שתוכלו לתקן את בעיית ההגדרה ולנסות שוב ליצור את האשכול.

פרטים על תהליך יצירת האשכול מוצגים בתחנת העבודה של האדמין. אם בדיקות קדם-הפעלה עוברות בהצלחה, יופיע משהו כזה:

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

חיבור לאשכול הניהול

הפקודה gkectl register bootstrap יוצרת קובץ kubeconfig עבור אשכול האדמין בתחנת העבודה של האדמין. אם לא ציינתם את הדגל --admin-kubeconfig-out כשביצעתם את הפקודה gkectl register bootstrap, הפקודה יוצרת קובץ kubeconfig בשם kubeconfig בספרייה שבה הפעלתם את הפקודה.

צריך להגביל את הגישה אל kubeconfig כי הוא מכיל פרטי אימות של האשכול.

בנוסף, אפשר להריץ פקודות של kubectl לקריאה בלבד דרך שער החיבור.

  1. מריצים את הפקודה הבאה במחשב שמותקן בו ה-CLI של gcloud כדי לקבל רשומה kubeconfig שמאפשרת גישה לאשכול דרך שער החיבור.

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    הפלט אמור להיראות כך:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  2. עכשיו אפשר להריץ פקודות של kubectl לקריאה בלבד דרך שער החיבור, כמו הפקודות הבאות:

    kubectl get pods -A
    

    אם אתם צריכים הרשאות אדמין מלאות לאשכול האדמין, תוכלו לעיין במאמר בנושא הגדרת שער החיבור.

פתרון בעיות

פתרון בעיות ביצירה ובשדרוג של אשכולות

המאמרים הבאים

יצירת אשכול משתמשים