במאמר הזה מוסבר איך להתחבר ל-GKE ב-AWS כחברים בקבוצה ב-Google.
יעיל יותר להשתמש בקבוצות Google כדי להעניק גישה לאשכול מאשר ליצור הרשאות נפרדות למשתמשים פרטיים. לדוגמה, נניח שרוצים להוסיף 50 משתמשים לקבוצת האדמינים של האשכול, 75 משתמשים לקבוצת העורכים ו-100 משתמשים לקבוצת הקוראים. כדי לאפשר לכל המשתמשים האלה להתחבר לאשכול, תצטרכו ליצור כללי RBAC בקובץ המניפסט של Kubernetes עבור 225 משתמשים. לעומת זאת, אם תפעילו גישה לאשכול באמצעות קבוצות Google, תוכלו לחסוך זמן כי תצטרכו ליצור כללי RBAC רק לשלוש קבוצות Google.
לפני שמתחילים
כדי להתחבר לאשכול כחברים בקבוצת Google, צריך לעמוד בדרישות המוקדמות הבאות:
מוודאים שמותקנת הגרסה העדכנית של Google Cloud CLI. מידע על עדכון ה-CLI של gcloud זמין במאמר בנושא
gcloud components update.משתמשים ב-GKE ב-AWS בגרסה 1.25 ומעלה, שנדרשת לגישה באמצעות שער חיבור.
kubectl
חיבור לאשכול באמצעות קבוצות Google
כדי לתת לקבוצות Google הרשאה להתחבר ל-GKE ב-AWS, מבצעים את השלבים הבאים:
מפעילים את ממשקי ה-API
connectgatewayו-cloudresourcemanagerבאמצעות הפקודה הבאה:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.comמחליפים את
PROJECT_IDבמזהה של פרויקט AWS.אם הקבוצה
gke-security-groupsלא קיימת, יוצרים אותה כקבוצה בדומיין של הפרויקט.יוצרים קבוצה אחת או יותר של קבוצות משנה בתוך הקבוצה
gke-security-groupsלאימות אשכול.מוסיפים משתמשים לקבוצות המשנה החדשות שנוצרו.
כדי לתת גישה ל-
kubectlבאמצעות שער חיבור, צריך להקצות תפקידי IAM לקבוצות Google:בוחרים תפקיד מתאים לקבוצה. התפקיד הזה קובע את אופן האינטראקציה של הקבוצה עם שער החיבור. התפקיד יכול להיות אחד מהתפקידים הבאים:
roles/gkehub.gatewayAdmin,roles/gkehub.gatewayEditor, roles/gkehub.gatewayReader. (שימו לב: בשלב הזה אתם לא מעניקים הרשאות לגבי האשכול – השלב הזה יגיע בהמשך. במקרה הזה, אתם רק קובעים איך משתמשים בקבוצה יכולים לתפעל את שער החיבור.)מריצים את הפקודה הבאה כדי להקצות את התפקיד לקבוצה:
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.
-
במניפסט של 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שומרים את המניפסט בקובץ ומריצים את הפקודה הבאה כדי להחיל אותו על האשכול:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAMEמחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץkubeconfig. -
FILENAME: השם של קובץ המניפסט שיצרתם.
-
אחרי שמבצעים את השלבים האלה, משתמשים ששייכים לקבוצות Google מסוימות יכולים להתחבר לאשכול. בדוגמה שצוינה, משתמשים ששייכים לקבוצת Google cluster-admin-team יכולים להתחבר לאשכול כאדמינים.