spec
AlloyDB Omni. Dans Google Kubernetes Engine (GKE), un équilibreur de charge créé par défaut est de type externe et lié à 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'un équilibreur de charge.
AlloyDB Omni vous permet de spécifier des annotations d'équilibreur de charge à l'aide de la section spec
du fichier manifeste du cluster de bases 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 la présence de l'annotation suivante :
networking.gke.io/load-balancer-type: "internal"
Pour créer un équilibreur de charge interne qui autorise les connexions depuis l'extérieur 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 bases 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 à votre cluster de bases 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 le cluster de bases de données et les informations de connectivité
Kubernetes
Pour vérifier que la ressource de cluster de bases 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'équilibreur de charge qui crée une adresse IP unique accessible par les réseaux externes.NAMESPACE
: nom de l'espace de noms Kubernetes pour votre service d'équilibreur 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 charge.ip
: la valeur du point de terminaison principal dans le résultat de la validation du cluster de bases de données correspond à la valeur du contrôleur d'entrée de l'équilibreur de charge.