התחברות לאשכול שתואם ל-CNCF

במסמך הזה מתוארות שלוש שיטות לחיבור לאשכול מצורף שתואם ל-CNCF:

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

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

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

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

לפני שממשיכים לשיטה מספר 2 או לשיטה מספר 3, צריך לעמוד בדרישות נוספות. בסעיפים הבאים יש מידע נוסף בנושא.

לפני שמתחילים בשיטה מספר 2

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

  • הגרסה האחרונה של Google Cloud CLI. מידע על עדכון ה-CLI של gcloud זמין במאמר gcloud components update.
  • גרסאות של אשכולות מצורפים: 1.26.0-gke.8, ‏ 1.27.0-gke.5, ‏ 1.28.0-gke.2 ואילך.

לפני שמתחילים בשיטה מספר 3

כדי להשתמש בשיטה מספר 3 לחיבור לאשכול המצורף, צריך לוודא שמתקיימים התנאים המוקדמים הבאים:

  1. מוודאים שמותקנת הגרסה העדכנית של Google Cloud CLI. מידע על עדכון ה-CLI של gcloud זמין במאמר gcloud components update.

  2. ודאו שאתם משתמשים בגרסאות של אשכולות מצורפים 1.27.0-gke.5,‏ 1.28.0-gke.2 ואילך.

  3. הגדרת איחוד שירותי אימות הזהות של כוח העבודה (כדי שמשתמשים או קבוצות חיצוניים יוכלו להשתמש ב-API של אשכולות GKE מצורפים):

  4. אופציונלי: מקצים למשתמשים או לקבוצות החיצוניים את התפקידים המתאימים בניהול הזהויות והרשאות הגישה (IAM). השלב הזה נדרש רק אם רוצים לתת למשתמשים או לקבוצות את היכולת ליצור או לעדכן אשכולות. הוא לא נדרש רק כדי לגשת לאשכול.

    הערה: תפקידים הם אוספים של הרשאות. כשמקצים תפקיד לישות (משתמש, קבוצה או חשבון שירות), נותנים לישות הזו את כל ההרשאות שהתפקיד מכיל.

    משתמשים

    למשתמשים ספציפיים, צריך להקצות את התפקיד gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה.
    • SUBJECT_VALUE: המזהה שמזהה באופן ייחודי משתמש חיצוני. לדוגמה, המזהה יכול להיות כתובת אימייל כמו alex@cymbalgroup.com.

    קבוצות

    לקבוצות, צריך להקצות את התפקיד gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה.
    • GROUP_ID: מזהה ייחודי של קבוצה חיצונית.

    במאמר תפקידים והרשאות ב-API מפורטות ההרשאות והתפקידים ב-API שנדרשים לשימוש באשכולות שמצורפים ל-GKE.

שיטה 1: התחברות לאשכול המצורף בתור משתמש Google

כדי להתחבר לאשכול מצורף כמשתמש Google, פועלים לפי השלבים הבאים:

  1. מפעילים את ממשקי ה-API‏ connectgateway ו-cloudresourcemanager באמצעות הפקודה הבאה:

     gcloud services enable --project=PROJECT_ID \
         connectgateway.googleapis.com \
         cloudresourcemanager.googleapis.com
    

    מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud.

  2. הגדרה והחלה של כללי RBAC באופן אוטומטי או ידני:

    • שיטה אוטומטית: אם כשצירפתם את האשכול ציינתם משתמשי Google בשדה --admin-users של הפקודה gcloud container attached clusters register, למשתמשים האלה הוענקו באופן אוטומטי הרשאות אדמין באשכול. לכן אפשר לדלג על השלב הזה.

    • שיטה ידנית: הגדרה ידנית של כללי RBAC למשתמשי Google ספציפיים על ידי יצירת מניפסט Kubernetes YAML. פרטים נוספים זמינים במאמר בנושא שימוש בהרשאות RBAC.

  3. מריצים את הפקודה הבאה כדי לקבל קובץ תצורה של Kubernetes kubeconfig:

    gcloud container fleet memberships get-credentials CLUSTER_NAME
    

    מחליפים את CLUSTER_NAME בשם של האשכול שרוצים לקבל את פרטי הכניסה לחיבור שלו.

אחרי שמבצעים את השלבים האלה, אפשר להתחבר לאשכול המצורף כמשתמש Google.

שיטה 2: התחברות לאשכול המצורף באמצעות קבוצות Google

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

יעיל יותר להשתמש בקבוצות Google כדי להעניק גישה לאשכול מאשר ליצור הרשאות נפרדות למשתמשים פרטיים. לדוגמה, נניח שרוצים להוסיף 50 משתמשים לקבוצת האדמינים של האשכול, 75 משתמשים לקבוצת העורכים ו-100 משתמשים לקבוצת הקוראים. שיטה מספר 1, שמתוארת במסמך הזה, מחייבת אתכם ליצור כללי RBAC בקובץ המניפסט של Kubernetes עבור 225 משתמשים. לעומת זאת, שיטה מספר 2 חוסכת לכם זמן כי אתם צריכים ליצור כללי RBAC רק לשלוש קבוצות Google.

