מידע על Kubeconfig

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

קובץ התצורה של Kubernetes

‫Kubernetes משתמש בקובץ YAML שנקרא kubeconfig כדי לאחסן את פרטי האימות של האשכול עבור kubectl. ‫kubeconfig מכיל רשימה של הקשרים שאליהם מתייחס kubectl כשמריצים פקודות. כברירת מחדל, הקובץ נשמר במיקום $HOME/.kube/config.

הקשר הוא קבוצה של פרמטרים של גישה. כל הקשר מכיל אשכול Kubernetes, משתמש ומרחב שמות. ההקשר הנוכחי הוא האשכול שמוגדר כרגע כברירת מחדל עבור kubectl: כל הפקודות של kubectl מופעלות באשכול הזה.

אחרי שיוצרים אשכול, פועלים לפי ההוראות שבקטע יצירת רשומה של kubeconfig כדי להוסיף את ההקשר של האשכול ל-kubeconfig המקומי.

נקודות קצה פרטיות

לכל האשכולות יש נקודת קצה קנונית. נקודת הקצה חושפת את שרת ה-API של Kubernetes ש-kubectl ושירותים אחרים משתמשים בו כדי לתקשר עם מישור הבקרה של האשכול דרך יציאת TCP‏ 443. ב-AWS, נקודת הקצה הזו היא שם DNS שאפשר לפתור רק בתוך האשכול – לדוגמה, gke-abcdefghijk-cp-ffabcdef123456.elb.us-west-1.amazonaws.com. אי אפשר לגשת לנקודת הקצה הזו באינטרנט הציבורי. אפשר לקבל את כתובת נקודת הקצה של האשכול הפרטי מהשדה endpoint בפלט של הפקודה gcloud container aws clusters describe.

חיבור נקודת קצה של שער

כברירת מחדל, הפקודה gcloud container aws clusters get-credentials יוצרת kubeconfig שמשתמש ב-Connect gateway. במקרה הזה, kubeconfig משתמש ב-Connect, שמעביר את התנועה באופן מאובטח לנקודת הקצה הפרטית בשמכם.kubectl כשמשתמשים בשער Connect, נקודת הקצה נראית כך: https://connectgateway.googleapis.com/v1/projects/PROJECT_NUMBER/memberships/CLUSTER_NAME, כאשר PROJECT_NUMBER הוא מספר הפרויקט ו-CLUSTER_NAME הוא שם האשכול.

אם יש לכם גישה לנקודת הקצה הפרטית של האשכול דרך ה-VPC, אתם יכולים להתחבר ישירות לנקודת הקצה הפרטית. כדי ליצור kubeconfig באמצעות נקודת הקצה הפרטית, משתמשים בפקודה gcloud container aws clusters get-credentials --private-endpoint.

מידע על אימות ב-kubectl

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

כשמשתמשים ב-gcloud כדי להגדיר את kubeconfig של הסביבה עבור אשכול חדש או קיים, gcloud מעניק ל-kubectl את אותם פרטי כניסה שבהם משתמש gcloud עצמו. לדוגמה, אם אתם משתמשים ב-gcloud auth login, פרטי הכניסה האישיים שלכם מסופקים ל-kubectl, כולל היקף ההרשאות userinfo.email. כך אפשר לאמת את לקוח kubectl ב-GKE ב-AWS.

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