בדף הזה מוסבר איך להעניק הרשאות לאשכול Google Kubernetes Engine (GKE) כדי לגשת למסד הנתונים של Spanner.
GKE הוא שירות Kubernetes מנוהל שמקל על פריסה וניהול של אפליקציות בקונטיינרים. השימוש ב-GKE וב-Spanner יחד מאפשר לכם ליהנות ממדרגיות, מאמינות, מאבטחה ומזמינות גבוהה בשכבת האפליקציה ובשכבת מסד הנתונים.
אפשר לגשת ל-Spanner API מאשכול GKE באמצעות איחוד זהויות של עומסי עבודה ל-GKE. איחוד שירותי אימות הזהות של עומסי עבודה ב-GKE מאפשר להשתמש בחשבון שירות של Kubernetes באשכול בתור חשבון שירות של ניהול זהויות והרשאות גישה (IAM). חשבון השירות של IAM מספק פרטי כניסה שמוגדרים כברירת מחדל לאפליקציה עבור הפודים שלכם, כך שלא צריך להגדיר כל פוד לשימוש בפרטי הכניסה האישיים שלכם.
אחרי שמגדירים את האפליקציות לאימות באמצעות איחוד שירותי אימות הזהויות של עומסי עבודה ב-GKE, אפשר להשתמש בספריות לקוח של Spanner כדי להריץ שאילתות במסדי הנתונים של Spanner. אפשר גם להעביר את האפליקציות למאגרי הצמתים של GKE.
כדי ליצור חיבור בסביבת דוגמה, אפשר לנסות את ה-Codelab בנושא חיבור Spanner ל-GKE Autopilot.
הפעלת איחוד זהויות של עומסי עבודה ל-GKE
אם עדיין לא עשיתם זאת, מפעילים את איחוד הזהויות של עומסי עבודה ל-GKE באשכול GKE. כדי להפעיל איחוד זהויות של עומסי עבודה ל-GKE באשכול חדש, צריך ליצור מאגר צמתים חדש. אפשר גם להפעיל איחוד זהויות של עומסי עבודה ל-GKE במאגר צמתים קיים. באשכולות GKE Autopilot, איחוד זהויות של עומסי עבודה ל-GKE מופעל כברירת מחדל. מידע נוסף זמין במאמר הפעלת איחוד שירותי אימות הזהות של עומסי עבודה ב-GKE.
אימות חיבור ל-Spanner באמצעות איחוד שירותי אימות הזהות של עומסי עבודה ל-GKE
מגדירים את האפליקציות כך שיבצעו אימות ל- Google Cloud באמצעות איחוד שירותי אימות הזהויות של עומסי עבודה ב-GKE.
מוודאים שקבוצת ה-Pod של GKE משתמשת באובייקט Kubernetes
ServiceAccount, כמו שמתואר במאמר הגדרת הרשאה וגורמים מרכזיים.יוצרים מדיניות הרשאה ב-IAM שמעניקה לאובייקט
ServiceAccountשל Kubernetes את תפקידי ה-IAM הנדרשים ב-Spanner. בדוגמה הבאה מוקצה התפקיד Spanner Database User (roles/spanner.databaseUser):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME \ --role=roles/spanner.databaseUser \ --condition=Noneמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של אשכול GKE. -
PROJECT_NUMBER:Google Cloud מספר הפרויקט. -
NAMESPACE: מרחב השמות של Kubernetes שמכיל את חשבון השירות. -
KSA_NAME: השם של ServiceAccount.
-
חיבור למסדי נתונים של Spanner
אחרי אימות של ה-Pod של האפליקציה, אפשר להשתמש באחת מספריות הלקוח של Spanner כדי להריץ שאילתות במסד הנתונים של Spanner.
המאמרים הבאים
- איך פורסים את האפליקציה לאשכול GKE
- כך פורסים את האפליקציה באמצעות GKE Autopilot ו-Spanner.
- מידע נוסף על העברת עומסי עבודה קיימים אל איחוד זהויות של עומסי עבודה ל-GKE
- מידע נוסף על שיטות מומלצות לשימוש ב-SQL
- שילוב של Spanner עם מערכות ORM אחרות, כולל Hibernate ORM, gorm ו-Django ORM.