Membuat subnet global untuk load balancing internal

Halaman ini memandu Anda cara membuat subnet global di Google Distributed Cloud (GDC) yang terisolasi dan menggunakan subnet tersebut untuk load balancer internal (ILB).

Subnet global memungkinkan Anda mengonfigurasi operasi load balancing internal di beberapa zona dalam organisasi GDC Anda. Load balancing memberikan manfaat peningkatan performa, keandalan, dan ketersediaan aplikasi dan layanan dengan mendistribusikan traffic jaringan ke beberapa server. Untuk mengetahui informasi selengkapnya tentang subnet global untuk load balancing, lihat Tentang subnet untuk load balancing.

Halaman ini ditujukan bagi developer dalam grup operator aplikasi yang ingin mengelola load balancing untuk organisasi mereka. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Audiens untuk GDC yang terisolasi dari internet.

Sebelum memulai

Untuk membuat subnet global dan mengonfigurasinya untuk ILB, Anda harus memiliki hal berikut:

  • Memiliki project yang Anda konfigurasi load balancernya. Untuk mengetahui informasi selengkapnya, lihat Membuat project.
  • Peran akses dan identitas yang diperlukan:

    • Minta Admin IAM Organisasi Anda untuk memberi Anda peran Load Balancer Admin (load-balancer-admin).
    • Minta Admin IAM Organisasi Anda untuk memberi Anda peran Global Load Balancer Admin (global-load-balancer-admin).
    • Minta Admin IAM Organisasi Anda untuk memberi Anda peran Subnet Organization Admin (subnet-org-admin).
    • Minta Admin IAM Organisasi Anda untuk memberi Anda peran Subnet Project Admin (subnet-project-admin).

    Untuk mengetahui informasi selengkapnya, lihat Deskripsi peran standar.

Membuat subnet global induk

Subnet global induk yang Anda buat di bagian ini berfungsi sebagai kumpulan alamat IP yang menjadi sumber alamat IP ILB Anda. Anda menentukan induk subnet menggunakan kolom spec.parentReference.name. Anda memiliki dua opsi untuk mengonfigurasi CIDR untuk subnet induk ini:

Untuk mengetahui informasi selengkapnya tentang perbedaan antara konfigurasi CIDR statis dan dinamis, lihat Konfigurasi CIDR statis dan dinamis.

Membuat subnet menggunakan konfigurasi CIDR statis

Gunakan konfigurasi CIDR statis jika Anda memerlukan kontrol yang tepat atas ruang alamat IP. Subnet ini memiliki jenis Branch. Untuk mengetahui informasi selengkapnya tentang jenis subnet root, cabang, dan leaf, lihat Hierarki subnet.

Untuk membuat subnet induk global dengan konfigurasi CIDR statis, tambahkan blok CIDR yang Anda pilih ke kolom spec.ipv4Request.cidr:

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/vpc: default-vpc
  name: ILB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    cidr: STATIC_CIDR
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch
EOF

Ganti kode berikut:

  • GLOBAL_API_SERVER: jalur kubeconfig server API pengelolaan global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan per zona. Jika Anda belum membuat file kubeconfig untuk server API, lihat Login untuk mengetahui detailnya.
  • ILB_PARENT_SUBNET_NAME: nama yang dipilih untuk subnet induk global Anda untuk ILB.
  • STATIC_CIDR: blok CIDR tertentu yang ingin Anda alokasikan untuk subnet induk ini, seperti 10.0.10.0/27.
  • PARENT_NAME: nama subnet induk yang ada tempat subnet baru ini dibuat.

Untuk mengonfigurasi subnet ini agar berfungsi dengan ILB, Anda harus membuat subnet leaf untuk ILB.

Membuat subnet menggunakan konfigurasi CIDR dinamis

Konfigurasi CIDR dinamis secara otomatis mengalokasikan blok CIDR yang tersedia dengan ukuran tertentu dari subnet induk. Hal ini menyederhanakan pengelolaan alamat IP, terutama di lingkungan yang besar. Subnet ini memiliki jenis Branch. Untuk mengetahui informasi selengkapnya tentang jenis subnet root, cabang, dan leaf, lihat Hierarki subnet.

