במסמך הזה מוסבר איך לפתור בעיות בגישת משתמשים כשמשתמשים בספקי זהויות של צד שלישי כדי לבצע אימות לאשכולות של חברי צי.
gcloud anthos create-login-config לא מצליח לקבל clientconfig
הבעיה הזו מתרחשת באחד מהמקרים הבאים:
- קובץ ה-kubeconfig שהועבר אל
gcloud anthos create-login-configשגוי. - המקור המותאם אישית ClientConfig לא קיים באשכול (האימות של צד שלישי לא מוגדר באשכול).
הודעת השגיאה
failed to get clientconfig default in namespace kube-public
פתרון
כדי לפתור את הבעיה:
- מוודאים שיש לכם את קובץ ה-kubeconfig הנכון עבור האשכול.
כדי לוודא שהמשאב המותאם אישית ClientConfig נמצא באשכול, מריצים את הפקודה הבאה:
kubectl --kubeconfig KUBECONFIG get clientconfig default -n kube-public
אם ClientConfig לא קיים באשכול, צריך להתקין ולהגדיר אותו באשכול. מידע נוסף על אפשרויות ההגדרה של אשכולות זמין במאמר אפשרויות הגדרה של אשכולות.
gcloud anthos create-login-config נכשל בגלל שם אשכול כפול
הבעיה הזו מתרחשת אם מנסים ליצור תצורת התחברות לאשכול בקובץ שכבר מכיל תצורת התחברות לאשכול הזה.
הודעת השגיאה
error merging with file FILENAME because FILENAME contains a
cluster with the same name as the one read from KUBECONFIG.
פתרון
כדי לפתור את הבעיה, משתמשים בדגל --output כדי לציין קובץ יעד חדש.
אם לא מספקים את --output, נתוני ההגדרה של הכניסה נכתבים לקובץ בשם kubectl-anthos-config.yaml בספרייה הנוכחית.
gcloud anthos auth login נכשל עם proxyconnect tcp
הבעיה הזו מתרחשת כשיש שגיאה בהגדרות של משתני הסביבה https_proxy או HTTPS_PROXY. אם יש https:// שצוין במשתני הסביבה, יכול להיות שספריות לקוח ה-HTTP של GoLang ייכשלו אם ה-proxy מוגדר לטפל בחיבורי HTTPS באמצעות פרוטוקולים אחרים, כמו SOCK5.
הודעת השגיאה
proxyconnect tcp: tls: first record does not look like a TLS handshake
פתרון
כדי לפתור את הבעיה, צריך לשנות את משתני הסביבה https_proxy ו-HTTPS_PROXY כדי להשמיט את https:// prefix. ב-Windows, משנים את משתני הסביבה של המערכת.
לדוגמה, שינוי הערך של משתנה הסביבה https_proxy מ-https://webproxy.example.com:8000 ל-webproxy.example.com:8000.
הגישה לאשכול נכשלת כשמשתמשים ב-kubeconfig שנוצר על ידי gcloud anthos auth login
הבעיה הזו מתרחשת כששרת ה-API של Kubernetes לא מצליח לאשר את המשתמש בגלל אחת מהסיבות הבאות:
- יש שגיאה בהגדרה שמשמשת לכניסה באמצעות הפקודה
gcloud anthos auth login. - כללי המדיניות הנדרשים של RBAC שגויים או חסרים עבור המשתמש.
הודעת השגיאה
Unauthorized
פתרון
כדי לפתור את הבעיה:
אימות ההגדרה שמשמשת לכניסה.
הגדרת OIDC
בקטע
authentication.oidcבקובץ התצורה של אשכול המשתמשים יש שדותgroupו-usernameשמשמשים להגדרת הדגלים--oidc-group-claimו---oidc-username-claimבשרת ה-API של Kubernetes. כששרת ה-API מקבל אסימון זהות של משתמש, הוא מעביר את האסימון לאשכול, שמחזיר את הערכים שחולצוgroup-claimו-username-claimלשרת ה-API. שרת ה-API משתמש בתשובה כדי לוודא שלקבוצה או למשתמש המתאימים יש את ההרשאות הנכונות.מוודאים שהטענות שמוגדרות עבור
groupו-userבקטעauthentication.oidcשל קובץ ההגדרה של האשכול מופיעות בטוקן המזהה.אימות מדיניות RBAC שהוחלה.
במאמר הגדרת בקרת גישה מבוססת-תפקידים (RBAC) מוסבר איך להגדיר את מדיניות ה-RBAC הנכונה.
תפקידי RBAC לקבוצות לא פועלים ב-Google Groups
מוודאים שהצי או האשכול מוגדרים לאימות של צד שלישי.
פועלים לפי שלבי ההגדרה כדי לוודא שהאימות של צד שלישי מוגדר ומופעל.
מוודאים שהגדרתם את הקבוצות ב-Google Workspace בצורה נכונה:
- הקבוצה
gke-security-groupsנוצרה בארגון שלכם ב-Google Workspace. - המשתמש שרוצים לתת לו גישה ל-RBAC הוא חבר בתת-קבוצה עם
gke-security-groupsכקבוצת האם שלה.
- הקבוצה
תפקידי RBAC לקבוצות לא פועלים בספקי OIDC
אימות אם יש בטוקן המזהה את פרטי הקבוצה
אחרי שמריצים את הפקודה
gcloud anthos auth loginכדי להתחיל את תהליך האימות של OIDC, אסימון הזהות נשמר בקובץkubeconfigבשדהid-token. משתמשים ב-jwt.io כדי לפענח את האסימון המזהה ולוודא שהוא מכיל את פרטי הקבוצה של המשתמש כצפוי.אם באסימון המזהה לא מופיע מידע על הקבוצה שאליה המשתמש משתייך, צריך להגדיר בצורה נכונה את ספק ה-OIDC כך שיחזיר את פרטי הקבוצה בהתאם לתיעוד של ספק ה-OIDC. לדוגמה, אם אתם משתמשים בהגדרת OIDC של ספק הזהויות Okta, אתם צריכים לפעול לפי התיעוד של ספק הזהויות Okta כדי להגדיר קבוצות באסימון המזהה.
אם באסימון המזהה יש פרטי קבוצה, צריך לוודא שמפתח פרטי הקבוצה באסימון המזהה תואם לשדה
groupsClaimשהוגדר בקטעoidc.לדוגמה, אם אסימון ה-ID מכיל מידע על קבוצה במפתח
groups:"groups" : ["group1", "group2" ...]אז הערך בשדה
groupsClaimצריך להיותgroupsבקטעoidc.אחרי שמשנים את ההגדרה בקטע
oidc, חשוב להריץ שוב את ההוראות שמפורטות במאמרים הגדרת גישת משתמש וגישה לאשכולות.
פתרון בעיות שקשורות לספקי זהויות
אם נתקלתם בבעיות בשימוש ב-OIDC או ב-LDAP עם האשכול, תוכלו לפעול לפי השלבים שבקטע הזה כדי לפתור את הבעיות ולבדוק אם יש בעיה בהגדרת ספק הזהויות.
הפעלת יומן ניפוי הבאגים
כדי לפתור בעיות שקשורות לזהות באשכול, צריך להפעיל את יומני הניפוי של Pods בפריסת ais.
מבצעים תיקון באשכול הקיים באמצעות
kubectl patch:kubectl patch deployment ais \ -n anthos-identity-service --type=json \ -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--vmodule=cloud/identity/hybrid/charon/*=LOG_LEVEL"}]' \ --kubeconfig KUBECONFIGמחליפים את מה שכתוב בשדות הבאים:
LOG_LEVEL: כדי לקבל את היומנים המפורטים ביותר, צריך להגדיר את הערך הזה לרמה3כשמנסים לפתור בעיות.
KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול המשתמשים.
בדיקת יומן הקונטיינר
בודקים את התוכן של יומני מאגרי התגים כדי לראות אם יש שגיאות או אזהרות.
כדי לבדוק את היומנים, משתמשים ב-
kubectl logs:kubectl logs -f -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGמחליפים את
KUBECONFIGבנתיב לקובץ kubeconfig של אשכול המשתמשים.
הפעלה מחדש של ה-Pod
אם ביומני הרישום של מאגר התגים מופיעות בעיות, מפעילים מחדש את ה-Pod.
כדי להפעיל מחדש את ה-Pod, מוחקים את ה-Pod הקיים. תיווצר באופן אוטומטי יחידת Pod חדשה כתחליף.
kubectl delete pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGמחליפים את
KUBECONFIGבנתיב לקובץ kubeconfig של אשכול המשתמשים.
פתרון בעיות בקישוריות לספק הזהויות
אם נראה שה-Pod פועל בצורה תקינה, צריך לבדוק את הקישוריות לספק הזהויות המרוחק.
מפעילים Pod של busybox באותו מרחב שמות:
kubectl run curl --image=radial/busyboxplus:curl \ -n anthos-identity-service -- sleep 3000 \ --kubeconfig KUBECONFIGמחליפים את
KUBECONFIGבנתיב לקובץ kubeconfig של אשכול המשתמשים.כדי לבדוק אם אפשר לאחזר את כתובת ה-URL של Discovery, נכנסים ל-Pod של busybox ומריצים את הפקודה
curl:kubectl exec pod/curl -n anthos-identity-service -- \ curl ISSUER_URL \ --kubeconfig KUBECONFIGמחליפים את מה שכתוב בשדות הבאים:
-
ISSUER_URL: כתובת ה-URL של מנפיק ספק הזהויות. -
KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול המשתמשים.
תגובה מוצלחת היא תוצאת JSON עם נקודות הקצה המפורטות של ספק הזהויות.
-
אם הפקודה הקודמת לא מחזירה את התוצאה הצפויה, פנו לאדמין של ספק הזהויות לקבלת עזרה נוספת.
הכניסה באמצעות LDAP לא פועלת באשכול הניהול של Google Distributed Cloud
בשלב הזה, LDAP נתמך רק באשכול משתמשים של Google Distributed Cloud.