סקירה כללית
Terraform הוא כלי בקוד פתוח להגדרת סביבות ענן כמו AWS ולהתקנת תוכנות כמו Kubernetes בסביבות האלה. אתם יכולים להגדיר את סביבת AWS וליצור בה את האשכולות באמצעות Terraform או באמצעות הוראות ההתקנה של GKE ב-AWS.
בדף הזה מוסבר איך להשתמש ב-Terraform כדי להגדיר את סביבת AWS ולהתקין אשכול באמצעות הגדרת מדגם שמאוחסנת ב-GitHub. הדף הזה מיועד לאדמינים של IT ולאופרטורים שרוצים להגדיר ולנהל תשתיות ענן, לעקוב אחריהן, להפוך פריסות לאוטומטיות ולהשתמש בתבניות ובהגדרות הצהרתיות. כדי לקבל מידע נוסף על תפקידים נפוצים ועל משימות לדוגמה שאנחנו מתייחסים אליהן ב Google Cloud תוכן, אפשר לעיין במאמר תפקידי משתמשים נפוצים ומשימות ב-GKE.
כדי להשתמש בסקריפטים האלה, צריך להכיר את Terraform. בפרט, צריך לערוך את קובצי ההגדרות של Terraform כדי להוסיף את פרטי המשתמש והפרויקט שלכם ולבצע את השינויים שאתם צריכים בהגדרות ברירת המחדל של האשכול.
כדי להגדיר את סביבת AWS וליצור אשכולות בלי להשתמש ב-Terraform, אפשר לעיין בסקירה כללית של הדרישות המוקדמות ל-AWS ובהוראות ליצירת אשכול.
מה הסקריפטים עושים
הסקריפט הזה מגדיר את Terraform ליצירת VPC של AWS ולפריסת אשכול עליו. רשת ה-VPC שמתקבלת עומדת בכל הדרישות המוקדמות של GKE ב-AWS, והטופולוגיה שלה זהה לטופולוגיה של רשת ה-VPC שנוצרה באמצעות ההוראות ליצירת VPC של Google.
לאשכול שהסקריפט יוצר יש את המאפיינים הבאים:
- שלושה צמתים של מישור הבקרה (אחד בכל אחד משלושת אזורי הזמינות שהוגדרו). הצמתים האלה הם מסוג t3.large.
- מאגר צמתים אחד עם שני צמתים מסוג t3.large.
מאגר הצמתים הזה נפרס באזור
us-east-1ב-AWS ויכול להגדיל את מספר הצמתים באופן אוטומטי עד חמישה.
איך משנים את ה-VPC ואת האשכול שמוגדרים כברירת מחדל
כדי לשנות את המאפיינים של ה-VPC והאשכול שנוצרו על ידי סקריפטים של Terraform, צריך לערוך את קובצי Terraform המתאימים.
- עורכים את הקובץ
variables.tfכדי לשנות את האזור ואת אזורי הזמינות. - משנים את סוג האינסטנס ב-AWS.
- כדי לשנות את המאפיינים של ה-VPC, כולל רשתות המשנה, אזורי הזמינות ומאזן העומסים, עורכים את הקבצים בתיקיית המשנה
modules/vpc.
כדי להציג רשימה של אזורי AWS שמנוהלים מאזור מסוים Google Cloud ואת גרסאות Kubernetes שמשויכות אליהם, מריצים את הפקודה הבאה:
gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`
מחליפים את GOOGLE_CLOUD_REGION בשם Google Cloud האזור שבו רוצים ש-GKE on AWS ישלוט באשכול.
דרישות מוקדמות
מתקינים את Google Cloud CLI באמצעות הוראות ההתקנה של Google Cloud CLI. אם כבר התקנתם את האפליקציה, תוכלו להיעזר בהוראות האלה כדי לוודא שאתם משתמשים בגרסה 412.0.0 ואילך.
מתקינים את AWS CLI באמצעות הוראות ההתקנה של AWS CLI.
יוצרים את מפתחות הגישה ל-AWS.
מגדירים את סביבת AWS המקומית באמצעות הפקודה הבאה:
aws configure
הכנת Terraform
מגדירים אימות של Google Cloud CLI באמצעות הפקודות הבאות:
gcloud config set project GOOGLE_PROJECT_ID gcloud auth application-default login --no-launch-browserמפעילים את השירותים הנדרשים ב Google Cloud פרויקט.
gcloud --project="GOOGLE_PROJECT_ID" services enable \ gkemulticloud.googleapis.com \ gkeconnect.googleapis.com \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.comמחליפים את
GOOGLE_PROJECT_IDבמזהה הפרויקט ב-Google.יוצרים עותק מקומי של המאגר ועוברים לתיקייה
AWS:git clone https://github.com/GoogleCloudPlatform/anthos-samples.git cd anthos-samples/anthos-multi-cloud/AWS
פריסת GKE ב-AWS
עורכים את השורות הבאות בקובץ
terraform.tfvarsכדי להחליף את ערכי ברירת המחדל:gcp_project_id = GOOGLE_PROJECT_ID admin_users = ["GCP_ACCOUNT_EMAIL"] cluster_version = GKE_VERSIONמחליפים את מה שכתוב בשדות הבאים:
GOOGLE_PROJECT_ID: מזהה הפרויקט ב-Google. אפשר לראות את זה בצד ימין של דף לוח הבקרה בGoogle Cloud מסוף.
ACCOUNT_EMAILS: רשימה מופרדת בפסיקים של כתובות אימייל שיכולות להתחבר לאשכולות אחרי שהם נוצרו – לדוגמה"admin@example.com","operator@example.com". לפחות כתובת אחת צריכה להיות משויכת ל Google Cloud חשבון. כדי להוסיף ספקי זהויות נוספים לאשכול, אפשר לעיין במאמר בנושא ניהול זהויות באמצעות שירות הזהויות של GKE.
GKE_VERSION: גרסת GKE נתמכת לאזור שבחרתם. כדי למצוא את הגרסאות הנתמכות, אפשר לעיין במאמר בנושא ניהול גרסאות ותמיכה ב-GKE ב-AWS.
מאתחלים ויוצרים את תוכנית Terraform:
terraform initTerraform מתקין את כל הספריות הנדרשות, כמו ספק Google Cloud.
מחילים את תוכנית Terraform כדי ליצור את הענן הווירטואלי הפרטי (VPC) ואת האשכול ב-AWS:
terraform applyפועלים לפי ההוראות כדי להתחיל ליצור אשכול.
ההתקנה נמשכת כ-12 דקות. כש-Terraform מסיים ליצור את ה-VPC ואת האשכול ב-AWS, הוא מדפיס מידע על האשכול ויוצר קובץ בשם var.sh. אפשר להשתמש בערכים שבקובץ הזה אם יוצרים מאגרי צמתים נוספים.
כדי לוודא שהאשכול נוצר בהצלחה, צריך לחכות שהוא יופיע בדף Kubernetes Engine במסוף של Google Cloud הפרויקט Google Cloud .
התחברות לאשכול
כדי לאמת את הקישוריות לאשכול ולאחזר את הפרטים שלו, מריצים את הפקודה הבאה:
gcloud container fleet memberships get-credentials CLUSTER_NAME
kubectl get nodes
מחליפים את CLUSTER_NAME בשם האשכול. אפשר למצוא את שם האשכול בקובץ הפלט של Terraform var.sh.
הפלט כולל רשימה של הצמתים באשכול והסטטוס שלהם.
מחיקת האשכול והענן הווירטואלי הפרטי (VPC) ב-AWS
לפני שמוחקים את האשכול ואת ענן וירטואלי פרטי (VPC) של AWS, צריך להסיר את כל הרכיבים הבאים:
- מאזני עומסים פעילים ב-AWS ענן וירטואלי פרטי (VPC)
- מאגרי צמתים נוספים באשכול שלא נוצרו באמצעות Terraform
- כל אשכול נוסף ב-AWS ענן וירטואלי פרטי (VPC) שלא נוצר באמצעות Terraform
כדי להסיר את האשכול ואת הענן הווירטואלי הפרטי (VPC) של AWS שיצרתם באמצעות Terraform, מריצים את הפקודה הבאה:
terraform destroy
Terraform מרוקן את עומסי העבודה מהצמתים, מוחק את מאגר הצמתים הראשי ואת האשכול, ומוחק את ה-VPC של AWS.
איך נותנים הרשאה ל-Cloud Logging ול-Cloud Monitoring
אם רוצים להפעיל את Cloud Logging ואת Cloud Monitoring, צריך להוסיף מדיניות הרשאות לפרויקט Google Cloud אחרי שיוצרים אשכול.
כדי להוסיף מדיניות הרשאה באמצעות Google Cloud CLI:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
מחליפים את PROJECT_ID במזהה הפרויקט.
השלבים הבאים
- מידע על רישום מרכזי של אירועים באשכול של Google זמין במאמר בנושא Cloud Logging.
- למידע על הכלים של Google Cloud Monitoring, אפשר לעיין במאמר בנושא Cloud Monitoring.
- כדי להתקין ניהול הגדרות מרכזי, קראו את המאמר בנושא הגדרת אשכול באמצעות Config Controller.
מידע נוסף על סקריפטים של Terraform GKE ב-AWS