הגדרת רשתות VPC משותפות

Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)

בדף הזה מתוארות הדרישות מרשת VPC משותפת ומפרויקט מארח ל-Managed Airflow.

VPC משותף מאפשר לארגונים להגדיר גבולות של תקציב ובקרת גישה ברמת הפרויקט, וגם מאפשר תקשורת מאובטחת ויעילה באמצעות כתובות IP פרטיות בין הגבולות האלה. בהגדרת VPC משותף, שירות מנוהל ל-Apache Airflow יכול להפעיל שירותים שמארחים בפרויקטים אחרים באותו ארגון בלי לחשוף את השירותים לאינטרנט הציבורי. Google Cloud

הנחיות לשימוש ב-VPC משותף

פרויקטים של שירותים ופרויקטים מארחים ל-Managed Airflow
איור 1. פרויקטים של שירותים ופרויקטים של מארחים עבור Managed Airflow
  • ב-VPC משותף צריך להגדיר פרויקט מארח שאליו שייכות רשתות ותת-רשתות, ופרויקט שירות שמצורף לפרויקט המארח. כש-Managed Airflow משתתף ב-VPC משותף, סביבת Managed Airflow נמצאת בפרויקט השירות.

  • כדי להגדיר VPC משותף, בוחרים את טווחי כתובות ה-IP הבאים בפרויקט המארח:

    • טווח כתובות ה-IP הראשי של רשת המשנה שמשמשת את הצמתים של GKE, ש-Managed Airflow משתמש בהם כשכבת Compute Engine.
    • טווח IP משני לשירותי GKE.
    • טווח משני של כתובות IP ל-Pods של GKE.
  • טווחי כתובות IP משניים לא יכולים לחפוף לטווחי כתובות משניים אחרים באותה רשת VPC.

  • צריך לוודא שהטווחים המשניים גדולים מספיק כדי להכיל את גודל האשכול ואת קנה המידה של הסביבה.

    הנחיות להגדרת טווחים משניים עבור Podים ושירותים זמינות במאמר יצירת אשכול המותאם ל-VPC.

  • טווח הכתובות הראשי של רשת המשנה צריך להתאים לצמיחה הצפויה ולכלול את כתובות ה-IP שלא ניתן להשתמש בהן.

  • אם אתם משתמשים ב-IP Masquerade Agent ובהגדרת כתובת IP פרטית בסביבות שלכם, אתם צריכים להוסיף את טווחי כתובות ה-IP של הצמתים וה-Pods לקטע nonMasqueradeCIDRs של ip-masq-agent ConfigMap. מידע נוסף מופיע במאמר בנושא הגדרת סוכן להסתרת כתובת IP.

הכנה

  1. מציאת מזהי פרויקטים ומספרי פרויקטים:

    • פרויקט מארח: הפרויקט שמכיל את רשת ה-VPC המשותפת.
    • פרויקט שירות: הפרויקט שמכיל את סביבת Managed Airflow.
  2. הכנת הארגון.

  3. מפעילים את GKE API בפרויקטים של המארח והשירות.

  4. אם יוצרים סביבה בפרויקט השירות באמצעות מסוףGoogle Cloud , לחשבון שלכם צריכה להיות ההרשאה compute.subnetworks.use בפרויקט המארח. אחרת, רשימת רשתות המשנה הזמינות לא תכלול רשתות משנה מפרויקט המארח. אם יוצרים סביבה באמצעות gcloud, API או Terraform, לא צריך להוסיף את ההרשאה הזו לחשבון.

הגדרת פרויקט השירות

אם אף פעם לא נוצרו סביבות Managed Airflow בפרויקט השירות, צריך להקצות את חשבון סוכן השירות של Composer בפרויקט השירות:

gcloud beta services identity create --service=composer.googleapis.com

הגדרת פרויקט המארח

מגדירים את פרויקט המארח כמו שמתואר בהמשך.

(כתובת IP פרטית) הפעלת גישה פרטית ל-Google

אם אתם מתכננים להשתמש בסביבות עם כתובות IP פרטיות, צריך להפעיל גישה פרטית ל-Google לרשת המשנה בפרויקט המארח. אפשר לעשות את זה בשלב הבא, כשמגדירים משאבי רשת עבור רשת משנה חדשה או קיימת.

אם אתם מתכננים להשתמש בסביבות עם כתובות IP ציבוריות, אנחנו עדיין ממליצים להפעיל גישה פרטית ל-Google עבור רשת המשנה בפרויקט המארח. אם אתם בוחרים לא להשתמש בגישה פרטית ל-Google, אתם צריכים לוודא שאתם לא חוסמים תעבורת נתונים שאחרת כלל חומת האש המשתמע שמאפשר יציאה של IPv4 היה מאפשר. הפעולה הזו נדרשת כדי להגיע לנקודות הקצה של *.googleapis.com.

הגדרת משאבי רשת

