אשכולות GKE מצורפים מאפשרים לכם לראות את אשכולות Kubernetes הקיימים שלכם במסוף Google Cloud יחד עם אשכולות GKE, ולהפעיל בהם כמה תכונות של GKE, כולל בקרה מרכזית על ההגדרות באמצעות סנכרון תצורות.
אשכולות Kubernetes נתמכים
אתם יכולים לצרף לצי אשכול Kubernetes תואם שכולל צמתי x86 ולראות אותו ב Google Cloud מסוף עם אשכולות GKE.
Google אימתה את סוגי האשכולות והגרסאות הבאים. מידע על התכונות של GKE שנתמכות באשכולות מצורפים זמין במאמר תמיכה בגרסאות ובשדרוגים של GKE.
| סוגי אשכולות מצורפים | גרסאות Kubernetes |
|---|---|
| Red Hat OpenShift Kubernetes Engine (OKE) 4.9, 4.10 | 1.23, 1.24 |
| Red Hat OpenShift Container Platform (OCP) 4.9, 4.10 | 1.23, 1.24 |
| Rancher Kubernetes Engine (RKE) 1.3.8 | 1.23, 1.24 |
| KIND 0.12 | 1.23, 1.24 |
| K3s 1.20 | 1.20 |
| K3d 4.4.3 | 1.20 |
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Anthos API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Anthos API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - כדאי לעיין בדרישות המוקדמות לרישום Fleet כדי לוודא שיש לכם את ההרשאות הרלוונטיות וממשקי ה-API המופעלים לרישום אשכול.
- במדריך לפני שמתחילים מפורטות הדרישות הספציפיות לצירוף אשכולות מחוץ ל- Google Cloud, כולל שלבי הגדרה מיוחדים שייתכן שתצטרכו לבצע בהתאם לסוג האשכול.
רישום אשכולות מצורפים
צריך לרשום את כל האשכולות שרוצים להשתמש בהם בתכונות GKE ב-Fleet של הפרויקט. צי מאפשר לקבץ באופן לוגי אשכולות Kubernetes ולבצע בהם נורמליזציה, וכך להקל על ניהול התשתית. אפשר לעיין באשכולות באותו Fleet ולנהל אותם יחד בGoogle Cloud מסוף, ורכיבים רבים של GKE ו- Google Cloud משתמשים במושגים של Fleet כמו זהות זהה ומרחב שמות זהה כדי לפשט את העבודה עם כמה אשכולות. במדריך לניהול Fleet אפשר לקרוא מידע נוסף על Fleet ועל הפונקציונליות שהוא מאפשר.
אתם זכאים להפעיל ולהשתמש בתכונות של GKE באשכולות האלה, ויכולים לנהל חלק מהתכונות של GKE ברמת Fleet מדף התכונות של GKE.
הגדרת הזהות
כל האשכולות המצורפים דורשים זהות כדי שסוכן Connect יוכל להשתמש בה לאימות ב-Google. אם האשכול עומד בדרישות, אפשר לרשום אותו ב-Fleet עם אימות באמצעות Workload Identity. באמצעות התכונה הזו, אשכולות משתמשים בזהויות ממאגר זהויות של עומסי עבודה ב-Fleet, שזמין לכל ה-Fleet. במאמר שימוש ב-Fleet Workload Identity אפשר לקרוא מידע נוסף על אופן הפעולה של Fleet Workload Identity ועל היתרונות של השימוש בו.
אם אתם לא יכולים להשתמש ב-Workload Identity של Fleet, כדי לרשום אשכול מצורף צריך Google Cloud חשבון שירות לאימות. מומלץ ליצור חשבון שירות חדש לכל אשכול שרוצים לצרף. כדי ליצור חשבון שירות לאשכול עם התפקידים המתאימים, פועלים לפי ההוראות שבמאמר יצירת חשבון שירות עם gcloud. Google Cloud
אחרי שיוצרים את חשבון השירות, אפשר להשתמש בקובץ ה-JSON עם פרטי הכניסה של חשבון השירות (קובץ המפתח) כדי לרשום את האשכול, כמו שמתואר בקטע הבא.
רישום האשכול
מומלץ לבדוק את סטטוס החברות של האשכול אחרי שמבצעים רישום, כדי לוודא שהוא מחובר כראוי אל Google Cloud. אם נתקלתם בבעיות בהרשמה, מומלץ לעיין במדריך לפתרון בעיות.
gcloud
מריצים את הפקודה הבאה:
gcloud container fleet memberships register MEMBERSHIP_NAME \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH \ --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
מחליפים את מה שכתוב בשדות הבאים:
- MEMBERSHIP_NAME: שם החברות שבחרתם, שמשמש לייצוג ייחודי של האשכול שנרשם ב-Fleet.
- SERVICE_ACCOUNT_KEY_PATH: הנתיב המקומי לקובץ ה-JSON של המפתח הפרטי של חשבון השירות שהורד כחלק מהדרישות המוקדמות.
המפתח של חשבון השירות מאוחסן כסוד בשם
creds-gcpבמרחב השמותgke-connect. - KUBECONFIG_CONTEXT: ההקשר של האשכול שנרשם, כפי שהוא מופיע בקובץ kubeconfig. אפשר לקבל את הערך הזה משורת הפקודה על ידי הרצת הפקודה
kubectl config current-context. - KUBECONFIG_PATH: הנתיב המקומי לקובץ kubeconfig שבו מאוחסן רשומה של האשכול שנרשם.
ברירת המחדל היא
$KUBECONFIGאם משתנה הסביבה הזה מוגדר, אחרת ברירת המחדל היא$HOME/.kube/config.
רישום של אשכול מצורף באמצעות Workload Identity של Fleet
כדי לרשום אשכול מצורף עם Workload Identity מופעל ב-Fleet, מריצים את הפקודה הבאה. מידע נוסף על סוגי אשכולות מצורפים שאפשר להשתמש בהם בתכונה הזו ועל דרישות נוספות זמין במאמר תנאים מוקדמים לשימוש באשכולות מצורפים.
gcloud container fleet memberships register MEMBERSHIP_NAME \ --context=KUBECONFIG_CONTEXT \ --kubeconfig=KUBECONFIG_PATH \ --enable-workload-identity \ --has-private-issuer
המסוף
יצירת פקודת הרשמה
אתם יכולים להשתמש במסוף Google Cloud כדי ליצור פקודת רישום gcloudלרישום האשכול (עם חשבון שירות בלבד).
כדי לרשום אשכול:
במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine clusters overview.
לוחצים על Register existing cluster (רישום של אשכול קיים).
לוחצים על הוספת אשכול חיצוני.
בשדה Cluster name (שם האשכול), מזינים את השם של האשכול שרוצים לרשום.
אופציונלי: מוסיפים Google Cloud תוויות לאשכול.
לוחצים על יצירת פקודת רישום.
ב-Cloud Shell או בכל מקום שבו שמרתם את פרטי הכניסה של חשבון השירות, עורכים ומריצים את הפקודה
gcloudשמוצגת בדף. צריך לציין את הערכים הבאים:- הערך CLUSTER_CONTEXT הוא ההקשר של האשכול כפי שהוא מופיע בקובץ kubeconfig. אפשר לקבל את הערך הזה משורת הפקודה על ידי הרצת הפקודה
kubectl config current-context. - KUBECONFIG_PATH הוא נתיב הקובץ המקומי שבו מאוחסן קובץ ה-kubeconfig. ברירת המחדל היא
$KUBECONFIGאם משתנה הסביבה הזה מוגדר, אחרת ברירת המחדל היא$HOME/.kube/config. - LOCAL_KEY_PATH הוא הנתיב לקובץ המפתח של חשבון השירות.
הפעלת הפקודה הזו פורסת את Connect Agent באשכול המשתמשים. כשהסוכן Connect מתחבר אל Google Cloud והאשכול שלכם רשום, מוצגת הודעה על הצלחה בדף.
- הערך CLUSTER_CONTEXT הוא ההקשר של האשכול כפי שהוא מופיע בקובץ kubeconfig. אפשר לקבל את הערך הזה משורת הפקודה על ידי הרצת הפקודה
לוחצים על הגדרת תוויות או על דילוג אם לא הגדרתם תוויות.
אפשרויות רישום מתקדמות (שורת פקודה בלבד)
הורדת המניפסט של Connect Agent
כדי להוריד את מניפסט ההתקנה של סוכן Connect בלי לפרוס את הסוכן, למשל אם רוצים לבדוק או לערוך את המניפסט לפני ההתקנה, צריך להעביר את האפשרות --manifest-output-file לפקודה gcloud container fleet memberships register. לדוגמה:
--manifest-output-file=[MANIFEST_FILE_PATH]
[MANIFEST_FILE_PATH] הוא נתיב הקובץ המקומי שבו רוצים לאחסן את מניפסט ההתקנה של Connect Agent.
אם משתמשים באפשרות הזו, סוכן Connect לא נפרס באשכול. כדי לפרוס את Connect Agent, צריך להחיל באופן ידני את המניפסט שהורד על האשכול.
שימוש בשרת Proxy
כדי להגדיר שרת proxy, מעבירים את הדגל --proxy לפקודה gcloud container fleet memberships register. לדוגמה:
--proxy=[URL]
כאשר [URL] היא כתובת ה-Proxy.
ה-Connect Agent תומך רק בשרתי proxy מסוג HTTP ו-HTTPS שמבוססים על CONNECT, ומקבל כתובות IP ושמות מארחים. חשוב לציין את הפרוטוקול שמתאים לסוג ה-proxy בכתובת ה-URL. לדוגמה, כדי להעביר שם מארח של HTTPS:
--proxy=https://mycorpproxy.com:443
אלא אם מציינים אחרת, Connect Agent משתמש ביציאה 3128 לשרת ה-proxy.
אם שרת ה-Proxy דורש הרשאה, צריך לוודא שמעבירים את פרטי הכניסה, למשל:
--proxy=http://user:password@10.10.10.10:8888
התקנת סוכן Connect באשכול עם צמתים של Windows ו-Linux
הסוכן Connect חייב לפעול בצומת Linux. אם אתם מתקינים באשכול מעורב עם צמתים של Linux ו-Windows, אתם יכולים להוסיף בורר צמתים מתאים להגדרת הפריסה כדי לוודא שהסוכן Connect נפרס בצומת Linux.
מריצים את הפקודה הבאה כדי לעדכן את הפריסה עם בורר הצמתים המתאים:
kubectl patch deployment \
$(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect
כדי לוודא שהעדכון הצליח, מריצים את הפקודה הבאה:
kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connectהפקודה אמורה להחזיר:
{"kubernetes.io/os":"linux"}פתרון בעיות
אם נתקלתם בבעיות במהלך ההגדרה, תוכלו לעיין במדריך לפתרון בעיות בנושא יצירת צי רכבים.
הפעלת תכונות של GKE באשכולות מצורפים
אחרי שרושמים את האשכולות, אפשר להפעיל בהם תכונות זמינות של GKE עבור האפליקציות. התכונות האלה נתמכות רק בסוגי האשכולות שאושרו. במאמר תמיכה בגרסאות ובשדרוגים מפורטות הגרסאות הנוכחיות של התכונות שנתמכות בסוגים האלה.
במדריכים הבאים מוסבר איך להפעיל את התכונות הנתמכות באשכולות:
Cloud Service Mesh 1.11 ואילך תומך ב-Amazon EKS:
ניהול ההגדרות והמדיניות:
גישה לאשכולות מצורפים
אחרי שרושמים אשכול מצורף, הוא מופיע בדפי האשכולות של GKE ב- Google Cloud console. עם זאת, כדי לראות פרטים נוספים כמו צמתים ועומסי עבודה, צריך להתחבר לאשכול ולהיכנס לחשבון. כדי להיכנס לאשכולות המצורפים מהמסוף Google Cloud , פועלים לפי ההוראות במאמר כניסה לאשכולות מהמסוף Google Cloud . שימו לב: בהתאם לשיטת האימות שתבחרו, יכול להיות שתצטרכו לבצע הגדרות נוספות לפני שאתם או משתמשים אחרים תוכלו להתחבר לאשכול. יכול להיות שגם אדמין של הפלטפורמה יצטרך לבצע הגדרות נוספות.
כדי לגשת לקלאסטרים מצורפים משורת הפקודה באמצעות זהות Google Cloud , אפשר לעיין במאמר חיבור לקלאסטרים רשומים באמצעות Connect gateway.
כדי לבצע אימות לאשכולות מצורפים באמצעות ספק הזהויות הקיים של צד שלישי (רק באשכולות EKS ב-AWS, תכונת Preview), אפשר לעיין במאמרים הגדרת שירות הזהויות של GKE לצי וגישה לאשכולות באמצעות שירות הזהויות של GKE.