HashiCorp Terraform הוא כלי מסוג תשתית כקוד (IaC), שבעזרתו אפשר להקצות ולנהל תשתית ענן. Terraform מספקת פלאגינים שנקראים providers, שמאפשרים לכם ליצור אינטראקציה עם ספקי ענן וממשקי API אחרים. אתם יכולים להשתמש בפלאגין שמתממשק עם שירותים חיצוניים Terraform ל- Google Cloud כדי להקצות ולנהל משאבי Google Cloud , כולל GKE.
בדף הזה מוסבר איך להשתמש ב-Terraform עם GKE, כולל מבוא לאופן הפעולה של Terraform וכמה משאבים שיעזרו לכם להתחיל להשתמש ב-Terraform עם Google Cloud. תמצאו גם קישורים למסמכי העיון של Terraform בנושא GKE, דוגמאות לקוד ומדריכים לשימוש ב-Terraform כדי להקצות משאבי GKE.
הוראות לתחילת העבודה עם Terraform ל- Google Cloudזמינות במאמר התקנה והגדרה של Terraform או במאמר המדריך למתחילים של Terraform ל- Google Cloud .
איך Terraform עובד
ל-Terraform יש תחביר הצהרתי ומבוסס-הגדרות, שבו אפשר להשתמש כדי לתאר את התשתית שרוצים להקצות בפרויקט Google Cloud . אחרי שיוצרים את ההגדרה הזו בקובץ הגדרה אחד או יותר של Terraform, אפשר להשתמש ב-Terraform CLI כדי להחיל את ההגדרה הזו על המשאבים ב-GKE.
השלבים הבאים מסבירים איך Terraform פועל:
- אתם מתארים את התשתית שאתם רוצים להקצות בקובץ תצורה של Terraform. אין צורך לכתוב קוד שמתאר איך להקצות את התשתית. Terraform מקצה את התשתית בשבילכם.
- מריצים את הפקודה
terraform plan, שמעריכה את ההגדרות ומפיקה תוכנית הרצה. אפשר לבדוק את התוכנית ולבצע שינויים לפי הצורך. -
מריצים את הפקודה
terraform apply, שמבצעת את הפעולות הבאות:- הוא מקצה את התשתית על סמך תוכנית הביצוע על ידי הפעלת ממשקי ה-API המתאימים של GKE ברקע.
- הפקודה יוצרת קובץ מצב של Terraform, שהוא קובץ JSON שממפה את המשאבים בקובץ ההגדרות למשאבים בתשתית בעולם האמיתי. Terraform משתמש בקובץ הזה כדי לשמור תיעוד של המצב האחרון של התשתית, וכדי לקבוע מתי ליצור, לעדכן ולמחוק משאבים.
-
כשמריצים את הפקודה
terraform apply, Terraform משתמשת במיפוי שבקובץ המצב כדי להשוות בין התשתית הקיימת לבין הקוד, ומבצעת עדכונים לפי הצורך:- אם אובייקט משאב מוגדר בקובץ התצורה, אבל לא קיים בקובץ המצב, Terraform יוצר אותו.
- אם אובייקט משאב קיים בקובץ המצב, אבל יש לו הגדרה שונה מזו שבקובץ ההגדרות, Terraform מעדכן את המשאב כך שיתאים לקובץ ההגדרות.
- אם אובייקט משאב בקובץ המצב תואם לקובץ התצורה, Terraform לא משנה את המשאב.
משאבים של Terraform ל-GKE
משאבים הם הרכיבים הבסיסיים בשפת Terraform. כל בלוק משאבים מתאר אובייקט תשתית אחד או יותר, כמו רשתות וירטואליות או מופעי מחשוב.
בטבלה הבאה מפורטים המשאבים של Terraform שזמינים ל-GKE:
מדריכים ל-GKE שמבוססים על Terraform
בטבלה הבאה מפורטים מדריכים ומדריכים מפורטים שמבוססים על Terraform ל-GKE:
| מדריך | פרטים |
|---|---|
| יצירה של אשכול GKE ופריסה של עומס עבודה באמצעות Terraform | הסבר על יצירת אשכול במצב Autopilot ב-Google Kubernetes Engine (GKE) ופריסת עומס עבודה באמצעות Terraform. |
| יצירת אשכול Autopilot | הסבר על יצירת אשכול GKE במצב Autopilot. |
| יצירת אשכול אזורי | במאמר הזה מוסבר איך ליצור אשכול אזורי רגיל עם התכונות שמופעלות כברירת מחדל ב-GKE. |
| יצירת אשכול אזורי | הסבר על יצירת אשכול אזורי במסלול הרגיל ב-GKE. |
| יצירת אשכול מרובה דיירים באמצעות Terraform | המאמר מסביר איך ליצור אשכול מרובה דיירים ולפרוס עומס עבודה באמצעות Terraform. |
| הוספה וניהול של מאגרי צמתים | במאמר הזה מוסבר איך להוסיף מאגרי צמתים ולהפעיל עליהם פעולות באשכולות GKE Standard. |
| יצירת אשכולות ומאגרי צמתים עם צמתי Arm | במאמר הזה מוסבר איך ליצור אשכול GKE Standard או מאגר צמתים עם צמתי Arm, כדי שתוכלו להריץ עומסי עבודה של Arm ב-GKE. |
| שימוש במשאבים שמורים בתחום מוגדר | הסבר על השימוש במשאבים שמורים של Compute Engine ב-GKE. |
| הגדרת תמונה של צומת | הסבר על הגדרת תמונת צומת לצמתים באשכולות GKE Standard. |
| יצירת אשכול שמשתמש במאגרי צמתים של Windows Server | הסבר על יצירת אשכול GKE עם מאגרי צמתים שבהם פועל Microsoft Windows Server. |
| יצירה וניהול של תוויות של מאגדים ושל מאגרי צמתים | הסבר על יצירת אשכול עם תוויות מצורפות. |
| ניהול משאבי GKE באמצעות תגים | הסבר על השימוש בתגים לניהול אשכולות GKE. |
| התאמה אישית של הגדרות המערכת של צומת | הסבר על התאמה אישית של תצורת מערכת הצמתים ב-GKE באמצעות קובץ תצורת מערכת הצמתים. |
| יצירת אשכול המותאם ל-VPC | הסבר על הגדרת אשכולות שמותאמים ל-VPC ב-GKE. |
| יצירת מאזן עומסים פנימי | הסבר על יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי או מאזן עומסים פנימי ב-GKE. |
| הגדרת רשת עבור אשכול בסיסי של סביבת ייצור | מאמר שמסביר איך פורסים אפליקציית אינטרנט באשכול GKE וחושפים אותה באמצעות מאזן עומסים ב-HTTPS. |
| הגדרת רצף לשדרוג האשכולות | הסבר על ניהול שדרוגים של אשכולות GKE באמצעות רצף פריסה. |
| פריסת עומסי עבודה של TPU ב-GKE Standard | הסבר על בקשה ופריסה של עומסי עבודה של אימון, כוונון והסקת מסקנות של מודלים של בינה מלאכותית (AI) ולמידת מכונה (ML) בקנה מידה גדול, שמשתמשים במאיצי Cloud TPU (יחידות TPU) באשכולות GKE Standard. |
| הרצת יחידות GPU במאגרי צמתים רגילים ב-GKE | המאמר מסביר איך להריץ ולבצע אופטימיזציה של עומסי עבודה שדורשים הרבה משאבי מחשוב, כמו עומסי עבודה של בינה מלאכותית (AI), על ידי צירוף של יחידות GPU של NVIDIA לצמתים של אשכולות GKE Standard ושימוש בהן. |
| הפעלת יחידות GPU מרובות מופעים | הסבר על הפעלת כרטיסי GPU מרובי-מופעים כדי להגדיל את הניצול ולהפחית את העלויות. |
| הפעלת ה-Ray operator ב-GKE | הסבר על הפעלת Ray operator ל-GKE. |
| הפעלת ML Diagnostics ב-GKE | הסבר על הגדרת אשכול GKE ל-ML Diagnostics באמצעות Terraform. |
| שימוש בדיסקים משניים לאתחול כדי לטעון מראש נתונים או קובצי אימג' של קונטיינרים | הסבר על שיפור זמן האחזור של הפעלת עומסי עבודה באמצעות דיסקים משניים לאתחול. |
| פריסת מסד נתונים של PostgreSQL עם זמינות גבוהה ב-GKE | מאמר שמתאר פריסה של טופולוגיית PostgreSQL עם זמינות גבוהה ב-GKE. PostgreSQL הוא מסד נתונים רלציוני של אובייקטים בקוד פתוח, שידוע במהימנות שלו ובתקינות הנתונים שהוא כולל. |
| איסוף מדדים של מישור הבקרה והצגתם | המאמר מתאר איך להגדיר אשכול GKE כדי לשלוח מדדים שמופקים על ידי שרת ה-API של Kubernetes, Scheduler ו-Controller Manager אל Cloud Monitoring באמצעות שירות מנוהל של Google Cloud ל-Prometheus. |
| איסוף מדדים של cAdvisor/Kubelet וצפייה בהם | מאמר שמסביר איך להגדיר אשכול Google Kubernetes Engine (GKE) כדי לשלוח קבוצה נבחרת של מדדי cAdvisor/Kubelet ל-Cloud Monitoring באמצעות השירות המנוהל של Google Cloud ל-Prometheus. |
| שינוי קצב העברת הנתונים ביומן | המאמר מתאר את קצב העברת הנתונים של יומני ברירת המחדל ומסביר איך להגדיל את קצב העברת הנתונים. |
| פריסה של OpenTelemetry מנוהל ל-GKE | כאן מוסבר איך להגדיר את Managed OpenTelemetry ל-GKE כדי לשלוח עקבות, מדדים ויומנים של OTLP אל Google Cloud Observability. |
| איסוף וצפייה ב-kube-state-metrics | מאמר שמסביר איך להגדיר אשכול GKE לשליחת מדדי kube-state-metrics ל-Cloud Monitoring באמצעות השירות המנוהל של Google Cloud ל-Prometheus. |
| התקנה של Policy Controller | הסבר על התקנת Policy Controller באמצעות Terraform. |
| הפעלת גיבוי ל-GKE באשכול | במאמר הזה מוסבר איך להפעיל את הגיבוי ל-GKE באשכול. |
| שינוי מקורות מידע במהלך השחזור | הסבר על שימוש בכללי טרנספורמציה כדי לבצע שינויים במשאבי Kubernetes במהלך תהליך השחזור. |
| הפעלת מצב הרשאה בתוכנית גיבוי | הסבר על הפעלת מצב הרשאה בתוכנית גיבוי. |
| הפעלת Backup for GKE API | הסבר על הפעלת גיבוי ל-GKE. |
| תכנון קבוצה של גיבויים | במאמר הזה מוסבר איך ליצור תוכנית גיבוי של Backup for GKE, שמשמשת לגיבוי עומסי העבודה ב-GKE. |
| רישום אשכול ב- Google Cloud ל-Fleet | המאמר מסביר איך לרשום אשכול GKE ב- Google Cloudל-Fleet שלכם באמצעות Terraform. |
| התקנה של סנכרון תצורות כברירת מחדל ל-Fleet | הסבר על הגדרת סנכרון תצורות כברירת מחדל ברמת הצי לכל האשכולות החדשים. |
| ניהול משאבי הצוות בכל ה-Fleet | מוסבר איך משתמשים בסנכרון תצורות וב-Terraform כדי ליצור באופן דינמי משאבים בהיקף צוות ב-Fleet של אשכולות. |
מודולים ותוכניות לניהול של Terraform ב-GKE
מודולים ותוכניות לניהול מאפשרים לנהל באופן אוטומטי את הקצאת ההרשאות והמשאבים ב- Google Cloud בקנה מידה רחב. מודול הוא קבוצה של קובצי תצורה לשימוש חוזר ב-Terraform שיוצרים הפשטה לוגית של המשאבים ב-Terraform. תוכנית לניהול היא חבילה של מודולים לשימוש חוזר שאפשר לפרוס, ושל מדיניות שמיישמת ומתעדת פתרון ספציפי.
בטבלה הבאה מפורטים מודולים ותוכניות שקשורים ל-GKE:
| מודול או תוכנית ניהול | פרטים |
|---|---|
| terraform-google-kubernetes-engine | הגדרה של אשכולות GKE מקובעים. |
| terraform-google-gke-gitlab | התקנה של GitLab ב-GKE. |
המאמרים הבאים
- דוגמאות לקוד Terraform ל-GKE
- מסמכי תיעוד של Terraform Google Cloud
- Google Cloud מסמכי התיעוד של ספק ב-HashiCorp
- תשתית כקוד ל- Google Cloud