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
allowExternalIncomingTrafficest défini surtruepour 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 -wLe 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 yamlRemplacez 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.84Le 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.