Google Distributed Cloud (GDC) עם בידוד פיזי מאפשר לכם לנהל את אשכולות Kubernetes אחרי היצירה באמצעות GKE ב-GDC. השירות הזה מאפשר לכם להתאים את עצמכם לדרישות המשתנות של עומסי העבודה שלכם ב-containers ולתחזק את צמתי האשכול הקיימים באמצעות תהליכי העבודה הבאים:
צירוף וניתוק של אשכולות משותפים לפרויקטים: אפשר לצרף ולנתק את האשכול המשותף למספר פרויקטים אחרי יצירת האשכול, כדי לשנות את היקף עומסי העבודה של האשכול המשותף.
הצגת אשכולות בארגון: אפשר להציג רשימה של האשכולות בארגון כדי לעקוב אחרי מה שזמין לעומסי העבודה של הקונטיינרים.
רשימת גרסאות Kubernetes: אפשר לראות את גרסת Kubernetes של האשכול כדי להבין את היכולות של האשכול בהתאם לגרסאות האחרונות של Kubernetes.
הצגת מאפייני אשכול שאפשר לעדכן: הצגת המאפיינים שאפשר לשנות בהגדרת המשאב המותאם אישית
Cluster.
המסמך הזה מיועד לאדמינים של IT בקבוצת האדמינים של הפלטפורמה שמנהלים עומסי עבודה של קונטיינרים שמארחים באשכולות שמשתרעים על פני כמה פרויקטים, ולמפתחים בקבוצת מפעילים של אפליקציות שאחראים ליצירת עומסי עבודה של אפליקציות בפרויקט יחיד. מידע נוסף זמין במאמר בנושא קהלים ב-GDC עם air gap.
לפני שמתחילים
כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
כדי לקבל את ההרשאות שדרושות לכם לתחזוקת אשכול Kubernetes, אתם צריכים תפקידים ספציפיים. התפקידים שאתם צריכים תלויים בסוג האשכול שבו אתם עובדים: אשכול משותף בהיקף הארגון או אשכול רגיל בהיקף הפרויקט. מידע נוסף זמין במאמר בנושא הגדרות של אשכול Kubernetes.
תפקידים משותפים באשכול
כדי לראות ולתחזק את אשכול Kubernetes המשותף ואת המשאבים שלו, צריך לבקש מאדמין IAM בארגון להקצות לכם את התפקידים הבאים בהתאם למשימה שרוצים לבצע:
Project Creator (
project-creator): יצירה או צפייה במשאבי פרויקט. התפקיד הזה נדרש כדי לצרף אשכול משותף לפרויקט.עריכת פרויקטים (
project-editor): מחיקה, עדכון או צפייה במשאבי פרויקט. התפקיד הזה נדרש כדי לנתק אשכול משותף מפרויקט.User Cluster Viewer (
user-cluster-viewer): צפייה באשכול המשותף ובמשאבים שלו. התפקיד הזה מספק גישה לממשקי API של מישור הניהול עבור האשכול המשותף שמתארח בשרת Management API.
התפקידים האלה לא קשורים למרחב שמות של פרויקט.
תפקידים סטנדרטיים באשכול
כדי לראות את אשכול Kubernetes הרגיל ואת המשאבים שלו, צריך לבקש מאדמין IAM בפרויקט להקצות לכם את התפקיד צפייה באשכול רגיל (standard-cluster-viewer). התפקיד הזה מספק גישה לממשקי API של מישור הניהול עבור האשכול הרגיל שמתארח בשרת API של הניהול.
התפקיד הזה משויך למרחב השמות של הפרויקט.
הכנת הסביבה
כדי להריץ פקודות מול אשכול Kubernetes באמצעות ה-API, צריך לוודא שיש לכם את המשאבים הבאים:
מאתרים את שם אשכול Kubernetes או שואלים את אחד מחברי קבוצת האדמינים של הפלטפורמה מה שם האשכול.
משתמשים בשם של אשכול Kubernetes כדי להחליף את
CLUSTER_NAMEבהוראות האלה.נכנסים לחשבון ויוצרים את קובץ ה-kubeconfig של שרת ה-API לניהול.
משתמשים בנתיב kubeconfig של שרת ה-API לניהול כדי להחליף את
MANAGEMENT_API_SERVERבהוראות האלה.
העברת אשכולות בהיררכיית פרויקטים
פרויקטים מספקים קיבוץ לוגי של מופעי שירות. אתם יכולים להוסיף ולהסיר אשכולות Kubernetes משותפים מהיררכיית הפרויקטים ב-GDC כדי לקבץ את השירותים בצורה מתאימה. אי אפשר להעביר אשכולות רגילים בהיררכיית הפרויקטים כי הם מוגבלים לפרויקט אחד בלבד.
צירוף פרויקט לאשכול משותף
כשיוצרים אשכול משותף במסוף GDC, צריך לצרף לפחות פרויקט אחד לפני שאפשר לפרוס בו בהצלחה עומסי עבודה של קונטיינרים. אם אתם חייבים להוסיף פרויקטים נוספים לאשכול קיים, צריך לבצע את השלבים הבאים:
המסוף
- בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters (Kubernetes Engine > אשכולות).
- ברשימת האשכולות, לוחצים על שם האשכול כדי לפתוח את הדף פרטי האשכול.
- בוחרים באפשרות צירוף פרויקט.
- ברשימת הפרויקטים הזמינים, לוחצים על שם הפרויקט כדי לצרף אותו לאשכול.
- לוחצים על Save.
API
יוצרים משאב חדש בהתאמה אישית
ProjectBindingלאשכול:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectBinding metadata: name: CLUSTER_NAME-PROJECT_NAME namespace: platform labels: resourcemanager.gdc.goog/projectbinding-for-user-project: "true" spec: clusterRef: name: CLUSTER_NAME selector: nameSelector: matchNames: - PROJECT_NAME EOFמחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVER: הנתיב של קובץ ה-kubeconfig של שרת ה-API האזורי. -
CLUSTER_NAME: שם האשכול. -
PROJECT_NAME: השם של הפרויקט שאליו רוצים לקשר את האשכול. כל משאבProjectBindingיכול להיות ממופה רק לאשכול אחד. אם פרויקט דורש גישה לכמה אשכולות, צריך ליצורProjectBindingייחודי לכל אשכול.
-
Terraform
בקובץ תצורה של Terraform, מוסיפים את קטע הקוד הבא כדי ליצור את המשאב המותאם אישית
ProjectBinding:provider "kubernetes" { config_path = "MANAGEMENT_API_SERVER" } resource "kubernetes_manifest" "PROJECT_BINDING_RESOURCE_NAME" { manifest = { "apiVersion" = "resourcemanager.gdc.goog/v1" "kind" = "ProjectBinding" "metadata" = { "name" = "CLUSTER_NAME-PROJECT_NAME" "namespace" = "platform" "labels" = { "resourcemanager.gdc.goog/projectbinding-for-user-project" = "true" } } "spec" = { "clusterRef" = { "name" = "CLUSTER_NAME" } "selector" = { "nameSelector" = { "matchNames" = [ "PROJECT_NAME", ] } } } } }מחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVER: הנתיב של קובץ ה-kubeconfig של שרת ה-API האזורי. -
PROJECT_BINDING_RESOURCE_NAME: שם משאב Terraform של הקישור לפרויקט, למשלCLUSTER_NAME-PROJECT_NAME-binding. השם הזה משמש את Terraform כדי לזהות את הקישור של הפרויקט, ולא משמש את GDC. -
CLUSTER_NAME: שם האשכול. כל משאבProjectBindingיכול להיות ממופה רק לאשכול אחד. אם פרויקט דורש גישה לכמה אשכולות, צריך ליצורProjectBindingייחודי לכל אשכול. -
PROJECT_NAME: שם הפרויקט שאליו רוצים לקשר. כל משאבProjectBindingיכול להיות ממופה רק לאשכול אחד. אם פרויקט דורש גישה לכמה אשכולות, צריך ליצורProjectBindingייחודי לכל אשכול.
-
מחילים את הקישור החדש לפרויקט:
terraform apply
ניתוק פרויקט מאשכול משותף
ניתוק פרויקט מאשכול משותף עלול לגרום לשינויים משמעותיים, כמו מחיקת עומסי עבודה שפועלים באשכול. חשוב להבין את ההשלכות לפני שמנתקים פרויקט מאשכול משותף.
כדי לנתק פרויקט מאשכול משותף קיים:
המסוף
- בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters (Kubernetes Engine > אשכולות).
- לוחצים על האשכול ברשימת האשכולות כדי לפתוח את הדף פרטי האשכול.
- לוחצים על delete Detach (ניתוק) כדי לנתק את הפרויקט מהאשכול.
API
מוחקים את המשאב
ProjectBindingשמקשר בין הפרויקט לאשכול:kubectl --kubeconfig MANAGEMENT_API_SERVER delete projectbinding \ CLUSTER_NAME-PROJECT_NAME -n platformמחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVER: הנתיב של קובץ ה-kubeconfig של שרת ה-API האזורי. -
CLUSTER_NAME: שם האשכול. -
PROJECT_NAME: השם של הפרויקט שרוצים לנתק מהאשכול.
-
Terraform
מוחקים את משאב הקישור לפרויקט:
terraform destroy -target kubernetes_manifest.PROJECT_BINDING_RESOURCE_NAMEמחליפים את
PROJECT_BINDING_RESOURCE_NAMEבשם משאב Terraform של הקישור לפרויקט שרוצים למחוק, למשלCLUSTER_NAME-PROJECT_NAME-binding. השם הזה משמש את Terraform כדי לזהות את הקישור של הפרויקט, ולא משמש את GDC.
הצגת כל האשכולות בפרויקט או בארגון
אתם יכולים לראות את כל אשכולות Kubernetes שזמינים בפרויקט או בארגון, כולל הסטטוסים שלהם, גרסאות Kubernetes ופרטים נוספים.
מכיוון שקלאסטרים של Kubernetes הם משאב של תחום מוגדר, אפשר להציג רשימה של קלאסטרים רק לפי אזור.
המסוף
בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.
אשכולות רגילים הם בהיקף הפרויקט, ואשכולות משותפים הם בהיקף הארגון. בוחרים את ההיקף הנכון כדי לראות את הסוג המתאים של אשכול Kubernetes.
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters (Kubernetes Engine > אשכולות).
מוצגים כל האשכולות המשותפים שזמינים בארגון, עם הסטטוס שלהם ומידע נוסף:

