צירוף אשכולות של צד שלישי ל-Google Cloud (דור קודם)

אשכולות 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

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

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Anthos API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Anthos API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. כדאי לעיין בדרישות המוקדמות לרישום צי כדי לוודא שיש לכם את ההרשאות הרלוונטיות וממשקי API מופעלים לרישום אשכול.
  15. במדריך לפני שמתחילים מפורטות הדרישות הספציפיות לצירוף אשכולות מחוץ ל- Google Cloud, כולל שלבי הגדרה מיוחדים שאולי תצטרכו לבצע בהתאם לסוג האשכול.

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

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

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

הגדרת הזהות

לכל האשכולות המצורפים נדרשת זהות שבה סוכן Connect ישתמש במהלך האימות ב-Google. אם האשכול עומד בדרישות, אפשר לרשום אותו ב-Fleet עם אימות באמצעות Workload Identity. באמצעות התכונה הזו, אשכולות משתמשים בזהויות ממאגר זהויות של עומסי עבודה ב-Fleet, שזמין לכל ה-Fleet. במאמר הסבר על Fleet Workload Identity תוכלו לקרוא איך Fleet Workload Identity פועל ומה היתרונות של השימוש בו.

אם אתם לא יכולים להשתמש ב-Workload Identity של Fleet, כדי לרשום אשכול מצורף צריך Google Cloud חשבון שירות לאימות. מומלץ ליצור חשבון שירות חדש לכל אשכול שרוצים לצרף. כדי ליצור חשבון שירות לאשכול עם התפקידים המתאימים, פועלים לפי ההוראות במאמר יצירת חשבון שירות של Google Cloud באמצעות gcloud. אחרי שיוצרים את חשבון השירות, אפשר להשתמש בקובץ ה-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לרישום האשכול (עם חשבון שירות בלבד).

כדי לרשום אשכול:

  1. במסוף Google Cloud , נכנסים לדף Google Kubernetes Engine clusters overview.

    מעבר לאשכולות GKE

  2. לוחצים על Register existing cluster.

  3. לוחצים על הוספת אשכול חיצוני.

  4. בשדה Cluster name, מזינים את שם האשכול שרוצים לרשום.

  5. אופציונלי: מוסיפים Google Cloud תוויות לאשכול.

  6. לוחצים על יצירת פקודת רישום.

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

  8. לוחצים על הגדרת תוויות, או על דילוג אם לא הגדרתם תוויות.

אפשרויות מתקדמות להרשמה (שורת פקודה בלבד)

הורדת המניפסט של 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 תומך רק בשרתי proxy מסוג HTTP ו-HTTPS שמבוססים על CONNECT, ומקבל כתובות IP ושמות מארחים. חשוב לציין בכתובת ה-URL את הפרוטוקול שמתאים לסוג השרת הפרוקסי. לדוגמה, כדי להעביר שם מארח של HTTPS:

--proxy=https://mycorpproxy.com:443

אם לא תציינו אחרת, סוכן Connect ישתמש ביציאה 3128 לשרת ה-proxy.

אם שרת ה-Proxy דורש הרשאה, צריך לוודא שאתם מעבירים את פרטי הכניסה שלכם, למשל:

--proxy=http://user:password@10.10.10.10:8888

התקנת Connect Agent באשכול עם צמתים של 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 עבור האפליקציות. התכונות האלה נתמכות רק בסוגי האשכולות שאושרו. במאמר תמיכה בגרסאות ובשדרוגים מפורטות הגרסאות הנוכחיות של התכונות שנתמכות בסוגים האלה.

במדריכים הבאים מוסבר איך להפעיל את התכונות הנתמכות באשכולות:

גישה לאשכולות מצורפים

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

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

כדי לבצע אימות לאשכולות מחוברים באמצעות ספק הזהויות הקיים של צד שלישי (אשכולות EKS ב-AWS בלבד, תכונה בגרסת טרום-השקה), קראו את המאמרים הגדרת GKE Identity Service ל-fleet וגישה לאשכולות באמצעות GKE Identity Service.

מה השלב הבא?