דרישות מוקדמות

בדף הזה מתוארים השלבים שצריך להשלים לפני שמתקינים את 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, פועלים לפי השלבים הבאים.

שורת פקודה

  1. יוצרים מפתח KMS בחשבון AWS.

    aws kms create-key
    

    הפלט כולל את המטא-נתונים של המפתח.

  2. בפלט מהפקודה הקודמת, מעתיקים את שם המשאב של המפתח ב-Amazon (ARN) מהשדה Arn. לדוגמה, למפתח באזור us-west-2 יש את ה-ARN‏ arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  3. יוצרים כינוי למפתח באמצעות aws kms create-alias. כינוי מאפשר לכם לנהל את מפתחות AWS KMS לפי שם.

    aws kms create-alias \
        --alias-name=alias/key-name \
        --target-key-id=key-arn
    
  4. חוזרים על השלבים הקודמים כדי להוסיף עוד מפתח.

המסוף

  1. מתחברים למסוף AWS.
  2. עוברים אל KMS ובוחרים באפשרות Customer managed keys (מפתחות בניהול הלקוח) בסרגל הצד.
  3. לוחצים על Create Key (יצירת מפתח).
  4. משאירים את האפשרויות שמוגדרות כברירת מחדל.
  5. אחרי שיוצרים את המפתח, בוחרים אותו מהרשימה.
  6. מעתיקים את ה-ARN של המפתח.
  7. חוזרים על השלבים הקודמים כדי להוסיף עוד מפתח.

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.

שורת פקודה

  1. מבצעים אימות באמצעות Google Cloud CLI.

    gcloud auth login &&\
    gcloud auth application-default login
    

    תתבקשו פעמיים להיכנס לכתובת cloud.google.com ולאמת את החשבון באמצעות חשבון Google.

  2. מגדירים את הפרויקט כמשתנה סביבה ומגדירים את ברירת המחדל שלכם ב-project-id באמצעות ה-CLI של gcloud. Google Cloud

    export PROJECT_ID=project-id
    
    gcloud config set project $PROJECT_ID
    

    מחליפים את הערך של project-id בפרויקט שלכם ב- Google Cloud .

  3. מפעילים את ממשקי ה-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
    
  4. כדי ליצור את חשבונות השירות באמצעות gcloud, מריצים את הפקודות הבאות.

    gcloud iam service-accounts create management-sa
    gcloud iam service-accounts create hub-sa
    gcloud iam service-accounts create node-sa
    
  5. מורידים את המפתחות של כל חשבון שירות באמצעות 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
    
  6. מקצים תפקידים לחשבון השירות לניהול.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.admin
    
  7. מקצים תפקידים לחשבון השירות של המרכז.

    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/gkehub.connect
    
  8. מקצים תפקידים לחשבון השירות של הצומת.

    gcloud projects add-iam-policy-binding \
          $PROJECT_ID \
          --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \
          --role roles/storage.objectViewer
    

המסוף

  1. פותחים את Google Cloud הדף API Library במסוף.
  2. בוחרים את הפרויקט הרצוי מהתפריט הנפתח בחלק העליון של המסך.
  3. מאתרים ומפעילים את ממשקי ה-API הבאים.

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • Google Cloud Storage JSON API
    • GKE Hub
    • GKE Connect API
    • שימוש בשירות
    • Stackdriver
    • Stackdriver Monitoring
  4. פותחים את הדף חשבונות שירות.

  5. לאחר מכן, יוצרים חשבון שירות ומקצים לו תפקידים.management-sa

    1. לוחצים על יצירת חשבון שירות.
    2. נותנים שם לחשבון ניהול השירות ולוחצים על יצירה. מופיע המסך Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט).
    3. מוסיפים את תפקידי האדמין של GKE Hub.
    4. לוחצים על Continue. מופיע המסך Grant users access to this service account (מתן גישה למשתמשים לחשבון השירות הזה).
    5. לוחצים על סיום. מופיע המסך Service accounts for project.
    6. מאתרים את השורה שמכילה את כתובת האימייל של חשבון השירות, management-sa@project_id.iam.gserviceaccount.com.
    7. לוחצים על תפריט הפעולות של חשבון השירות ובוחרים באפשרות ניהול מפתחות.
    8. לוחצים על התפריט הנפתח הוספת מפתח.
    9. לוחצים על Create new key.
    10. בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. המפתח של חשבון השירות יורד לדפדפן.
    11. משנים את שם הקובץ management-key.json.
  6. לאחר מכן, יוצרים חשבון שירות ומקצים לו תפקידים.hub-sa

    1. לוחצים על יצירת חשבון שירות.
    2. נותנים שם למרכז החשבונות – למשל, hub-sa – ולוחצים על יצירה. מופיע המסך Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט).
    3. מוסיפים את התפקיד GKE Hub Connection Agent.
    4. לוחצים על Continue. מופיע המסך Grant users access to this service account (מתן גישה למשתמשים לחשבון השירות הזה).
    5. לוחצים על סיום. מופיע המסך Service accounts for project.
    6. מאתרים את השורה שמכילה את כתובת האימייל של חשבון השירות, hub-sa@project_id.iam.gserviceaccount.com.
    7. לוחצים על תפריט הפעולות של חשבון השירות ובוחרים באפשרות ניהול מפתחות.
    8. לוחצים על התפריט הנפתח הוספת מפתח.
    9. לוחצים על Create new key.
    10. בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. המפתח של חשבון השירות יורד לדפדפן.
    11. משנים את שם הקובץ hub-key.json.
  7. לאחר מכן, יוצרים חשבון שירות ומקצים לו תפקידים.node-sa

    1. לוחצים על יצירת חשבון שירות.
    2. נותנים שם לצומת החשבון node-sa ולוחצים על יצירה. מופיע המסך Grant this service account access to project (מתן גישה של חשבון השירות הזה לפרויקט).
    3. מוסיפים את התפקיד 'צפייה באובייקטים של אחסון'.
    4. לוחצים על סיום. מופיע המסך Service accounts for project.
    5. מאתרים את השורה שמכילה את כתובת האימייל של חשבון השירות, node-sa@project_id.iam.gserviceaccount.com.
    6. לוחצים על תפריט הפעולות של חשבון השירות ובוחרים באפשרות ניהול מפתחות.
    7. לוחצים על התפריט הנפתח הוספת מפתח.
    8. לוחצים על Create new key.
    9. בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. המפתח של חשבון השירות יורד לדפדפן.
    10. משנים את שם הקובץ node-key.json.

כלי שורת הפקודה anthos-gke

anthos-gke הוא כלי שורת פקודה ל-GKE ב-AWS. משתמשים ב-anthos-gke כדי ליצור הגדרה ולהתקין שירות ניהול. הגרסה האחרונה של anthos-gke היא aws-1.14.1-gke.0.

כלי שורת הפקודה anthos-gke תומך רק ב-Linux וב-macOS.

  1. מורידים את הקובץ הבינארי מ-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 .
    
  2. עדכון ההרשאות של anthos-gke והעתקה שלו אל /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. מוודאים שהגרסה היא aws-1.14.1-gke.0

    anthos-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.

המאמרים הבאים