Membuat subnet global untuk load balancing eksternal

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

Subnet global memungkinkan Anda mengonfigurasi subnet yang dapat menggunakan operasi load balancing eksternal 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 ELB, Anda harus memiliki berikut ini:

  • 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 tempat alamat IP ELB Anda berasal. Subnet harus menyertakan label ipam.gdc.goog/network-segment: data. Anda dapat 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/network-segment: data
  name: ELB_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.
  • ELB_PARENT_SUBNET_NAME: nama yang dipilih untuk subnet induk global Anda untuk ELB.
  • 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 ELB, Anda harus membuat subnet leaf untuk ELB.

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 lebih 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
piVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
  labels:
  ipam.gdc.goog/network-segment: data
  name: ELB_PARENT_SUBNET_NAME
  namespace: platform
spec:
  ipv4Request:
    prefixLength: PREFIX_LENGTH
  parentReference:
    name: PARENT_NAME
    namespace: platform
  propagationStrategy: None
  type: Branch
EOF

Ganti kode berikut:

  • ELB_PARENT_SUBNET_NAME: nama yang Anda pilih untuk subnet induk ELB, seperti lb-global-lancer-elb-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 ELB, Anda harus membuat subnet leaf untuk ELB.

Buat subnet leaf untuk ELB

Setelah menyiapkan subnet induk global, Anda harus membuat subnet leaf untuk mengalokasikan satu alamat IP untuk layanan ELB 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 ELB, 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/network-segment: data
      name: ELB_IP_SUBNET_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      ipv4Request:
        prefixLength: 32
      parentReference:
        name: PARENT_REF
        namespace: platform
      type: Leaf
    EOF
    

    Ganti kode berikut:

    • ELB_IP_SUBNET_NAME: nama yang Anda pilih untuk subnet leaf, seperti lb-project-elb-ip.
    • PROJECT_NAMESPACE: namespace Kubernetes yang sesuai dengan project tempat objek ELB 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 ForwardingRuleExternal ELB Anda. Di resource ForwardingRuleExternal, 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: ForwardingRuleExternal
    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 ForwardingRuleExternal, seperti nginx-elb-static-fr.
    • PORT: nomor port tempat ELB Anda memproses traffic masuk seperti 80.
    • PROTOCOL: protokol jaringan yang digunakan ELB Anda, seperti TCP atau UDP.
    • BES_NAME: nama BackendService yang terkait dengan resource ForwardingRuleExternal ini, seperti nginx-bes.
    • LEAF_SUBNET_NAME: nama subnet leaf yang Anda buat di langkah sebelumnya, seperti lb-project-elb-ip.