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 di kolom metadata.annotations[] pada 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 dari 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 pada 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. Nama cluster database ini 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
allowExternalIncomingTrafficdisetel ketrueuntuk 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 -wOutputnya 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 yamlGanti kode berikut:
LOAD_BALANCER_SERVICE_NAME: nama layanan load balancer 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.84Output 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