Menyiapkan resource stack ganda

Subnet dual-stack memungkinkan resource Cloud Run Anda mengirim traffic IPv4 dan IPv6 ke jaringan VPC dengan traffic keluar VPC Langsung. Anda dapat mengubah subnet khusus IPv4 (single-stack) yang ada menjadi subnet dual stack.

Jenis subnet

Jaringan VPC mendukung jenis subnet Compute Engine berikut:

  • Subnet khusus IPv4 (single-stack), dengan hanya rentang subnet IPv4

  • Subnet IPv4 dan IPv6 (dual-stack), dengan rentang subnet IPv4 dan IPv6

Batasan stack ganda

Sebelum mengubah jenis stack pada resource Cloud Run yang ada, pertimbangkan batasan berikut:

  • Dukungan stack ganda hanya tersedia dengan subnet di jaringan VPC mode kustom. Agar jenis akses internal tersedia untuk subnet stack ganda, rentang IPv6 internal jaringan VPC harus diaktifkan. Siapkan atau konversi jaringan VPC ke mode kustom.

  • Dibandingkan dengan subnet khusus IPv4, subnet dual-stack mungkin mengalami latensi cold-start yang lebih tinggi, sehingga membatasi seberapa cepat aplikasi Anda dapat melakukan penskalaan.

  • NAT64 tidak didukung.

Sebelum memulai

Pastikan agen layanan Cloud Run memiliki peran Admin IP Publik Compute (roles/compute.publicIpAdmin) untuk menggunakan subnet dengan IPv6 eksternal.

Menambahkan subnet stack ganda pada resource

Subnet stack ganda memiliki rentang alamat IPv4 dan IPv6.

Untuk menambahkan subnet stack ganda pada resource Cloud Run, lakukan langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud :

    1. Aktifkan Compute Engine API:

      Mengaktifkan Compute Engine API

    2. Buka halaman VPC networks:

      Buka jaringan VPC

  2. Klik Create VPC network jika Anda membuat jaringan mode kustom baru. Jika Anda menggunakan jaringan VPC yang sudah ada, klik nama jaringan VPC untuk menampilkan halaman VPC network details.

  3. Jika Anda membuat jaringan baru atau mengonversi jaringan yang sudah ada, masukkan nama dan pastikan Subnet creation mode disetel ke Custom, lalu pilih Configure a ULA internal IPv6 range for this VPC Network.

  4. Dari tab Subnets, klik Add subnet. Pada panel yang muncul:

    1. Berikan Nama.
    2. Pilih Region.
    3. Untuk IP stack type, pilih IPv4 and IPv6 (dual-stack).
    4. Masukkan rentang IPv4. Ini adalah rentang IPv4 utama untuk subnet.
    5. Pilih IPv6 access type.

      Jika opsi Internal tidak tersedia dan Anda memerlukannya, periksa apakah rentang IPv6 internal telah ditetapkan di jaringan.

    6. Klik Tambahkan.

  5. Deploy layanan Cloud Run, jalankan tugas, atau deploy kumpulan worker di subnet dual-stack yang Anda buat. Saat Anda memasukkan detail resource yang diperlukan, pilih rentang alamat IPv6 baru dengan mengikuti langkah-langkah berikut:

    1. Klik Container(s), Volumes, Networking, Security, lalu pilih tab Networking.
    2. Klik Hubungkan ke VPC untuk traffic keluar, lalu Kirim traffic langsung ke VPC.
    3. Pilih Network yang Anda buat pada langkah sebelumnya.
    4. Klik kolom Subnet untuk memilih rentang alamat IPv6 yang baru dibuat.

    Resource otomatis disediakan dengan jenis stack subnet.

