ניהול תפקידי משתמשים
ב-AlloyDB Omni נעשה שימוש בתפקידים הבאים:
AlloyDB Omni כולל תפקיד של משתמש על בשם
alloydbadmin, ותפקיד של משתמש רגיל בשםalloydbmetadata.למשתמש
postgresשמוגדר כברירת מחדל יש תפקיד של סופר-אדמין.לכל שאר תפקידי המשתמשים שמוגדרים מראש אין הרשאות. הם שמורים לשימושים פוטנציאליים בעתיד.
הגדרת מסד נתונים של AlloyDB Omni
מומלץ לפעול לפי השלבים הבאים כשמגדירים מסד נתונים של AlloyDB Omni:
מגדירים או מייבאים את מסדי הנתונים באמצעות תפקיד המשתמש
postgres. בהתקנה חדשה, לתפקיד הזה יש הרשאות סופר-משתמש.יוצרים תפקידי משתמשים חדשים עם רמת הגישה הנכונה לטבלאות של האפליקציה, שוב באמצעות תפקיד המשתמש
postgres.מגדירים את האפליקציה להתחבר למסד הנתונים באמצעות התפקידים החדשים האלה עם הגישה המוגבלת.
אתם יכולים ליצור ולהגדיר כמה תפקידי משתמש חדשים שאתם צריכים. אל תשנו או תמחקו אף אחד מתפקידי המשתמשים שמגיעים עם AlloyDB Omni.
מידע נוסף זמין במאמר בנושא ניהול משתמשים ותפקידים ב-AlloyDB Omni.
מעקב אחרי AlloyDB Omni
מעקב אחרי ההתקנה של AlloyDB Omni כולל אחזור וניתוח של מדדים של AlloyDB Omni.
AlloyDB Omni שפועל ב-Kubernetes מספק קבוצה של מדדים בסיסיים שזמינים כנקודות קצה של Prometheus. רשימת המדדים הזמינים מופיעה במאמר מדדים של AlloyDB Omni.
בנוסף, AlloyDB Omni שפועל ב-Kubernetes חושף מדדים ממשאבים מותאמים אישית באמצעות kube-state-metrics (KSM). כדי להפעיל מדדים של משאבים מותאמים אישית, אפשר לעיין במאמר מעקב אחרי משאבים מותאמים אישית של AlloyDB Omni Kubernetes operator.
Kubernetes
איתור קובצי היומן של אשכול מסד הנתונים
הקובץ postgresql.audit ו-postgresql.log קבצים נוספים נמצאים במערכת הקבצים של פוד מסד הנתונים. השדה postgresql.audit מופיע רק אם הפעלתם את pgaudit.
כדי לגשת לקבצים האלה:
מגדירים משתנה סביבה שמכיל את השם של ה-pod של מסד הנתונים.
export DB_POD=`kubectl get pod -l alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`מחליפים את
DB_CLUSTER_NAMEבשם של אשכול מסד הנתונים. זהו אותו שם של אשכול מסדי הנתונים שהצהרתם עליו כשיצרתם אותו.מריצים מעטפת ב-pod של מסד הנתונים כמשתמש root.
kubectl exec ${DB_POD} -it -- /bin/bashמוצאים את קובצי היומן בספרייה
/obs/diagnostic/:/obs/diagnostic/postgresql.audit/obs/diagnostic/postgresql.log
הצגת רשימה של שירותי ניטור
v1.0
כשיוצרים אשכול מסד נתונים, AlloyDB Omni יוצר את שירות המעקב הבא לכל CR של מכונה באשכול מסד הנתונים באותו מרחב שמות:
al-INSTANCE_NAME-monitoring-system
כדי להציג את רשימת שירותי המעקב, מריצים את הפקודה הבאה.
kubectl get svc -n NAMESPACE | grep monitoring
מחליפים את NAMESPACE במרחב שמות שהאשכול שייך אליו.
בדוגמה הבאה של תגובה מוצגים השירותים al-1060-dbc-monitoring-system, al-3de6-dbc-monitoring-system ו-al-4bc0-dbc-monitoring-system. כל שירות תואם למופע אחד.
al-1060-dbc-monitoring-system ClusterIP 10.0.15.227 <none> 9187/TCP 7d20h
al-3de6-dbc-monitoring-system ClusterIP 10.0.5.205 <none> 9187/TCP 7d19h
al-4bc0-dbc-monitoring-system ClusterIP 10.0.15.92 <none> 9187/TCP 7d19h
גרסה < 1.0
כשיוצרים אשכול מסדי נתונים, AlloyDB Omni יוצר את שירותי המעקב הבאים באותו מרחב שמות כמו אשכול מסדי הנתונים:
DB_CLUSTER-monitoring-dbDB_CLUSTER-monitoring-system
כדי להציג את רשימת שירותי המעקב, מריצים את הפקודה הבאה.
kubectl get svc -n NAMESPACE | grep monitoring
מחליפים את NAMESPACE במרחב שמות שהאשכול שייך אליו.
בדוגמה הבאה של תגובה מוצגים השירות al-2953-dbcluster-foo7-monitoring-system והשירות al-2953-dbcluster-foo7-monitoring-db.
al-2953-dbcluster-foo7-monitoring-db ClusterIP 10.36.3.243 <none> 9187/TCP 44m
al-2953-dbcluster-foo7-monitoring-system ClusterIP 10.36.7.72 <none> 9187/TCP 44m
הצגת מדדי Prometheus משורת הפקודה
היציאה 9187 נקראת metricsalloydbomni בכל שירותי המעקב.
מגדירים העברת ליציאה אחרת מהסביבה המקומית לשירות המעקב.
kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomniמחליפים את מה שכתוב בשדות הבאים:
MONITORING_SERVICE: השם של שירות המעקב שרוצים להעביר, לדוגמהal-1060-dbc-monitoring-system.
NAMESPACE: מרחב השמות שאליו שייך האשכול.
MONITORING_METRICS_PORT: יציאת TCP מקומית זמינה.
התשובה הבאה מראה שהשירותים מועברים.
Forwarding from 127.0.0.1:9187 -> 9187 Forwarding from [::1]:9187 -> 9187בזמן שהפקודה הקודמת פועלת, אפשר לגשת למדדי המעקב באמצעות HTTP ביציאה שציינתם. לדוגמה, אפשר להשתמש ב-
curlכדי לראות את כל המדדים כטקסט פשוט:curl http://localhost:MONITORING_METRICS_PORT/metrics
הצגת מדדים באמצעות Prometheus API
מפתח התווית alloydbomni.internal.dbadmin.goog/task-type והיציאה metricsalloydbomni זמינים כברירת מחדל לכל שירותי המעקב ב-AlloyDB Omni. אפשר להשתמש בהם יחד עם משאב מותאם אישית יחיד serviceMonitor כדי לבחור את כל השירותים לכל מרחבי השמות באשכול מסד הנתונים.
מידע נוסף על השימוש ב-Prometheus API זמין במאמרי העזרה של Prometheus Operator.
הדוגמה הבאה מציגה את השדה spec של המשאב המותאם אישית serviceMonitor, שכולל את מפתח התווית alloydbomni.internal.dbadmin.gdc.goog/task-type ואת היציאה metricsalloydbomni. המשאב המותאם אישית serviceMonitor עוקב אחרי כל שירותי Kubernetes בכל מרחבי השמות ואוסף אותם
מידע נוסף על ההגדרה המלאה של ServiceMonitor זמין בהגדרת משאב מותאם אישית של ServiceMonitor .
v1.0
spec:
selector:
matchLabels:
alloydbomni.internal.dbadmin.goog/task-type: monitoring
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
גרסה < 1.0
spec:
selector:
matchExpressions:
- key: alloydbomni.internal.dbadmin.gdc.goog/task-type
operator: Exists
values: []
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
הצגת מדדים באמצעות Grafana
כדי לראות ייצוג חזותי של מדדים ב-AlloyDB Omni ב-Kubernetes, משתמשים בלוח הבקרה של הניטור. לוח הבקרה של המעקב מתבסס על חבילת כלים בסיסית של יכולת צפייה, שכוללת את Prometheus ו-Grafana. כדי להגדיר את לוח הבקרה של המעקב כך שיאסוף מדדים מ-AlloyDB Omni, מבצעים את השלבים הבאים:
כדי להוריד את לוח הבקרה של Grafana, משתמשים בפקודה
wget:wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yamlצריך להוריד ולהתקין את grafana-operator לפני שמפעילים את Grafana ב-Kubernetes. הוראות מפורטות זמינות במאמר בנושא התקנה.
מוסיפים את התווית
monitoring.dashboard/product=alloydb-omniלמופע Grafana שבו מתקינים את לוח הבקרה:kubectl label grafana/GRAFANA_INSTANCE_NAME monitoring.dashboard/product=alloydb-omni -n NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
-
GRAFANA_INSTANCE_NAME: השם של מופע Grafana שבו שמים את לוח הבקרה. -
NAMESPACE: מרחב השמות שבו פרסתם את אופרטור Grafana.
-
כדי להחיל את הגדרת לוח הבקרה של Grafana על אשכול AlloyDB Omni ב-Kubernetes, משתמשים בפקודה הבאה:
kubectl apply -f alloydbomni_dashboard.yaml -n NAMESPACEבמסמכי התיעוד של Grafana operator מופיע מידע על השימוש ב-Grafana operator.
כדי להגדיר את Grafana לשימוש ב-Prometheus כמקור נתונים, אפשר לעיין במאמר בנושא מקורות נתונים.
כדי לוודא ש-Grafana מוגדר בצורה נכונה, מבצעים את אחת מהפעולות הבאות:
- צופים באוסף של לוחות Grafana במרכז הבקרה של AlloyDB Omni.
איחזור מידע על לוח הבקרה של Grafana באשכול Kubernetes:
kubectl get grafanadashboard alloydb-omni-dashboard -n NAMESPACE -o jsonpath='{.status.conditions[?(@.type=="DashboardSynchronized")].status}'אם הפקודה מחזירה
True, התוסףalloydb-omni-dashboardנפרס בהצלחה במופע Grafana.
הסרת AlloyDB Omni
Kubernetes
מחיקת אשכול מסד הנתונים
כדי למחוק את אשכול מסד הנתונים, מגדירים את isDeleted ל-true במניפסט שלו.
אפשר לעשות את זה באמצעות הפקודה הבאה.
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=mergeמחליפים את DB_CLUSTER_NAME בשם של אשכול מסדי הנתונים. זהו אותו שם של אשכול מסדי הנתונים שהצהרתם עליו כשיצרתם אותו.
הסרת האופרטור AlloyDB Omni
כדי להסיר את אופרטור AlloyDB Omni Kubernetes מאשכול Kubernetes, פועלים לפי השלבים הבאים:
מחיקת כל אשכולות מסדי הנתונים:
for ns in $(kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}'); do for cr in $(kubectl get dbclusters.alloydbomni.dbadmin.goog -n $ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do kubectl patch dbclusters.alloydbomni.dbadmin.goog $cr -n $ns --type=merge -p '{"spec":{"isDeleted":true}}' done doneמחכים עד שאופרטור Kubernetes של AlloyDB Omni ימחק את כל אשכולות מסדי הנתונים. כדי לבדוק אם נשארו משאבי מסד נתונים, משתמשים בפקודה הבאה:
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespacesמחיקת משאבים אחרים שאופרטור AlloyDB Omni Kubernetes יצר:
kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaceskubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaceskubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespacesמסירים את אופרטור AlloyDB Omni Kubernetes:
helm uninstall alloydbomni-operator --namespace alloydb-omni-systemמחיקת סודות, תיאורים של משאבים מותאמים אישית ומרחבי שמות שקשורים לאופרטור AlloyDB Omni Kubernetes:
kubectl delete certificate -n alloydb-omni-system --allkubectl get secrets --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,ANNOTATION:.metadata.annotations.cert-manager\.io/issuer-name | grep -E 'alloydbomni|dbs-al' | awk '{print $1 " " $2}' | xargs -n 2 kubectl delete secret -nkubectl delete crd -l alloydb-omni=truekubectl delete ns alloydb-omni-system
שינוי הגודל של אשכול מסד נתונים מבוסס Kubernetes
כדי לשנות את הגודל של ה-CPU, הזיכרון או נפח האחסון של אשכול מסד נתונים מבוסס-Kubernetes, צריך לעדכן את השדה resources במניפסטים שמגדירים את הפוד שלו. אופרטור AlloyDB Omni מחיל את המפרטים החדשים על ה-pod של מסד הנתונים באופן מיידי.
מידע נוסף על התחביר של מניפסט האופרטור של AlloyDB Omni זמין במאמר בנושא יצירת אשכול מסדי נתונים.
ההגבלות הבאות חלות על שינוי משאבים של אשכול מסדי נתונים פעיל:
- אפשר להגדיל את הגודל של דיסק רק אם
storageClassשצוין תומך בהרחבת נפח. - אי אפשר להקטין את הגודל של דיסק.