הפעלת סוכן IP Masquerade בסביבות Managed Airflow

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

בדף הזה מוסבר איך להפעיל את סוכן הסתרת ה-IP בסביבה שלכם.

מידע על סוכן הסתרת ה-IP ב-Managed Airflow

ב-Managed Airflow יש תמיכה בסוכן הסתרת IP בסביבות שלכם.

הסתרת IP היא סוג של תרגום כתובת רשת (NAT) שמשמש לתרגום כתובות IP רבות לכתובת אחת. כך כמה לקוחות יכולים לגשת ליעד מכתובת IP אחת.

‫Managed Airflow מריץ את עומסי העבודה ב-GKE. כדי שהפונקציה תפעל בצורה תקינה, צריך טווחי כתובות IP לצמתים (VMs), לפודים ולשירותים של GKE. כשמשימות ו-DAG של Airflow מתקשרים עם שירותים אחרים, הם משתמשים בכתובות IP של Pod, וצריך להיות אפשרי לנתב את טווחי כתובות ה-IP האלה אל כל היעדים שאיתם המשימות יוצרות אינטראקציה, ומהם.

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

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

לדוגמה:

  1. אתם משתמשים בטווח 10.0.0.0/8 למכונות וירטואליות, ורק הטווח הזה מותר לפי כללי חומת האש.

  2. כדי לשמור טווחי רשת, אתם משתמשים בטווח אחר (לדוגמה, 192.168.0.0/16) לפודים באשכול של הסביבה.

  3. כדי להתחבר לשירות כלשהו מ-Pod (‏Airflow worker), צריך להשתמש בהסתרת IP. אחרת, השירות יקבל תנועה מ-192.168.0.0/16 וידחה אותה בגלל כלל חומת אש. כשהסוכן להסתרת כתובות IP מופעל ומוגדר, השירות מקבל בקשות מ-10.0.0.0/8 והן מאושרות.

לפני שמתחילים

  • אי אפשר להפעיל את הסוכן להסתרת IP במסוף Google Cloud .

  • כדי להשתמש בתכונה הזו, צריך ליצור סביבה עם GKE בגרסה 1.22.7 ואילך.

  • סוכן הסתרת ה-IP לא זמין לסביבות שנוצרו בגרסאות GKE קודמות, גם אם GKE שודרג לגרסה 1.22.7 ואילך.

  • אם מפעילים את סוכן הסתרת ה-IP, ההגדרה של Managed Airflow תחליף את EgressNatPolicy של GKE שמוגדרת כברירת מחדל. אם הסוכן להסתרת כתובות IP לא מופעל, תעבורת הנתונים היוצאת לא תוסתר ותשתמש ב-EgressNatPolicy של GKE כברירת מחדל.

הפעלת סוכן הסתרת ה-IP בסביבה קיימת

אי אפשר להפעיל את סוכן הסתרת ה-IP בסביבה קיימת.

הפעלת הסוכן להסתרת IP כשיוצרים סביבה

אפשר להפעיל את סוכן הסתרת ה-IP כשיוצרים סביבה.

מידע נוסף על יצירת סביבות Managed Airflow זמין במאמר יצירת סביבה.

המסוף

אי אפשר להפעיל את סוכן הסתרת ה-IP במסוף Google Cloud .

gcloud

כשיוצרים סביבה, הארגומנט --enable-ip-masq-agent מפעיל את סוכן ה-IP Masqerade.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --service-account "SERVICE_ACCOUNT" \
    --image-version composer-2.17.16-airflow-2.11.1 \
    --enable-ip-masq-agent

מחליפים את:

  • ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫SERVICE_ACCOUNT עם חשבון השירות של הסביבה שלכם.

דוגמה:

gcloud composer environments create example-environment \
    --location us-central1 \
    --service-account "example-account@example-project.iam.gserviceaccount.com" \
    --image-version composer-2.17.16-airflow-2.11.1 \
    --enable-ip-masq-agent

API

יוצרים בקשת API של environments.create. מציינים את ההגדרות במשאב Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.17.16-airflow-2.11.1"
    },
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
      "enableIpMasqAgent": true
    }
  }
}

מחליפים את:

  • ‫PROJECT_ID במזהה הפרויקט.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ENVIRONMENT_NAME בשם הסביבה.
  • ‫SERVICE_ACCOUNT עם חשבון השירות של הסביבה שלכם.

דוגמה:

  // POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

  {
    "name": "projects/example-project/locations/us-central1/environments/example-environment",
    "config": {
      "softwareConfig": {
        "imageVersion": "composer-2.17.16-airflow-2.11.1"
      },
      "nodeConfig": {
        "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
        "enableIpMasqAgent": true
      }
    }
  }

Terraform

כשיוצרים סביבה, השדה enable_ip_masq_agent בבלוק node_config מפעיל את סוכן ה-IP Masqerade.

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "composer-2.17.16-airflow-2.11.1"
    }
    node_config {
      service_account = "SERVICE_ACCOUNT"
      enable_ip_masq_agent = true
    }
  }

מחליפים את:

  • ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו נמצאת הסביבה.
  • ‫SERVICE_ACCOUNT עם חשבון השירות של הסביבה שלכם.

דוגמה:

resource "google_composer_environment" "example_environment" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-2.17.16-airflow-2.11.1"
    }
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
      enable_ip_masq_agent = true
    }
  }
}

הגדרת הסוכן להסתרת כתובות IP

מידע נוסף על השימוש בסוכן הסתרת ה-IP והגדרתו ב-Managed Airflow (דור שני) זמין במאמר שימוש במדיניות Egress NAT להגדרת הסתרת IP באשכולות Autopilot.

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