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 מטווח אחר לפודים באשכול של הסביבה.
לדוגמה:
אתם משתמשים בטווח
10.0.0.0/8למכונות וירטואליות, ורק הטווח הזה מותר לפי כללי חומת האש.כדי לשמור טווחי רשת, אתם משתמשים בטווח אחר (לדוגמה,
192.168.0.0/16) לפודים באשכול של הסביבה.כדי להתחבר לשירות כלשהו מ-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.