spec. No Google Kubernetes Engine (GKE), um balanceador de carga criado por predefinição é do tipo externo e está associado ao endereço IP externo para permitir ligações a partir da Internet. No entanto, se a anotação networking.gke.io/load-balancer-type: "internal" estiver incluída no campo metadata.annotations[] do manifesto do balanceador de carga, o GKE cria um balanceador de carga interno.
As diferentes plataformas fornecem as suas próprias anotações para criar o tipo específico de um equilibrador de carga.
O AlloyDB Omni permite-lhe especificar anotações do equilibrador de carga através da secção spec do manifesto do cluster da base de dados. O controlador da base de dados adiciona essas anotações ao equilibrador de carga spec quando cria um cluster de base de dados.
Crie um balanceador de carga interno com a especificação da base de dados
Pode criar um equilibrador de carga interno configurando o campo dbLoadBalancerOptions na secção spec do manifesto DBCluster.
Kubernetes
As anotações definem o tipo e as propriedades de um balanceador de carga. Um balanceador de carga interno requer a presença da seguinte anotação:
networking.gke.io/load-balancer-type: "internal"
Para criar um balanceador de carga interno que permita ligações de fora do cluster do GKE no mesmo projeto, aplique o seguinte manifesto:
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
Substitua o seguinte:
DB_CLUSTER_NAME: o nome do cluster da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.
Neste manifesto:
- networking.gke.io/load-balancer-type: "internal": a anotação do balanceador de carga interno do GKE ao seu cluster de base de dados
- allowExternalIncomingTraffic: true: o campo
allowExternalIncomingTrafficestá definido comotruepara permitir o tráfego de entrada de fora do cluster do Kubernetes
Obtenha os detalhes do cluster da base de dados e da conetividade
Kubernetes
Para verificar se o recurso do cluster de base de dados está no estado Ready, use o seguinte comando:
kubectl get dbclusters.alloydbomni.dbadmin.goog -n NAMESPACE -wO resultado é semelhante ao seguinte:
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE
DB_CLUSTER_NAME 10.95.0.84 Ready DBClusterReady
Verifique se a anotação e o endereço IP do balanceador de carga interno existem no serviço do balanceador de carga, da seguinte forma:
kubectl get svc LOAD_BALANCER_SERVICE_NAME -n NAMESPACE -o yamlSubstitua o seguinte:
LOAD_BALANCER_SERVICE_NAME: o nome do seu serviço de balanceador de carga que cria um endereço IP exclusivo acessível por redes externas.NAMESPACE: o nome do espaço de nomes do Kubernetes para o seu serviço de balanceador de carga.
O resultado é semelhante ao seguinte:
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.84A saída tem os seguintes atributos:
networking.gke.io/load-balancer-type: internal: tem de existir um balanceador de carga interno no serviço de balanceador de cargaip: o valor do ponto final principal na saída de validação do cluster da base de dados corresponde ao valor do controlador de entrada do equilibrador de carga