spec di AlloyDB Omni. In Google Kubernetes Engine (GKE), un bilanciatore del carico creato per impostazione predefinita è di tipo esterno e associato all'indirizzo IP esterno per consentire le connessioni da internet. Tuttavia, se l'annotazione networking.gke.io/load-balancer-type: "internal" è inclusa nel campo metadata.annotations[] del manifest del bilanciatore del carico, GKE crea un bilanciatore del carico interno.
Piattaforme diverse forniscono le proprie annotazioni per creare il tipo specifico di bilanciatore del carico.
AlloyDB Omni ti consente di specificare le annotazioni del bilanciatore del carico utilizzando la sezione spec del manifest del cluster di database. Il controller del database aggiunge queste annotazioni al bilanciatore del carico spec durante la creazione di un cluster di database.
Crea un bilanciatore del carico interno utilizzando la specifica del database
Puoi creare un bilanciatore del carico interno configurando il campo dbLoadBalancerOptions nella sezione spec del manifest DBCluster.
Kubernetes
Le annotazioni definiscono il tipo e le proprietà di un bilanciatore del carico. Un bilanciatore del carico interno richiede la presenza della seguente annotazione:
networking.gke.io/load-balancer-type: "internal"
Per creare un bilanciatore del carico interno che consenta connessioni dall'esterno del cluster GKE all'interno dello stesso progetto, applica il seguente manifest:
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
Sostituisci quanto segue:
DB_CLUSTER_NAME: il nome del cluster di database. È lo stesso nome del cluster di database che hai dichiarato quando l'hai creato.
In questo manifest:
- networking.gke.io/load-balancer-type: "internal": l'annotazione del bilanciatore del carico interno di GKE al cluster di database
- allowExternalIncomingTraffic: true: il campo
allowExternalIncomingTrafficè impostato sutrueper consentire il traffico in entrata dall'esterno del cluster Kubernetes
Recupera i dettagli del cluster di database e della connettività
Kubernetes
Per verificare che la risorsa del cluster di database sia nello stato Ready, utilizza il seguente comando:
kubectl get dbclusters.alloydbomni.dbadmin.goog -n NAMESPACE -wL'output è simile al seguente:
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE
DB_CLUSTER_NAME 10.95.0.84 Ready DBClusterReady
Verifica che l'annotazione e l'indirizzo IP del bilanciatore del carico interno esistano nel servizio di bilanciamento del carico, come segue:
kubectl get svc LOAD_BALANCER_SERVICE_NAME -n NAMESPACE -o yamlSostituisci quanto segue:
LOAD_BALANCER_SERVICE_NAME: il nome del servizio di bilanciamento del carico che crea un indirizzo IP univoco accessibile dalle reti esterne.NAMESPACE: il nome dello spazio dei nomi Kubernetes per il servizio di bilanciamento del carico.
L'output è simile al seguente:
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.84L'output ha i seguenti attributi:
networking.gke.io/load-balancer-type: internal: deve esistere un bilanciatore del carico interno nel servizio di bilanciamento del caricoip: il valore dell'endpoint principale nell'output di verifica del cluster di database corrisponde al valore del controller Ingress del bilanciatore del carico