הגדרת Private Service Connect ב-Managed Airflow

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

בדף הזה מוסבר איך ליצור סביבת כתובות IP פרטיות שמשתמשת ב-Private Service Connect במקום בחיבורי VPC.

מידע כללי על יצירת סביבות עם כתובת IP פרטית זמין במאמר הגדרת סביבה עם כתובת IP פרטית.

מידע על Private Service Connect ב-Managed Airflow

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

עם תמיכה ב-Private Service Connect ב-Managed Airflow, סביבות עם כתובות IP פרטיות מתקשרות באופן פנימי בלי להשתמש בקישור בין רשתות VPC. בסביבות כאלה נעשה שימוש בכתובת IP פרטית עם ארכיטקטורת PSC.

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

  • התמיכה ב-Private Service Connect זמינה רק ב-Managed Airflow (דור 2).

  • אפשר להפעיל את Private Service Connect רק כשיוצרים סביבה חדשה. אי אפשר להעביר סביבה קיימת לשימוש ב-Private Service Connect.

  • הסביבה שלכם צריכה להיות סביבת IP פרטי. מכיוון שלא נעשה שימוש בחיבורי VPC, אין צורך לציין את טווחי ה-CIDR של מופע Cloud SQL ושל הרשת הפנימית המנוהלת של Airflow.

  • אם האילוץ של מדיניות הארגון בנושא השבתת Private Service Connect לצרכנים דוחה נקודות קצה של SERVICE_PRODUCER, אי אפשר ליצור סביבות עם Private Service Connect. המדיניות הזו לא משפיעה על סביבות קיימות של Managed Airflow עם Private Service Connect. סביבות כאלה יכולות לפעול כשהמדיניות הזו מופעלת.

הפעלת Private Service Connect כשיוצרים סביבה

המסוף

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

כשיוצרים סביבת כתובות IP פרטיות:

  1. בקטע Network configuration, מרחיבים את הפריט Show network configuration.

  2. בקטע Networking type, בוחרים באפשרות Private IP environment כדי ליצור סביבת IP פרטית.

  3. בקטע Composer connectivity (קישוריות ל-Composer), בוחרים באפשרות Private Service Connect (חיבור לשירות פרטי).

  4. ברשימה הנפתחת Composer connection subnetwork, בוחרים את רשת המשנה של נקודות הקצה של Private Service Connect.

    אתם יכולים להשתמש ברשת המשנה של הסביבה.

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

  5. מציינים פרמטרים אחרים לסביבת ה-IP הפרטי.

gcloud

כדי ליצור סביבה עם Private Service Connect, משתמשים בארגומנט --connection-subnetwork כשיוצרים סביבה עם כתובת IP פרטית. לאחר מכן מציינים את רשת המשנה לחיבור Private Service Connect.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.17.16-airflow-2.11.1 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork ENVIRONMENT_PSC_SUBNETWORK

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫LOCATION באזור שבו הסביבה נמצאת.
  • ‫ENVIRONMENT_PSC_SUBNETWORK עם ה-URI של רשת המשנה עבור נקודות קצה של Private Service Connect.

    אפשר להשתמש ברשת המשנה של הסביבה.

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

דוגמה:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.17.16-airflow-2.11.1 \
    --enable-private-environment \
    --web-server-allow-all \
    --connection-subnetwork "projects/example-project/regions/us-central1/subnetworks/default"

API

יוצרים בקשת API של environments.create. במשאב Environment, מציינים את פרמטרי ההגדרה של חיבור Private Service Connect.

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

{
  "name": "ENVIRONMENT_NAME",

  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.17.16-airflow-2.11.1"
    },
    "nodeConfig": {
      "network": "ENVIRONMENT_NETWORK",
      "subnetwork": "ENVIRONMENT_SUBNETWORK"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "ENVIRONMENT_PSC_SUBNETWORK"
    }
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "0.0.0.0/0",
          "description": "Allows access from all IPv4 addresses"
        },
        {
          "value": "::0/0",
          "description": "Allows access from all IPv6 addresses"
        }
      ]
    }
  }
}

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫ENVIRONMENT_NETWORK עם ה-URI של הרשת בסביבה שלכם.
  • ‫ENVIRONMENT_SUBNETWORK מחליפים ב-URI של רשת המשנה בסביבה שלכם.
  • ‫ENVIRONMENT_PSC_SUBNETWORK עם ה-URI של רשת המשנה לנקודות קצה של PSC.

    אפשר להשתמש ברשת המשנה של הסביבה.

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

דוגמה:

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

{
  "name": "example-environment",
  "config": {

    "softwareConfig": {
      "imageVersion": "composer-2.17.16-airflow-2.11.1"
    },
    "nodeConfig": {
      "network": "projects/example-project/global/networks/default",
      "subnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
    },
    "privateEnvironmentConfig": {
      "enablePrivateEnvironment": true,
      "privateClusterConfig": {
        "enablePrivateEndpoint": false
      },
      "cloudComposerConnectionSubnetwork": "projects/example-project/regions/us-central1/subnetworks/default"
    }
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "0.0.0.0/0",
          "description": "Allows access from all IPv4 addresses"
        },
        {
          "value": "::0/0",
          "description": "Allows access from all IPv6 addresses"
        }
      ]
    }
  }
}

Terraform

כשיוצרים סביבה, השדה cloud_composer_connection_subnetwork בבלוק private_environment_config מאפשר Private Service Connect.

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 {
      network = "ENVIRONMENT_NETWORK"
      subnetwork = "ENVIRONMENT_SUBNETWORK"

    }

    private_environment_config {
      // Other private IP environment parameters
      cloud_composer_connection_subnetwork = "ENVIRONMENT_PSC_SUBNETWORK"
    }

    web_server_network_access_control  {
      allowed_ip_range {
        value = "0.0.0.0/0"
        description = "Allows access from all IPv4 addresses"
      }

      allowed_ip_range {
        value = "::0/0"
        description = "Allows access from all IPv6 addresses"
      }
    }
  }
}

מחליפים את:

  • ‫ENVIRONMENT_NAME בשם הסביבה.
  • ‫ENVIRONMENT_NETWORK עם ה-URI של הרשת בסביבה שלכם.
  • ‫ENVIRONMENT_SUBNETWORK מחליפים ב-URI של רשת המשנה בסביבה שלכם.
  • ‫ENVIRONMENT_PSC_SUBNETWORK עם ה-URI של רשת המשנה לנקודות קצה של PSC.

    אפשר להשתמש ברשת המשנה של הסביבה.

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

דוגמה:

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

  config {
    environment_size = "ENVIRONMENT_SIZE_SMALL"

    software_config {
      image_version = "composer-2.17.16-airflow-2.11.1"
    }

    node_config {
      network = "projects/example-project/global/networks/default"
      subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

    private_environment_config {
      // Other private IP environment parameters
      enable_private_endpoint = "true"
      cloud_composer_connection_subnetwork = "projects/example-project/regions/us-central1/subnetworks/default"
    }

    web_server_network_access_control  {
      allowed_ip_range {
        value = "0.0.0.0/0"
        description = "Allows access from all IPv4 addresses"
      }

      allowed_ip_range {
        value = "::0/0"
        description = "Allows access from all IPv6 addresses"
      }
    }
 }
}

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