spec של AlloyDB Omni. ב-Google Kubernetes Engine (GKE), מאזן העומסים שנוצר כברירת מחדל הוא מסוג חיצוני ומקושר לכתובת ה-IP החיצונית כדי לאפשר חיבורים מהאינטרנט. עם זאת, אם ההערה networking.gke.io/load-balancer-type: "internal" כלולה בשדה metadata.annotations[] של מניפסט מאזן העומסים, מערכת GKE יוצרת מאזן עומסים פנימי.
פלטפורמות שונות מספקות הערות משלהן ליצירת סוג ספציפי של איזון עומסים.
ב-AlloyDB Omni אפשר לציין הערות של מאזן עומסים באמצעות הקטע spec במניפסט של אשכול מסד הנתונים. במהלך יצירת אשכול מסד נתונים, בקר מסד הנתונים מוסיף את ההערות האלה למאזן העומסים spec.
יצירת מאזן עומסים פנימי באמצעות מפרט מסד הנתונים
כדי ליצור מאזן עומסים פנימי, צריך להגדיר את השדה dbLoadBalancerOptions בקטע spec במניפסט DBCluster.
Kubernetes
ההערות מגדירות את הסוג והמאפיינים של מאזן העומסים. מאזן עומסים פנימי דורש את ההערה הבאה:
networking.gke.io/load-balancer-type: "internal"
כדי ליצור מאזן עומסים פנימי שמאפשר חיבורים מחוץ לאשכול GKE באותו פרויקט, צריך להחיל את קובץ המניפסט הבא:
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
מחליפים את מה שכתוב בשדות הבאים:
-
DB_CLUSTER_NAME: השם של אשכול מסד הנתונים. זהו אותו שם של אשכול מסדי הנתונים שהצהרתם עליו כשיצרתם אותו.
במניפסט הזה:
- networking.gke.io/load-balancer-type: "internal": הערת מאזן העומסים הפנימי של GKE לאשכול מסד הנתונים
- allowExternalIncomingTraffic: true: השדה
allowExternalIncomingTrafficמוגדר כ-trueכדי לאפשר תעבורת נתונים נכנסת מחוץ לאשכול Kubernetes
קבלת פרטים על אשכול מסדי הנתונים והקישוריות
Kubernetes
כדי לוודא שמשאב אשכול מסד הנתונים נמצא בסטטוס Ready, משתמשים בפקודה הבאה:
kubectl get dbclusters.alloydbomni.dbadmin.goog -n NAMESPACE -wהפלט אמור להיראות כך:
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE
DB_CLUSTER_NAME 10.95.0.84 Ready DBClusterReady
מוודאים שההערה וכתובת ה-IP של מאזן העומסים הפנימי קיימים בשירות מאזן העומסים, באופן הבא:
kubectl get svc LOAD_BALANCER_SERVICE_NAME -n NAMESPACE -o yamlמחליפים את מה שכתוב בשדות הבאים:
-
LOAD_BALANCER_SERVICE_NAME: השם של שירות איזון העומסים שיוצר כתובת IP ייחודית שאפשר לגשת אליה מרשתות חיצוניות. -
NAMESPACE: השם של מרחב השמות ב-Kubernetes בשביל שירות מאזן העומסים.
הפלט אמור להיראות כך:
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הפלט כולל את המאפיינים הבאים:
-
networking.gke.io/load-balancer-type: internal: מאזן עומסים פנימי חייב להיות קיים בשירות מאזן העומסים -
ip: הערך של נקודת הקצה הראשית בפלט האימות של אשכול מסד הנתונים תואם לערך של בקר ה-Ingress של מאזן העומסים (LB)