סקירה כללית של Terraform

‫HashiCorp Terraform הוא כלי מסוג תשתית כקוד (IaC) שמאפשר להקצות ולנהל תשתית ענן. ‫Terraform מספקת פלאגינים שנקראים providers, שמאפשרים לכם ליצור אינטראקציה עם ספקי ענן וממשקי API אחרים. ב-Google Distributed Cloud‏ (GDC) עם בידוד פיזי, צריך להשתמש בספק Kubernetes כדי להקצות משאבים, כי אין ספק GDC ספציפי עם בידוד פיזי ל-Terraform.

אפשר לנהל את המשאבים של GDC באמצעות ספק Kubernetes עם ניהול מלא של מחזור החיים של משאבי Kubernetes.

פעולה ספק Terraform
יצירה

Kubernetes Provider
קריאה
עדכון
מחיקה לא רלוונטי, צריך להשתמש ב-terraform destroy

איך Terraform עובד

ל-Terraform יש תחביר הצהרתי ומבוסס-הגדרות, שבעזרתו אפשר לתאר את התשתית שרוצים להקצות בפרויקט GDC. אחרי שיוצרים את ההגדרה הזו בקובץ הגדרות אחד או יותר של Terraform, אפשר להשתמש ב-Terraform CLI כדי להחיל את ההגדרה הזו על משאבי GDC.

השלבים הבאים מסבירים איך Terraform פועל:

  1. מתארים את התשתית שרוצים להקצות בקובץ תצורה של Terraform. אין צורך לכתוב קוד שמתאר איך להקצות את התשתית. ‫Terraform מקצה את התשתית בשבילכם.

  2. מריצים את הפקודה terraform plan, שמעריכה את ההגדרה ויוצרת תוכנית ביצוע. אתם יכולים לבדוק את התוכנית ולבצע בה שינויים לפי הצורך.

  3. מריצים את הפקודה terraform apply, שמבצעת את הפעולות הבאות:

    1. הוא מקצה את התשתית על סמך תוכנית הביצוע שלכם על ידי הפעלת ממשקי ה-API המתאימים של GDC עם air gap ברקע.

    2. הפקודה יוצרת קובץ מצב של Terraform, שהוא קובץ JSON שממפה את המשאבים בקובץ ההגדרות למשאבים בתשתית בעולם האמיתי. ‫Terraform משתמש בקובץ הזה כדי לשמור תיעוד של המצב העדכני ביותר של התשתית, וכדי לקבוע מתי ליצור, לעדכן ולמחוק משאבים.

    3. כשמריצים את הפקודה terraform apply, ‏ Terraform משתמשת במיפוי שבקובץ המצב כדי להשוות בין התשתית הקיימת לבין הקוד, ומבצעת עדכונים לפי הצורך:

      • אם אובייקט משאב מוגדר בקובץ התצורה, אבל לא קיים בקובץ המצב, Terraform יוצר אותו.

      • אם אובייקט משאב קיים בקובץ המצב, אבל יש לו הגדרה שונה מזו שבקובץ ההגדרות, Terraform מעדכן את המשאב כך שיתאים לקובץ ההגדרות.

      • אם אובייקט משאב בקובץ המצב תואם לקובץ ההגדרות, Terraform לא משנה את המשאב.

משאבים של Terraform ל-GDC עם air gap

משאבים הם הרכיבים הבסיסיים בשפת Terraform. כל בלוק משאבים מתאר אובייקט תשתית אחד או יותר.

‫GDC עם air gap מבוסס על Kubernetes. בנוסף לממשקי ה-API הבסיסיים של Kubernetes כמו Node,‏ PersistentVolume ו-Service, הוא תומך גם בממשק CustomResourceDefinition API. באמצעות הגדרות של משאבים בהתאמה אישית, נבנים ממשקי API ספציפיים ל-GDC לייצוג התשתית של GDC עם air gap.

בטבלה הבאה מפורטים המשאבים של Terraform שזמינים ל-GDC עם air gap:

משאבי Terraform מקורות נתונים
kubernetes_manifest

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