הגדרה של dual-stack ‏ (IPv4 ו-IPv6)

תת-רשתות עם תמיכה כפולה מאפשרות למשאבי Cloud Run לשלוח תעבורת IPv4 ו-IPv6 לרשת VPC עם יציאה ישירה מ-VPC. אפשר לשנות תת-רשת קיימת של IPv4 בלבד (single-stack) לתת-רשת של dual-stack.

סוגי רשתות משנה

רשתות VPC תומכות בסוגים הבאים של תת-רשתות ב-Compute Engine:

מגבלות של Dual-stack

לפני שמשנים את סוג ה-stack במשאב קיים של Cloud Run, חשוב להביא בחשבון את המגבלות הבאות:

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

  • בהשוואה לרשתות משנה עם IPv4 בלבד, ברשתות משנה עם מחסנית כפולה יכול להיות שזמני האחזור של התחלה קרה יהיו גבוהים יותר, ולכן קצב ההרחבה של האפליקציה יהיה מוגבל.

  • אין תמיכה ב-NAT64.

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

חשוב לוודא שלסוכן השירות של Cloud Run יש את התפקיד 'אדמין של כתובות IP ציבוריות ב-Compute' (roles/compute.publicIpAdmin) כדי להשתמש ברשת המשנה עם IPv6 חיצוני.

הוספת רשת משנה עם פרוטוקול כפול למשאב

לרשתות משנה עם פרוטוקול כפול יש טווחים של כתובות IPv4 ו-IPv6.

כדי להוסיף רשת משנה עם תמיכה כפולה במשאב Cloud Run:

המסוף

  1. במסוף Google Cloud :

    1. מפעילים את Compute Engine API:

      להפעלת Compute Engine API

    2. נכנסים לדף VPC networks:

      מעבר לרשתות VPC

  2. אם אתם יוצרים רשת חדשה במצב מותאם אישית, לוחצים על יצירת רשת VPC. אם אתם משתמשים ברשת VPC קיימת, לוחצים על השם של רשת ה-VPC כדי להציג את הדף VPC network details (פרטי רשת ה-VPC).

  3. אם יוצרים רשת חדשה או ממירים רשת קיימת, מזינים את השם ומוודאים שמצב יצירת רשתות משנה מוגדר לבהתאמה אישית. לאחר מכן בוחרים באפשרות הגדרת טווח פנימי של כתובות IPv6 מסוג ULA לרשת ה-VPC הזו.

  4. בכרטיסייה Subnets, לוחצים על Add subnet. בחלונית שמופיעה:

    1. מזינים שם.
    2. בוחרים Region.
    3. בשביל IP stack type, בוחרים באפשרות IPv4 and IPv6 (dual-stack).
    4. מזינים טווח IPv4. זהו טווח IPv4 הראשי של רשת המשנה.
    5. בוחרים באפשרות סוג הגישה IPv6.

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

    6. לוחצים על הוספה.

  5. פריסת שירות Cloud Run, הפעלת משימה או פריסת מאגר worker ברשת המשנה עם פרוטוקול כפול שיצרתם. כשמזינים את פרטי המשאב הדרושים, בוחרים את טווח כתובות ה-IPv6 החדש באופן הבא:

    1. לוחצים על Container(s), Volumes, Networking, Security (מאגרי נתונים, נפחים, רשת, אבטחה) ובוחרים בכרטיסייה Networking (רשת).
    2. לוחצים על Connect to a VPC for outbound traffic (התחברות ל-VPC לתעבורה יוצאת) ואז על Send traffic directly to a VPC (שליחת תעבורה ישירות ל-VPC).
    3. בוחרים את הרשת שיצרתם בשלב הקודם.
    4. לוחצים על השדה Subnet (רשת משנה) כדי לבחור את טווח כתובות ה-IPv6 שנוצר.

    המשאב מוקצה באופן אוטומטי עם סוג הערימה של רשת המשנה.

