Halaman ini merangkum cara mengonfigurasi load balancer di AlloyDB Omni menggunakan spec
AlloyDB Omni. Di Google Kubernetes Engine (GKE), load balancer yang dibuat secara default adalah jenis eksternal dan terikat dengan alamat IP eksternal untuk mengizinkan koneksi dari internet. Namun, jika anotasi networking.gke.io/load-balancer-type: "internal"
disertakan dalam kolom metadata.annotations[]
manifes load balancer, GKE akan membuat load balancer internal.
Platform yang berbeda menyediakan anotasi mereka sendiri untuk membuat jenis load balancer tertentu.
AlloyDB Omni memungkinkan Anda menentukan anotasi load balancer menggunakan bagian spec
dalam manifes cluster database. Pengontrol database menambahkan anotasi tersebut ke load balancer spec
saat membuat cluster database.
Membuat load balancer internal menggunakan spesifikasi database
Anda dapat membuat load balancer internal dengan mengonfigurasi kolom dbLoadBalancerOptions
di bagian spec
dalam manifes DBCluster
.
Kubernetes
Anotasi menentukan jenis dan properti load balancer. Load balancer internal memerlukan adanya anotasi berikut:
networking.gke.io/load-balancer-type: "internal"
Untuk membuat load balancer internal yang mengizinkan koneksi dari luar cluster GKE dalam project yang sama, terapkan manifes berikut:
kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: db-pw-DB_CLUSTER_NAME type: Opaque data: DB_CLUSTER_NAME: "ENCODED_PASSWORD" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME spec: databaseVersion: "15.5.0" primarySpec: adminUser: passwordRef: name: db-pw-DB_CLUSTER_NAME resources: memory: 5Gi cpu: 1 disks: - name: DataDisk size: 10Gi dbLoadBalancerOptions: annotations: networking.gke.io/load-balancer-type: "internal" allowExternalIncomingTraffic: true EOF
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database Anda. Ini adalah nama cluster database yang sama dengan yang Anda deklarasikan saat membuatnya.
Dalam manifes ini:
- networking.gke.io/load-balancer-type: "internal": anotasi load balancer internal GKE ke cluster database Anda
- allowExternalIncomingTraffic: true: kolom
allowExternalIncomingTraffic
ditetapkan ketrue
untuk mengizinkan traffic masuk dari luar cluster Kubernetes
Mendapatkan detail konektivitas dan cluster database
Kubernetes
Untuk memverifikasi bahwa resource cluster database berada dalam status Ready
, gunakan perintah berikut:
kubectl get dbclusters.alloydbomni.dbadmin.goog -n NAMESPACE -w
Outputnya mirip dengan hal berikut ini:
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE
DB_CLUSTER_NAME 10.95.0.84 Ready DBClusterReady
Pastikan anotasi dan alamat IP load balancer internal ada di layanan load balancer, sebagai berikut:
$ kubectl get svc LOAD_BALANCER_SERVICE_NAME -n NAMESPACE -o yaml
Ganti kode berikut:
LOAD_BALANCER_SERVICE_NAME
: nama layanan load balancer Anda yang membuat alamat IP unik yang dapat diakses oleh jaringan eksternal.NAMESPACE
: nama namespace Kubernetes untuk layanan load balancer Anda.
Outputnya mirip dengan hal berikut ini:
apiVersion: v1 kind: Service metadata: annotations: cloud.google.com/neg: '{"ingress":true}' networking.gke.io/load-balancer-type: internal creationTimestamp: "2024-02-22T15:26:18Z" finalizers: − gke.networking.io/l4-ilb-v1 − service.kubernetes.io/load-balancer-cleanup labels: alloydbomni.internal.dbadmin.gdc.goog/dbcluster: DB_CLUSTER_NAME alloydbomni.internal.dbadmin.gdc.goog/dbcluster-ns: NAMESPACE alloydbomni.internal.dbadmin.gdc.goog/instance: ad98-foo alloydbomni.internal.dbadmin.gdc.goog/task-type: database egress.networking.gke.io/enabled: "true" name: LOAD_BALANCER_SERVICE_NAME namespace: NAMESPACE ownerReferences: − apiVersion: alloydbomni.dbadmin.goog/v1 blockOwnerDeletion: true controller: true kind: DBCluster name: DB_CLUSTER_NAME uid: 2dd76c9f-7698-4210-be41-6d2259840a85 resourceVersion: "33628320" uid: 1f45362b-6d6f-484d-ad35-11c14e91933e spec: allocateLoadBalancerNodePorts: true clusterIP: 10.60.4.76 clusterIPs: − 10.60.4.76 externalTrafficPolicy: Cluster internalTrafficPolicy: Cluster ipFamilies: − IPv4 ipFamilyPolicy: SingleStack loadBalancerSourceRanges: − 0.0.0.0/0 ports: − name: db nodePort: 31453 port: 5432 protocol: TCP targetPort: 5432 selector: alloydbomni.internal.dbadmin.gdc.goog/dbcluster: DB_CLUSTER_NAME alloydbomni.internal.dbadmin.gdc.goog/dbcluster-ns: NAMESPACE alloydbomni.internal.dbadmin.gdc.goog/instance: ad98-foo alloydbomni.internal.dbadmin.gdc.goog/task-type: database egress.networking.gke.io/enabled: "true" sessionAffinity: None type: LoadBalancer status: loadBalancer: ingress: − ip: 10.95.0.84
Output memiliki atribut berikut:
networking.gke.io/load-balancer-type: internal
: load balancer internal harus ada di layanan load balancerip
: nilai endpoint utama dalam output verifikasi cluster database cocok dengan nilai pengontrol ingress load balancer