gdcloud
מציגים את רשימת אשכולות Kubernetes שזמינים באזור:
gdcloud clusters listהפלט אמור להיראות כך:
CLUSTERREF.NAME READINESS.STATE TYPE CURRENTVERSION.USERCLUSTERVERSION CURRENTVERSION.SUPPORT.STATUS user-vm-1 Ready user 1.15.0-gdch.394225-1.28.15-gke.1200 In Support user-vm-2 Ready user 1.15.0-gdch.394225-1.29.12-gke.800 In Support
API
מציגים את רשימת אשכולות Kubernetes שזמינים באזור:
kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERמחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVER: הנתיב של קובץ ה-kubeconfig של שרת ה-API האזורי. -
KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. במקרה של אשכולות משותפים, צריך להשתמש במרחב השמותplatform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול.
הפלט אמור להיראות כך:
NAME STATE K8S VERSION user-vm-1 Running 1.25.10-gke.2100 user-test Running 1.26.5-gke.2100-
רשימת גרסאות Kubernetes שזמינות לאשכול
אתם יכולים לראות את רשימת הגרסאות הזמינות של Kubernetes באזור GDC כדי לוודא שיש לכם גישה לתכונות Kubernetes באוסף.
מציגים את רשימת הגרסאות הזמינות של Kubernetes באזור:
kubectl get userclustermetadata.upgrade.private.gdc.goog \ -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \ --kubeconfig MANAGEMENT_API_SERVERמחליפים את
MANAGEMENT_API_SERVERבקובץ kubeconfig של שרת ה-API האזורי של האשכול.הפלט אמור להיראות כך:
K8S-VERSION 1.25.10-gke.2100 1.26.5-gke.2100 1.27.4-gke.500
הצגת מאפיינים שאפשר לעדכן
אחרי שיוצרים כל אשכול Kubernetes, אפשר לשנות קבוצה של מאפיינים. אפשר לשנות רק את המאפיינים הניתנים לשינוי שנמצאים ב-spec של המשאב המותאם אישית Cluster. לא כל הנכסים ב-spec כשירים לעדכון אחרי הקצאת האשכול. כדי לראות את המאפיינים האלה שאפשר לעדכן, צריך לבצע את השלבים הבאים:
המסוף
בתפריט הניווט, בוחרים באפשרות Kubernetes Engine > Clusters (Kubernetes Engine > אשכולות).
ברשימת אשכולות Kubernetes, לוחצים על שם של אשכול כדי לראות את המאפיינים שלו.
למאפיינים שאפשר לערוך יש סמל edit עריכה.
API
אפשר לעיין ברשימת המאפיינים של
Clusterהמפרט ובערכים התקינים שמתאימים לכל מאפיין:kubectl explain clusters.cluster.gdc.goog.spec \ --kubeconfig MANAGEMENT_API_SERVERמחליפים את הערך
MANAGEMENT_API_SERVERבנתיב של קובץ ה-kubeconfig של שרת ה-API האזורי.הפלט אמור להיראות כך:
KIND: Cluster VERSION: cluster.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: <empty> FIELDS: clusterNetwork <Object> The cluster network configuration. If unset, the default configurations with pod and service CIDR sizes are used. Optional. Mutable. initialVersion <Object> The GDC air-gapped version information of the user cluster during cluster creation. Optional. Default to use the latest applicable version. Immutable. loadBalancer <Object> The load balancer configuration. If unset, the default configuration with the ingress service IP address size is used. Optional. Mutable. nodePools <[]Object> The list of node pools for the cluster worker nodes. Optional. Mutable. releaseChannel <Object> The release channel a cluster is subscribed to. When a cluster is subscribed to a release channel, GDC maintains the cluster versions for users. Optional. Mutable.כדי לעדכן את ההגדרות האלה, משתמשים במסוף GDC או ב-kubectl CLI. לדוגמה, אפשר לשנות את הגודל של מאגר צמתים.