Halaman ini memandu Anda cara membuat subnet global di Google Distributed Cloud (GDC) dengan air gap 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 Audiens untuk dokumentasi GDC dengan air gap.
Sebelum memulai
Untuk membuat subnet global dan mengonfigurasinya untuk ELB, Anda harus memiliki hal berikut:
- Memiliki project yang load balancer-nya sedang Anda konfigurasi. Untuk mengetahui informasi selengkapnya, lihat Membuat project.
Peran identitas dan akses yang diperlukan:
- Minta Admin Organisasi IAM Anda untuk memberi Anda peran Load Balancer Admin (
load-balancer-admin). - Minta Admin Org IAM Anda untuk memberi Anda peran Admin Load Balancer Global (
global-load-balancer-admin). - Minta Admin Org IAM Anda untuk memberi Anda peran Subnet Organization Admin (
subnet-org-admin). - Minta Admin Org IAM Anda untuk memberi Anda peran Subnet Project Admin (
subnet-project-admin).
Untuk mengetahui informasi selengkapnya, lihat Deskripsi peran yang telah ditetapkan.
- Minta Admin Organisasi IAM Anda untuk memberi Anda peran Load Balancer Admin (
Membuat subnet global induk
Subnet global induk yang Anda buat di bagian ini berfungsi sebagai kumpulan alamat IP yang menjadi sumber alamat IP ELB Anda. 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:
- Membuat subnet menggunakan konfigurasi CIDR statis
- Membuat subnet menggunakan konfigurasi CIDR dinamis
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 saat Anda memerlukan kontrol yang akurat atas ruang alamat IP Anda.
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 Management API global. Untuk mengetahui informasi selengkapnya, lihat Server API global dan 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, seperti10.0.10.0/27.PARENT_NAME: nama subnet induk yang ada, yang menjadi asal pembuatan subnet baru ini.
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 yang ditentukan 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, konfigurasikan 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, sepertilb-global-lancer-elb-subnet.STATIC_CIDR: blok CIDR tertentu yang ingin Anda gunakan, seperti10.0.10.0/27. Variabel ini hanya berlaku untuk konfigurasi CIDR statis.PARENT_NAME: nama subnet induk yang ada, yang menjadi asal pembuatan subnet baru ini, sepertidefault-vpc-workload-cidr.PREFIX_LENGTH: panjang awalan yang dipilih untuk CIDR yang dialokasikan secara dinamis seperti27. Variabel ini hanya berlaku untuk konfigurasi CIDR dinamis.
Untuk mengonfigurasi subnet ini agar berfungsi dengan ELB, Anda harus membuat subnet leaf untuk ELB.
Membuat 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 dari 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:
Buat subnet leaf dengan nilai
prefixLengthsebesar32, karena subnet ini dimaksudkan untuk mengalokasikan satu alamat IP. NilaiparentReferencemerujuk pada 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 EOFGanti kode berikut:
ELB_IP_SUBNET_NAME: nama yang Anda pilih untuk subnet leaf, sepertilb-project-elb-ip.PROJECT_NAMESPACE: namespace Kubernetes yang sesuai dengan project Anda tempat objek ELB berada, misalnya,lb-project.PARENT_REF: nama subnet induk yang menjadi sumber alamat IP subnet leaf ini, seperti subnet global induk yang Anda buat sebelumnya.
Hubungkan subnet leaf yang baru dibuat, yang menyimpan alamat IP yang dialokasikan, dengan resource
ForwardingRuleExternalELB Anda. Di resourceForwardingRuleExternal, perbarui kolomspec.cidrRef.nameuntuk merujuk ke 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 EOFGanti kode berikut:
FRI_NAME: nama yang Anda pilih untuk objekForwardingRuleExternal, sepertinginx-elb-static-fr.PORT: nomor port yang diproses ELB Anda untuk traffic masuk, seperti80.PROTOCOL: protokol jaringan yang digunakan ELB Anda, sepertiTCPatauUDP.BES_NAME: namaBackendServiceyang terkait dengan resourceForwardingRuleExternalini, sepertinginx-bes.LEAF_SUBNET_NAME: nama subnet leaf yang Anda buat di langkah sebelumnya, sepertilb-project-elb-ip.