Untuk membuat subnet induk global dengan CIDR dinamis, konfigurasi kolom spec.ipv4Request.prefixLength dengan panjang awalan yang dipilih:

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
    ipam.gdc.goog/vpc: default-vpc
  name: ILB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    prefixLength: PREFIX_LENGTH
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch

EOF

Ganti kode berikut:

  • ILB_PARENT_SUBNET_NAME: nama yang Anda pilih untuk subnet induk ILB, seperti lb-global-lancer-ilb-subnet.
  • STATIC_CIDR: blok CIDR tertentu yang ingin Anda gunakan, seperti 10.0.10.0/27. Variabel ini hanya berlaku untuk konfigurasi CIDR statis.
  • PARENT_NAME: nama subnet induk yang ada tempat subnet baru ini dibuat, seperti default-vpc-workload-cidr.
  • PREFIX_LENGTH: panjang awalan yang dipilih untuk CIDR yang dialokasikan secara dinamis, seperti 27. Variabel ini hanya berlaku untuk konfigurasi CIDR dinamis.

Untuk mengonfigurasi subnet ini agar berfungsi dengan ILB, Anda harus membuat subnet leaf untuk ILB.

Buat subnet leaf untuk ILB

Setelah menyiapkan subnet induk global, Anda harus membuat subnet leaf untuk mengalokasikan satu alamat IP untuk layanan ILB global. Subnet leaf ini harus memiliki nilai kolom type Leaf dan harus berada di namespace project yang sama dengan resource load balancer Anda, seperti ForwardingRule, BackendService, dan Backend.

Untuk membuat subnet leaf dan menautkannya ke ILB, ikuti langkah-langkah berikut:

  1. Buat subnet leaf dengan nilai prefixLength sebesar 32, karena subnet ini dimaksudkan untuk mengalokasikan satu alamat IP. Nilai parentReference mereferensikan subnet global induk yang dibuat sebelumnya:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: ipam.global.gdc.goog/v1
    kind: Subnet
    metadata:
      labels:
        ipam.gdc.goog/allocation-preference: default
        ipam.gdc.goog/vpc: default-vpc
      name: ILB_IP_SUBNET_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ipv4Request:
        prefixLength: 32
      parentReference:
        name: PARENT_REF
        namespace: platform
      type: Leaf
    EOF
    

    Ganti kode berikut:

    • ILB_IP_SUBNET_NAME: nama yang Anda pilih untuk subnet leaf, seperti lb-project-ilb-ip.
    • PROJECT_NAMESPACE: namespace Kubernetes yang sesuai dengan project tempat objek ILB Anda berada, misalnya, lb-project.
    • PARENT_REF: nama subnet induk yang menjadi sumber alamat IP subnet daun ini, seperti subnet global induk yang Anda buat sebelumnya.
  2. Hubungkan subnet leaf yang baru dibuat, yang menyimpan alamat IP yang dialokasikan, dengan resource ForwardingRuleInternal ILB Anda. Di resource ForwardingRuleInternal, perbarui kolom spec.cidrRef.name untuk mereferensikan nama subnet leaf yang Anda buat di langkah sebelumnya:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ForwardingRuleInternal
    metadata:
      name: FRI_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ports:
        - port: PORT
          protocol: PROTOCOL
      backendServiceRef:
        name: BES_NAME
      cidrRef:
        name: LEAF_SUBNET_NAME
    EOF
    

    Ganti kode berikut:

    • FRI_NAME: nama yang Anda pilih untuk objek ForwardingRuleInternal, seperti nginx-ilb-static-fr.
    • PORT: nomor port tempat ILB Anda memproses traffic masuk, seperti 80.
    • PROTOCOL: protokol jaringan yang digunakan ILB Anda, seperti TCP atau UDP.
    • BES_NAME: nama BackendService yang terkait dengan resource ForwardingRuleInternal ini, seperti nginx-bes.
    • LEAF_SUBNET_NAME: nama subnet leaf yang Anda buat di langkah sebelumnya, seperti lb-project-ilb-ip.