Cette page explique comment configurer un équilibreur de charge dans AlloyDB Omni à l'aide de l'spec
AlloyDB Omni. Dans Google Kubernetes Engine (GKE), un équilibreur de charge créé par défaut est de type externe et associé à l'adresse IP externe pour autoriser les connexions depuis Internet. Toutefois, si l'annotation networking.gke.io/load-balancer-type: "internal"
est incluse dans le champ metadata.annotations[]
du fichier manifeste de l'équilibreur de charge, GKE crée un équilibreur de charge interne.
Différentes plates-formes fournissent leurs propres annotations pour créer le type spécifique d'équilibreur de charge.
AlloyDB Omni vous permet de spécifier des annotations d'équilibrage de charge à l'aide de la section spec
du fichier manifeste du cluster de base de données. Le contrôleur de base de données ajoute ces annotations à l'équilibreur de charge spec
lors de la création d'un cluster de base de données.
Créer un équilibreur de charge interne à l'aide de la spécification de la base de données
Vous pouvez créer un équilibreur de charge interne en configurant le champ dbLoadBalancerOptions
dans la section spec
de votre fichier manifeste DBCluster
.
Kubernetes
Les annotations définissent le type et les propriétés d'un équilibreur de charge. Un équilibreur de charge interne nécessite l'annotation suivante:
networking.gke.io/load-balancer-type: "internal"
Pour créer un équilibreur de charge interne qui autorise les connexions en dehors du cluster GKE dans le même projet, appliquez le fichier manifeste suivant:
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
Remplacez les éléments suivants :
DB_CLUSTER_NAME
: nom de votre cluster de base de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.
Dans le fichier manifeste :
- networking.gke.io/load-balancer-type: "internal": annotation de l'équilibreur de charge interne GKE sur votre cluster de base de données
- allowExternalIncomingTraffic: true: le champ
allowExternalIncomingTraffic
est défini surtrue
pour autoriser le trafic entrant provenant de l'extérieur du cluster Kubernetes.
Obtenir les détails du cluster de base de données et de la connectivité
Kubernetes
Pour vérifier que la ressource de cluster de base de données est à l'état Ready
, exécutez la commande suivante:
kubectl get dbclusters.alloydbomni.dbadmin.goog -n NAMESPACE -w
Le résultat ressemble à ce qui suit :
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE
DB_CLUSTER_NAME 10.95.0.84 Ready DBClusterReady
Vérifiez que l'annotation et l'adresse IP de l'équilibreur de charge interne existent dans le service d'équilibreur de charge, comme suit:
$ kubectl get svc LOAD_BALANCER_SERVICE_NAME -n NAMESPACE -o yaml
Remplacez les éléments suivants :
LOAD_BALANCER_SERVICE_NAME
: nom de votre service d'équilibrage de charge qui crée une adresse IP unique accessible par les réseaux externes.NAMESPACE
: nom de l'espace de noms Kubernetes de votre service d'équilibrage de charge.
Le résultat ressemble à ce qui suit :
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
Le résultat possède les attributs suivants :
networking.gke.io/load-balancer-type: internal
: un équilibreur de charge interne doit exister dans le service d'équilibrage de chargeip
: la valeur du point de terminaison principal dans la sortie de validation du cluster de base de données correspond à la valeur du contrôleur d'entrée de l'équilibreur de charge.