חיבור לאשכול מצורף של EKS

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

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

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

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

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

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

כדי לצרף אשכול EKS, פועלים לפי השלבים במאמר צירוף אשכול EKS. כדי לעדכן אשכול EKS, פועלים לפי השלבים שמפורטים במאמר עדכון אשכול EKS.

כשמריצים את הפקודה של ה-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 .