Load balancer eksternal (ELB) mengekspos layanan di luar project dari alamat IP kumpulan yang ditetapkan ke project dari kumpulan IP eksternal instance yang lebih besar.
Alamat IP Virtual (VIP) ELB tidak berkonflik antar-organisasi dan bersifat unik di semua organisasi. Oleh karena itu, Anda hanya boleh menggunakan layanan ELB untuk layanan yang harus diakses oleh klien di luar project.
Workload yang berjalan di dalam project dapat mengakses layanan ELB selama Anda mengizinkan workload keluar dari project. Pola traffic ini secara efektif memerlukan traffic keluar dari project sebelum kembali ke layanan internal.
Sebelum memulai
Untuk mengonfigurasi layanan ELB, Anda harus memiliki hal berikut:
- Memiliki project yang Anda konfigurasi load balancernya. Untuk mengetahui informasi selengkapnya, lihat Membuat project.
- Kebijakan masuk
ProjectNetworkPolicy(PNP) yang disesuaikan untuk mengizinkan traffic ke layanan ELB ini. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi PNP untuk mengizinkan traffic ke ELB. Peran akses dan identitas yang diperlukan:
- Admin NetworkPolicy Project: memiliki akses untuk mengelola kebijakan jaringan project di namespace project. Minta Admin IAM Organisasi Anda untuk memberi Anda peran Admin NetworkPolicy Project (
project-networkpolicy-admin). - Admin Load Balancer: Minta Admin IAM Organisasi Anda untuk memberi Anda peran Admin Load Balancer (
load-balancer-admin).
- Admin NetworkPolicy Project: memiliki akses untuk mengelola kebijakan jaringan project di namespace project. Minta Admin IAM Organisasi Anda untuk memberi Anda peran Admin NetworkPolicy Project (
Mengonfigurasi PNP untuk mengizinkan traffic ke ELB
Agar layanan ELB berfungsi, Anda harus mengonfigurasi dan menerapkan kebijakan ingress ProjectNetworkPolicykustom Anda sendiri untuk mengizinkan traffic ke layanan ELB ini. Tentukan alamat CIDR eksternal untuk mengizinkan traffic ke ELB ini:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: allow-inbound-traffic-from-external
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- ipBlock:
cidr: CIDR
ports:
- protocol: TCP
port: PORT
EOF
Ganti kode berikut:
MANAGEMENT_API_SERVER: jalur kubeconfig server Management API. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login untuk mengetahui detailnya.PROJECT: nama project GDC Anda.CIDR: CIDR eksternal yang diperlukan ELB untuk diakses. Kebijakan ini diperlukan karena load balancer eksternal menggunakan Direct Server Return (DSR), yang mempertahankan alamat IP eksternal sumber dan melewati load balancer di jalur kembali.PORT: port backend pada pod di belakang load balancer. Nilai ini ditemukan di kolom.spec.ports[].targetPortdari manifes untuk resourceService.
Membuat load balancer eksternal
Buat ELB menggunakan tiga metode berbeda di GDC:
- Gunakan gdcloud CLI untuk membuat ELB.
- Gunakan Networking Kubernetes Resource Model (KRM) API untuk membuat ELB.
Anda dapat menargetkan workload pod atau VM menggunakan KRM API dan gdcloud CLI. Anda hanya dapat menargetkan workload di cluster tempat objek Service dibuat saat menggunakan Layanan Kubernetes secara langsung di cluster Kubernetes.