כדי לאשר לקבוצות Google להתחבר לאשכול מצורף, מבצעים את השלבים הבאים:

  1. מפעילים את ממשקי ה-API‏ connectgateway ו-cloudresourcemanager באמצעות הפקודה הבאה:

      gcloud services enable --project=PROJECT_ID \
          connectgateway.googleapis.com \
          cloudresourcemanager.googleapis.com
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  2. אם הקבוצה gke-security-groups לא קיימת, יוצרים אותה כקבוצה בדומיין של הפרויקט.

  3. יוצרים קבוצה אחת או יותר של קבוצות משנה בתוך הקבוצה gke-security-groups לאימות אשכול.

  4. מוסיפים משתמשים לקבוצות המשנה החדשות שנוצרו.

  5. מקצים תפקידי IAM לקבוצות Google:

    1. בוחרים תפקיד מתאים לקבוצה. התפקיד הזה קובע את אופן האינטראקציה של הקבוצה עם שער החיבור. התפקיד יכול להיות אחד מהתפקידים הבאים: roles/gkehub.gatewayAdmin,‏ roles/gkehub.gatewayEditor, ‏ roles/gkehub.gatewayReader. (שימו לב שאתם לא מעניקים כאן הרשאות על האשכול המצורף – השלב הזה יגיע בהמשך. בשלב הזה רק קובעים איך משתמשים בקבוצה יכולים לתפעל את שער החיבור.

    2. מריצים את הפקודה הבאה כדי להקצות את התפקיד לקבוצה:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_NAME@DOMAIN \
        --role=GATEWAY_ROLE
      

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

      • PROJECT_ID: מזהה הפרויקט ב-Google
      • GROUP_NAME: השם של הקבוצה שרוצים לתת לה גישה
      • DOMAIN: הדומיין שלכם ב-Google Workspace
      • GATEWAY_ROLE: התפקיד שנבחר. לדוגמה, roles/gkehub.gatewayAdmin, ‏ roles/gkehub.gatewayEditor או roles/gkehub.gatewayReader.
  6. במניפסט של Kubernetes, מגדירים את סוג ההרשאה שיש לכל קבוצת Google באשכול. לדוגמה, המניפסט הבא מקצה לקבוצת Google‏ cluster-admin-team את התפקיד של אדמין אשכול:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: gateway-cluster-admin-group
    subjects:
    - kind: Group
      name: cluster-admin-team@example.com
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    
  7. שומרים את המניפסט בקובץ ומריצים את הפקודה הבאה כדי להחיל אותו על האשכול:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

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

    • KUBECONFIG_PATH: הנתיב לקובץ kubeconfig.
    • FILENAME: השם של קובץ המניפסט שיצרתם.

אחרי שמבצעים את השלבים האלה, משתמשים ששייכים לקבוצות Google מסוימות יכולים להתחבר לאשכול המצורף. בדוגמה שצוינה, משתמשים ששייכים לקבוצת Google‏ cluster-admin-team יכולים להתחבר לאשכול כאדמינים.

שיטה 3: מתן גישה לזהויות חיצוניות כשמצרפים או מעדכנים אשכול

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

כדי לצרף אשכול שתואם ל-CNCF, פועלים לפי השלבים במאמר צירוף אשכול שתואם ל-CNCF. כדי לעדכן אשכול שתואם ל-CNCF, פועלים לפי השלבים במאמר עדכון אשכול שתואם ל-CNCF.

כשמריצים את הפקודה של ה-CLI של gcloud כדי לרשום או לעדכן אשכול, מציינים את הפרמטרים admin-users או admin-groups באופן הבא:

gcloud container attached clusters [register|update] CLUSTER_NAME \
    --admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
    --admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

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

  • CLUSTER_NAME: השם של האשכול.
  • WORKFORCE_POOL_ID: המזהה שמזהה באופן ייחודי את מאגר הזהויות של כוח העבודה ב- Google Cloud. כשמגדירים את הפורמט של המזהה, חשוב לפעול לפי ההנחיות המומלצות שמופיעות במסמכי ה-IAM בקטע פרמטרים של שאילתה.
  • SUBJECT_VALUE: המזהה שמזהה באופן ייחודי משתמש חיצוני. לדוגמה, המזהה יכול להיות כתובת אימייל כמו alex@cymbalgroup.com.
  • GROUP_ID: מזהה ייחודי של קבוצה חיצונית.

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

כדי לנהל את האשכול ממסוף Google Cloud באמצעות Cloud Identity, אפשר לעיין במאמר בנושא כניסה באמצעות זהות Google Cloud .