gcloud

  1. כדי ליצור רשת במצב מותאם אישית שתומכת ברשתות משנה עם מחסנית כפולה, מריצים את הפקודה gcloud compute networks create.

    כדי להגדיר טווחי IPv6 פנימיים בכל רשת משנה ברשת הזו, משתמשים בדגל --enable-ula-internal-ipv6. האפשרות הזו מקצה קידומת /48 ULA מתוך טווח fd20::/20 שמשמש את Google Cloud לטווחים פנימיים של רשתות משנה ב-IPv6.

    gcloud compute networks create NETWORK \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6
    

    מחליפים את NETWORK בשם של רשת ה-VPC שתכיל את רשת המשנה החדשה.

  2. כדי להמיר רשת במצב מותאם אישית או לעדכן אותה כך שתתמוך בתת-רשתות עם כתובות IPv4 ו-IPv6, מריצים את הפקודה הבאה:

    gcloud compute networks update NETWORK \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6
    

    מחליפים את NETWORK בשם של רשת ה-VPC שתכיל את רשת המשנה החדשה.

  3. כדי ליצור רשת משנה עם תמיכה כפולה ב-IPv4 ו-IPv6 עם טווח IPv6, מריצים את הפקודה subnets create עם ההגדרות של התמיכה הכפולה:

    gcloud compute networks subnets create SUBNET \
      --network=NETWORK \
      --range=PRIMARY_IPv4_RANGE \
      --stack-type=IPV4_IPV6 \
      --ipv6-access-type=IPV6_ACCESS_TYPE \
      --region=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SUBNET: שם לתת-הרשת החדשה.
    • NETWORK: השם של רשת ה-VPC שתכיל את תת-הרשת החדשה.
    • PRIMARY_IPv4_RANGE: טווח ה-IPv4 הראשי של תת-הרשת החדשה, בסימון CIDR. מידע נוסף זמין במאמר בנושא טווחים של רשתות משנה ב-IPv4.
    • IPV6_ACCESS_TYPE: סוג הגישה ל-IPv6 עבור רשת המשנה החדשה, internal או external.
    • REGION: Google Cloud האזור שבו ייווצר תת-הרשת החדשה.
  4. פריסת שירות Cloud Run, הפעלת משימה או פריסת מאגר worker ברשת המשנה עם פרוטוקול כפול שיצרתם. המשאב מוקצה באופן אוטומטי עם סוג הערימה של רשת המשנה.

YAML

  1. אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:

    gcloud run services describe SERVICE --format export > service.yaml
  2. מעדכנים את המאפיינים הבאים:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE_NAME
        labels:
          cloud.googleapis.com/location: REGION
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          spec:
            containers:
            - image: IMAGE

    מחליפים את:

    • SERVICE_NAME מחליפים בשם של שירות Cloud Run. שמות של שירותים צריכים להיות באורך של עד 49 תווים, והם צריכים להיות ייחודיים לכל אזור ופרויקט.
    • REGION מחליפים באזור של שירות Cloud Run, שחייב להיות זהה לאזור של רשת המשנה.
    • NETWORK בשם של רשת ה-VPC.
    • SUBNET בשם של רשת המשנה. אפשר לפרוס או להריץ כמה שירותים, משימות או מאגרי עובדים באותה רשת משנה.
    • אופציונלי: NETWORK_TAG_NAMES עם השמות של תגי הרשת שרוצים לשייך לשירות. בשירותים, תגי הרשת מצוינים ברמת השינוי. לכל גרסה של שירות יכולים להיות תגי רשת שונים, כמו network-tag-2.
    • EGRESS_SETTING עם ערך של הגדרת יציאה:
      • all-traffic: שליחת כל התעבורה היוצאת דרך רשת ה-VPC.
      • private-ranges-only: שולח תנועה רק לכתובות פנימיות דרך רשת ה-VPC.
    • IMAGE בכתובת ה-URL של קובץ אימג' הקונטיינר של השירות.

    אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.

  3. יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

  1. מוסיפים לקובץ main.tf את הנתונים הבאים:

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      deletion_protection = false # set to "true" in production
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

אם רוצים לאפשר גישה לשירות ללא אימות, אפשר להגדיר את השירות כציבורי.

שינוי רשת משנה מ-IPv4 בלבד ל-IPv4 ו-IPv6

כדי להוסיף טווח של תת-רשת IPv6 לתת-רשת קיימת מסוג IPv4 בלבד ברשת VPC במצב מותאם אישית, אפשר לעיין במאמר שינוי סוג הערימה של תת-רשת לדו-ערכית. לאחר מכן, פורסים את שירות Cloud Run, מריצים את העבודה או פורסים את מאגר העובדים ברשת המשנה עם פרוטוקול כפול.

שינוי של רשת משנה מ-dual-stack ל-single-stack

כדי לשנות רשת משנה עם מחסנית כפולה של משאב לרשת משנה עם מחסנית יחידה, אפשר לעיין במאמר בנושא שינוי רשת משנה עם מחסנית כפולה ל-IPv4 בלבד. לאחר מכן, פורסים את שירות Cloud Run, מריצים את העבודה או פורסים את מאגר העובדים ברשת המשנה עם פרוטוקול כפול.

אימות הרשת ורשת המשנה

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

gcloud run services describe SERVICE_NAME --region=REGION

מחליפים את REGION ב Google Cloud אזור שבו נוצרה רשת המשנה החדשה.

בדוגמת הפלט הבאה מוצגים הרשת ורשת המשנה שלכם:

  VPC Access:
    Network:        example-network
    Subnet:         example-subnet
    Egress:         private-ranges-only