בדף הזה מתוארים השלבים שצריך להשלים לפני שמתקינים את GKE ב-AWS.
סביבה
כדי להתקין את GKE ב-AWS, אתם צריכים סביבה שבה תוכלו להתקין ולהפעיל מגוון כלים. השלבים הבאים מבוססים על ההנחה שאתם משתמשים במעטפת bash ב-Linux או ב-macOS. אם אין לכם גישה לסביבת מעטפת bash, אתם יכולים להשתמש ב-Cloud Shell.
דרישות של AWS
כדי להשלים את התהליך שמתואר בנושא הזה, אתם צריכים חשבון AWS עם גישה לשורת הפקודה ושני מפתחות של AWS Key Management Service (KMS) באותו אזור כמו אשכולות המשתמשים.
מידע נוסף על משאבי AWS נדרשים אחרים זמין במאמר בנושא דרישות.
הגדרת AWS
לפני שמתחילים
לפני שממלאים את הסעיף הזה:
- מורידים ומתקינים את AWS CLI.
מריצים את הפקודה
aws --versionכדי לאשר את ההתקנה. אם קובץ ההפעלה לא נמצא, מוסיפים את הכליawsאלPATH. - מגדירים את פרטי הכניסה ל-AWS IAM ואת האזור ב-AWS באמצעות
aws configure.
הרשאות משתמשים עם הרשאת אדמין
כדי להשתמש ב-GKE on AWS, למי שיוצר שירות ניהול צריכות להיות הרשאות מסוימות. לפני שיוצרים שירות ניהול או אשכולות משתמשים, צריך ליצור פרטי כניסה ל-AWS IAM או לקבל גישה לפרטי כניסה כאלה שעומדים בדרישות.
יצירת מפתח KMS
GKE ב-AWS דורש שני מפתחות AWS KMS. מפתחות ה-KMS מצפינים:
- הנתונים במהלך תהליך ההתקנה עם הצפנת מעטפה.
- סודות בשכבת האפליקציה באשכולות המשתמשים.
כדי ליצור שני מפתחות KMS של AWS, פועלים לפי השלבים הבאים.
שורת פקודה
יוצרים מפתח KMS בחשבון AWS.
aws kms create-keyהפלט כולל את המטא-נתונים של המפתח.
בפלט מהפקודה הקודמת, מעתיקים את שם המשאב של המפתח ב-Amazon (ARN) מהשדה
Arn. לדוגמה, למפתח באזורus-west-2יש את ה-ARNarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.יוצרים כינוי למפתח באמצעות
aws kms create-alias. כינוי מאפשר לכם לנהל את מפתחות AWS KMS לפי שם.aws kms create-alias \ --alias-name=alias/key-name \ --target-key-id=key-arnחוזרים על השלבים הקודמים כדי להוסיף עוד מפתח.
המסוף
- מתחברים למסוף AWS.
- עוברים אל KMS ובוחרים באפשרות Customer managed keys (מפתחות בניהול הלקוח) בסרגל הצד.
- לוחצים על Create Key (יצירת מפתח).
- משאירים את האפשרויות שמוגדרות כברירת מחדל.
- אחרי שיוצרים את המפתח, בוחרים אותו מהרשימה.
- מעתיקים את ה-ARN של המפתח.
- חוזרים על השלבים הקודמים כדי להוסיף עוד מפתח.
Google Cloud דרישות
יכול להיות שהגבלות אבטחה שהוגדרו בארגון שלכם ימנעו מכם להשלים את השלבים הבאים. מידע לפתרון בעיות זמין במאמר פיתוח אפליקציות בסביבה מוגבלת. Google Cloud
לפני שמתחילים
כדי להפעיל ממשקי API בפרויקט ב- Google Cloud שבו אתם מחברים את סביבת GKE on AWS, אתם צריכים לוודא שיש לכם הרשאות של בעלי פרויקט בחשבון Google. משתמשים בהרשאות בעלים רק כדי ליצור את חשבונות השירות של GKE ב-AWS שמתוארים בקטע הבא.
מתקינים את Google Cloud CLI.
צריך להפעיל את Anthos API בפרויקט Google Cloud . הפעלת ה-API הזה מאפשרת לכם להשתמש בתכונות אחרות של Google Kubernetes Engine עם הפרויקט שלכם ב- Google Cloud .
יצירת חשבונות שירות ב-GKE on AWS
בקטע הזה יוצרים שלושה חשבונות שירות ומפתחות IAM ל-GKE ב-AWS. ברשימה הבאה מפורטים חשבונות השירות האלה:
| שם | תפקידים | תיאור |
|---|---|---|
management-sa
|
gkehub.admin | הרשאות לניהול חברות במועדון |
hub-sa
|
gkehub.connect | הרשאה להגדיר חיבור בין אשכולות המשתמשים לבין Hub. |
node-sa
|
storage.objectViewer | הרשאה לגשת אל Container Registry. |
שורת פקודה
מבצעים אימות באמצעות Google Cloud CLI.
gcloud auth login &&\ gcloud auth application-default loginתתבקשו פעמיים להיכנס לכתובת
cloud.google.comולאמת את החשבון באמצעות חשבון Google.מגדירים את הפרויקט כמשתנה סביבה ומגדירים את ברירת המחדל שלכם ב-project-id באמצעות ה-CLI של gcloud. Google Cloud
export PROJECT_ID=project-id gcloud config set project $PROJECT_IDמחליפים את הערך של project-id בפרויקט שלכם ב- Google Cloud .
מפעילים את ממשקי ה-API. Google Cloud
gcloud services enable anthos.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com gcloud services enable gkehub.googleapis.com gcloud services enable gkeconnect.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable serviceusage.googleapis.com gcloud services enable stackdriver.googleapis.com gcloud services enable storage-api.googleapis.com gcloud services enable storage-component.googleapis.comכדי ליצור את חשבונות השירות באמצעות
gcloud, מריצים את הפקודות הבאות.gcloud iam service-accounts create management-sa gcloud iam service-accounts create hub-sa gcloud iam service-accounts create node-saמורידים את המפתחות של כל חשבון שירות באמצעות
gcloudעל ידי הרצת הפקודות הבאות.gcloud iam service-accounts keys create management-key.json \ --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create hub-key.json \ --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create node-key.json \ --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.comמקצים תפקידים לחשבון השירות לניהול.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.adminמקצים תפקידים לחשבון השירות של המרכז.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.connectמקצים תפקידים לחשבון השירות של הצומת.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/storage.objectViewer
המסוף
- פותחים את Google Cloud הדף API Library במסוף.
- בוחרים את הפרויקט הרצוי מהתפריט הנפתח בחלק העליון של המסך.
מאתרים ומפעילים את ממשקי ה-API הבאים.
- Anthos
- Cloud Resource Manager
- Cloud Storage
- Cloud Logging
- Google Cloud Storage JSON API
- GKE Hub
- GKE Connect API
- שימוש בשירות
- Stackdriver
- Stackdriver Monitoring
פותחים את הדף חשבונות שירות.
לאחר מכן, יוצרים חשבון שירות ומקצים לו תפקידים.
management-sa- לוחצים על יצירת חשבון שירות.
- נותנים שם לחשבון ניהול השירות ולוחצים על יצירה. מופיע המסך Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט).
- מוסיפים את תפקידי האדמין של GKE Hub.
- לוחצים על Continue. מופיע המסך Grant users access to this service account (מתן גישה למשתמשים לחשבון השירות הזה).
- לוחצים על סיום. מופיע המסך Service accounts for project.
- מאתרים את השורה שמכילה את כתובת האימייל של חשבון השירות,
management-sa@project_id.iam.gserviceaccount.com. - לוחצים על תפריט הפעולות more_vert של חשבון השירות ובוחרים באפשרות ניהול מפתחות.
- לוחצים על התפריט הנפתח הוספת מפתח.
- לוחצים על Create new key.
- בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. המפתח של חשבון השירות יורד לדפדפן.
- משנים את שם הקובץ
management-key.json.
לאחר מכן, יוצרים חשבון שירות ומקצים לו תפקידים.
hub-sa- לוחצים על יצירת חשבון שירות.
- נותנים שם למרכז החשבונות – למשל, hub-sa – ולוחצים על יצירה. מופיע המסך Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט).
- מוסיפים את התפקיד GKE Hub Connection Agent.
- לוחצים על Continue. מופיע המסך Grant users access to this service account (מתן גישה למשתמשים לחשבון השירות הזה).
- לוחצים על סיום. מופיע המסך Service accounts for project.
- מאתרים את השורה שמכילה את כתובת האימייל של חשבון השירות,
hub-sa@project_id.iam.gserviceaccount.com. - לוחצים על תפריט הפעולות more_vert של חשבון השירות ובוחרים באפשרות ניהול מפתחות.
- לוחצים על התפריט הנפתח הוספת מפתח.
- לוחצים על Create new key.
- בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. המפתח של חשבון השירות יורד לדפדפן.
- משנים את שם הקובץ
hub-key.json.
לאחר מכן, יוצרים חשבון שירות ומקצים לו תפקידים.
node-sa- לוחצים על יצירת חשבון שירות.
- נותנים שם לצומת החשבון node-sa ולוחצים על יצירה. מופיע המסך Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט).
- מוסיפים את התפקיד 'צפייה באובייקטים של אחסון'.
- לוחצים על סיום. מופיע המסך Service accounts for project.
- מאתרים את השורה שמכילה את כתובת האימייל של חשבון השירות,
node-sa@project_id.iam.gserviceaccount.com. - לוחצים על תפריט הפעולות more_vert של חשבון השירות ובוחרים באפשרות ניהול מפתחות.
- לוחצים על התפריט הנפתח הוספת מפתח.
- לוחצים על Create new key.
- בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. המפתח של חשבון השירות יורד לדפדפן.
- משנים את שם הקובץ
node-key.json.
כלי שורת הפקודה anthos-gke
anthos-gke הוא כלי שורת פקודה ל-GKE ב-AWS. משתמשים ב-anthos-gke כדי ליצור הגדרה ולהתקין שירות ניהול. הגרסה האחרונה של
anthos-gke היא aws-1.14.1-gke.0.
כלי שורת הפקודה anthos-gke תומך רק ב-Linux וב-macOS.
מורידים את הקובץ הבינארי מ-Cloud Storage.
Linux
gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .macOS
gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .עדכון ההרשאות של
anthos-gkeוהעתקה שלו אל/usr/local/bin.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/binמוודאים שהגרסה היא
aws-1.14.1-gke.0anthos-gke version
הרשאות לכלי שורת הפקודה anthos-gke
כדי להשתמש בכלי anthos-gke משורת הפקודה, למשתמש שמריץ את הפקודה צריכים להיות התפקידים ServiceUsageViewer ו-StorageAdmin. כדי להוסיף את התפקידים לחשבון הראשי שלכם ב-IAM, מריצים את הפקודות הבאות:
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/storage.admin
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAME: הפרויקט ב- Google Cloud -
USER_NAME: שם המשתמש שמריץ את כלי שורת הפקודהanthos-gke. אם משתמשים בחשבון שירות, צריך להשתמש ב-serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
Terraform
הכלי anthos-gke יוצר קובצי הגדרות של Terraform וקורא לכלי שורת הפקודה terraform.
GKE ב-AWS דורש גרסה של Terraform גבוהה מ-v0.14.3. כדי לבדוק את הגרסה של Terraform, מריצים את הפקודה הבאה:
terraform version
אם אין לכם גרסה 0.14.3 או גרסה מתקדמת יותר, צריך להוריד ולהתקין את Terraform לפני שיוצרים שירות ניהול.
שדרוג Terraform
כדי לשדרג את Terraform אחרי התקנת GKE ב-AWS, צריך לשדרג את קובץ ה-Terraform הבינארי דרך כל גרסה משנית בסדר הנכון.
לדוגמה, אם רוצים לשדרג את Terraform מגרסה v0.12.x לגרסה v0.14.x, צריך להתקין באופן זמני את גרסה v0.13.x. אחרי התקנת גרסה v0.13.x, מריצים את הפקודות anthos-gke aws
management init ו-anthos-gke aws management apply. GKE ב-AWS
מעדכן את ההגדרה. אחרי זה תוכלו לשדרג לגרסה v0.14.x.
Kubernetes
GKE ב-AWS דורש גרסה 1.17 או גרסה מתקדמת יותר.kubectl כדי לבדוק את הגרסה של kubectl, מריצים את הפקודה:
kubectl version --client -o yaml | grep gitVersion
אם הגרסה שלכם היא לא 1.17 ומעלה,
צריך להתקין גרסה חדשה יותר של kubectl.
המאמרים הבאים
- התקנת שירות ניהול ב-VPC ייעודי עם יעד מבוצר (bastion host).
- שילוב של תשתית קיימת ב-VPC קיים.