בוחרים אחת מהאפשרויות הבאות כדי להקצות משאבי רשת ולהגדיר אותם. לכל אפשרות, צריך לתת שם לטווחים המשניים של כתובות ה-IP עבור הפודים והשירותים.

הגדרה של VPC משותף וצירוף פרויקט השירות

  1. אם עדיין לא עשיתם זאת, מגדירים VPC משותף. אם כבר הגדרתם VPC משותף, אפשר לדלג לשלב הבא.

  2. מצרפים את פרויקט השירות שבו אתם משתמשים כדי לארח סביבות Managed Airflow.

    כשמצרפים פרויקט, לא משנים את הרשאות ברירת המחדל של רשת ה-VPC.

מתן הרשאות לחשבון סוכן השירות של Composer

בפרויקט המארח:

  1. עריכת ההרשאות של חשבון סוכן השירות של Composer, service-SERVICE_PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com)

  2. בחשבון הזה, מוסיפים עוד תפקיד ברמת הפרויקט:

    • בסביבות Private IP, מוסיפים את התפקיד Composer Shared VPC Agent.

    • בסביבות עם כתובות IP ציבוריות, מוסיפים את התפקיד Compute Network User.

מתן הרשאות לחשבון סוכן השירות של Google API

בפרויקט המארח:

  1. עורכים את ההרשאות של חשבון סוכן השירות של Google API‏, SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com.

  2. מוסיפים עוד תפקיד, Compute Network User (compute.networkUser) ברמת הפרויקט. זהו תנאי חובה לקבוצות מנוהלות של מכונות שמשמשות עם VPC משותף, כי חשבון שירות מהסוג הזה מבצע משימות כמו יצירת מכונות.

עריכת הרשאות לחשבונות שירות ב-GKE

בפרויקט המארח, עורכים את ההרשאות של חשבונות השירות של GKE‏, service-SERVICE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com.

לכל חשבון שירות, מוסיפים עוד תפקיד compute.networkUser באמצעות אחת מהאפשרויות הבאות:

  • צריך להעניק את התפקיד הזה ברמת רשת המשנה כדי לאפשר לחשבון שירות להגדיר את ה-VPC peerings שנדרשים ל-Managed Service for Apache Airflow. במקרה כזה, צריך לציין באופן מפורש את רשת המשנה שבה הסביבה תשתמש, כי יכול להיות שלקלאסטר של הסביבה אין הרשאות למצוא את רשת המשנה בתוך הרשת.

  • מקצים את התפקיד הזה ברמת הפרויקט לכל הפרויקט המארח. במקרה הזה, לחשבון השירות של GKE בפרויקט השירות יש הרשאות להשתמש בכל רשת משנה בפרויקט המארח.

עריכת ההרשאות של חשבון השירות של GKE בפרויקט השירות

בפרויקט המארח, עורכים את ההרשאות של חשבון השירות של GKE בפרויקט השירות.

לחשבון הזה, מוסיפים עוד תפקיד ברמת הפרויקט: משתמש בסוכן שירות מארח של Kubernetes Engine (roles/container.hostServiceAgentUser).

כך חשבון השירות של GKE בפרויקט השירות יכול להשתמש בחשבון השירות של GKE בפרויקט המארח כדי להגדיר משאבי רשת משותפים.

(כתובת IP פרטית, אופציונלי) הגדרת כללים של חומת אש וקישוריות לדומיינים של Google

בהגדרת VPC משותף עם סביבות של כתובות IP פרטיות, אפשר לנתב את כל התנועה לממשקי Google APIs ולשירותים של Google דרך כמה כתובות IP ששייכות לדומיין private.googleapis.com ולהגדיר כללי חומת אש מתאימים. בהגדרה הזו, הסביבה שלכם ניגשת לממשקי API ולשירותים של Google דרך כתובות IP שניתנות לניתוב רק מתוך Google Cloud. אם בהגדרת ה-VPC המשותף שלכם נעשה שימוש ב-VPC Service Controls, צריך לנתב את התנועה דרך restricted.googleapis.com במקום זאת.

אם בהגדרת ה-VPC המשותף שלכם נעשה שימוש בסביבות עם כתובות IP פרטיות:

  1. (אופציונלי) הגדרת קישוריות לממשקי API ולשירותים של Google.
  2. (אופציונלי) מגדירים כללים לחומת אש.

אם בהגדרת ה-VPC המשותף שלכם נעשה שימוש ב-VPC Service Controls, צריך לפעול לפי ההוראות לסביבות עם VPC Service Controls:

  1. הגדרת קישוריות לממשקי API ולשירותים של Google.
  2. הגדרת כללים לחומת אש

סיכום

סיימתם להגדיר את רשת ה-VPC המשותפת גם בפרויקט המארח וגם בפרויקט השירות.

עכשיו אפשר ליצור סביבות חדשות בפרויקט השירות שמשתמשות ברשת ה-VPC של הפרויקט המארח.

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