gcloud

  1. Untuk membuat jaringan mode kustom yang mendukung subnet stack ganda, jalankan perintah gcloud compute networks create.

    Untuk mengonfigurasi rentang IPv6 internal pada subnet apa pun di jaringan ini, gunakan flag --enable-ula-internal-ipv6. Opsi ini menetapkan awalan ULA /48 dari dalam rentang fd20::/20 yang digunakan oleh Google Cloud untuk rentang subnet IPv6 internal.

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

    Ganti NETWORK dengan nama jaringan VPC yang akan berisi subnet baru.

  2. Untuk mengonversi atau mengupdate jaringan mode kustom agar mendukung subnet stack ganda, jalankan perintah berikut:

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

    Ganti NETWORK dengan nama jaringan VPC yang akan berisi subnet baru.

  3. Untuk membuat subnet stack ganda dengan rentang IPv6, jalankan perintah subnets create menggunakan setelan stack ganda:

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

    Ganti kode berikut:

    • SUBNET: nama untuk subnet baru.
    • NETWORK: nama jaringan VPC yang akan berisi subnet baru.
    • PRIMARY_IPv4_RANGE: rentang IPv4 utama untuk subnet baru, dalam notasi CIDR. Untuk informasi selengkapnya, lihat Rentang subnet IPv4.
    • IPV6_ACCESS_TYPE: jenis akses IPv6 untuk subnet baru, internal atau external.
    • REGION: Google Cloud region tempat subnet baru akan dibuat.
  4. Deploy layanan Cloud Run, jalankan tugas, atau deploy kumpulan worker di subnet dual-stack yang Anda buat. Resource otomatis disediakan dengan jenis stack subnet.

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Perbarui atribut berikut:

    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

    Ganti:

    • SERVICE_NAME dengan nama layanan Cloud Run Anda. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
    • REGION dengan region untuk layanan Cloud Run, yang harus sesuai dengan region subnet Anda.
    • NETWORK dengan nama jaringan VPC Anda.
    • SUBNET dengan nama subnet Anda. Anda dapat men-deploy atau menjalankan beberapa layanan, tugas, atau kumpulan pekerja di subnet yang sama.
    • Opsional NETWORK_TAG_NAMES dengan nama tag jaringan yang ingin Anda kaitkan dengan layanan. Untuk layanan, tag jaringan ditentukan pada tingkat revisi. Setiap revisi jaringan dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.
    • EGRESS_SETTING dengan nilai setelan traffic keluar:
      • all-traffic: Mengirim semua traffic keluar melalui jaringan VPC.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • IMAGE dengan URL image container layanan Anda.

    Anda juga dapat menentukan lebih banyak konfigurasi, seperti variabel lingkungan atau batas memori.

  3. Buat atau perbarui layanan menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

  1. Tambahkan kode berikut ke file main.tf Anda:

    /**
     * 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"]
          }
        }
      }
    }
    

Sebagai opsi, tampilkan layanan Anda ke publik jika Anda ingin mengizinkan akses tanpa autentikasi ke layanan.

Mengubah subnet dari stack tunggal menjadi stack ganda

Untuk menambahkan rentang subnet IPv6 ke subnet khusus IPv4 yang ada di jaringan VPC mode kustom, lihat Mengubah jenis stack subnet menjadi stack ganda. Kemudian, deploy layanan Cloud Run, jalankan tugas, atau deploy kumpulan pekerja di subnet dual-stack.

Mengubah subnet dari stack ganda menjadi stack tunggal

Untuk mengubah subnet stack ganda resource menjadi subnet stack tunggal, lihat Mengubah subnet stack ganda menjadi khusus IPv4. Kemudian, deploy layanan Cloud Run, jalankan tugas, atau deploy kumpulan pekerja di subnet dual-stack.

Verifikasi jaringan dan subnet

Untuk memeriksa apakah resource Anda berada di jaringan VPC, jalankan perintah berikut:

gcloud run services describe SERVICE_NAME --region=REGION

Ganti REGION dengan Google Cloud region tempat subnet baru dibuat.

Contoh output berikut menunjukkan jaringan dan subnet Anda:

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