לפני שמתחילים
מוודאים שיש לכם את קובץ מפרט הפריסה, deployment_spec.yaml, שמכיל את כל פרטי הרכיבים של הצומת והאשכול.
שדרוג הכלי לניהול סוכנים
התזמור מנהל את אשכולות מסדי הנתונים. לפני שמשדרגים את רכיבי האשכול האחרים, צריך לשדרג את ה-orchestrator בצומת הבקרה.
Ansible
אם אתם מנהלים את התשתית באמצעות פלייבוקים של Ansible, בצעו את השלבים הבאים:
כדי לבדוק את הגרסה המותקנת של אוסף
google.alloydbomni_orchestratorבצומת הבקרה, מריצים את הפקודה הבאה:ansible-galaxy collection list | grep alloydbomni_orchestratorכדי להחליף את הגרסה הקיימת, מורידים את הגרסה היציבה האחרונה של קובץ ה-tar של האוסף ומבצעים התקנה מאולצת:
ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gzמחליפים את
NEW_VERSIONבגרסה של האוסף החדש.
alloydbctl
אם משתמשים בכלי שורת הפקודה alloydbctl, צריך לבצע את השלבים הבאים:
כדי לבדוק את גרסת החבילה המותקנת של מתזמן ה-RPM
alloydbomni_orchestratorבצומת הבקרה, מריצים את הפקודה הבאה:rpm -q alloydbomni_orchestratorמשדרגים את חבילת התוכנה בצומת הבקרה באמצעות הכלי לניהול חבילות:
sudo dnf upgrade alloydbomni_orchestrator
עדכון רכיבי אשכול באמצעות Ansible
Google ממליצה לעדכן באמצעות התפקיד שסופק ב-Ansible.
יוצרים playbook בשם
update.yamlשמפנה לתפקידupdateמאוסף כלי התזמור. צריך להגדיר את ערך הפרמטרupdate_actionבתורupdate_rpm.כברירת מחדל, התפקיד
updateמעדכן גם את מישור הבקרה וגם את מישור הנתונים. כדי לעדכן רק את רכיבי מישור הבקרה או מישור הנתונים, מגדירים את הפרמטר של המישור השני ל-false.--- - hosts: all become: true vars: update_action: "update_rpm" ansible_user: SSH_USER ansible_ssh_private_key_file: PRIVATE_KEY_PATH update_control_plane: true # Optional argument if you want to only update data plane components update_data_plane: true # Optional argument if you want to only update control plane components roles: - role: google.alloydbomni_orchestrator.updateמחליפים את מה שכתוב בשדות הבאים:
-
SSH_USER: שם המשתמש ב-SSH שיש לו גישה לצמתי האשכול. -
PRIVATE_KEY_PATH: הנתיב לקובץ של מפתח ה-SSH הפרטי. -
update_action: היקף העדכון. מגדירים את הערך הזה בתורupdate_rpm. -
update_control_plane: אופציונלי. מגדירים את הערךfalseכדי לעדכן רק רכיבים של מישור הנתונים. ערך ברירת המחדל הואtrue. -
update_data_plane: אופציונלי. מגדירים את הערךfalseכדי לעדכן רק את רכיבי מישור הבקרה. ערך ברירת המחדל הואtrue.
-
כדי לבצע עדכון בכל הצמתים שצוינו, מריצים את ה-playbook עם קובץ המלאי:
ansible-playbook -i DEPLOYMENT_SPEC update.yamlמחליפים את
DEPLOYMENT_SPECבנתיב לקובץ מפרט הפריסה.מוודאים שקובץ מפרט הפריסה מגדיר את הגרסה המותקנת של כל רכיב באשכול. התפקיד update role מעדכן רכיבים על סמך האופן שבו הגדרתם את הגרסאות שלהם בקובץ המלאי:
- אם גרסת הרכיב תואמת לגרסה המותקנת, תפקיד העדכון לא מבצע שינויים ברכיב הזה.
- אם משנים את הגרסה של רכיב לגרסת יעד ספציפית, הרכיב מתעדכן לגרסה הזו.
- אם משאירים את שדה הגרסה של רכיב מסוים ריק, הרכיב מתעדכן לגרסה העדכנית ביותר שזמינה במאגר שהוגדר.
עדכון ידני של רכיבי האשכול
אם אתם לא משתמשים בכלי Ansible לניהול תהליכים או אם אתם רוצים שליטה מדויקת בתהליך העדכון, אתם יכולים לעדכן רכיבי RPM באופן ידני לכל צומת באשכול. מומלץ לבצע עדכוני תוכנה במהלך חלון זמן לתחזוקה.
תהליך העדכון הידני כולל עדכון של שני המישורים הבאים:
מישור הבקרה (רכיבי תזמור RPM): מישור הבקרה הוא השכבה ששולטת ומנהלת את אשכולות מסדי הנתונים. בפריסת RPM, מישור הבקרה כולל את
cluster_manager,node_managerו-etcd.מישור הנתונים (אשכול מסד הנתונים): מישור הנתונים מכיל את הרכיבים של אשכול מסד הנתונים, כולל המנוע של מסד הנתונים AlloyDB Omni עצמו,
monitor, וגם שירותים כמוpgBackRest,PgBouncer,keepalivedו-HAProxy. כשמשדרגים את מישור הנתונים, עדכוני הגרסה של מסד הנתונים, תיקוני האבטחה ושיפורי הביצועים חלים ישירות על אשכולות מסד הנתונים.
בלי קשר לארכיטקטורת ההפניה שלכם, השלבים לעדכון מישור הבקרה נשארים זהים. צריך לעדכן את הרכיבים של מישור הבקרה לפני שמעדכנים את מישור הנתונים. השלבים לעדכון מישור הנתונים משתנים בהתאם לארכיטקטורת הפריסה של מסד הנתונים.
כדי לעדכן שירות או חבילה:
מפסיקים את השירות:
sudo systemctl stop SERVICEמשדרגים את החבילה באמצעות אחת מהפקודות הבאות:
כדי לעדכן לגרסה העדכנית ביותר:
sudo dnf upgrade PACKAGEכדי לעדכן לגרסה ספציפית:
sudo dnf upgrade PACKAGE-VERSION
מפעילים את השירות:
sudo systemctl start SERVICE
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: שם השירות שרוצים לעצור ולהפעיל, לדוגמהpgbouncerאוkeepalived. -
PACKAGE: שם החבילה שרוצים לעדכן, לדוגמהpgbouncerאוalloydbomni18. -
VERSION: גרסת חבילת היעד להתקנה, לדוגמה18.3.0או18.3.0-2.rhel9.
עדכון ידני של מישור הבקרה
כדי לעדכן את מישור הבקרה, מבצעים את השלבים הבאים בצמתים הייעודיים:
כדי לעצור את תוכנה לניהול אשכולות בכל הצמתים של תוכנה לניהול אשכולות, מריצים את הפקודה הבאה:
sudo systemctl stop alloydbomni_cluster_managerכדי לעדכן את
etcdבכל הצמתים של DCS, מריצים את הפקודות הבאות ברצף:sudo systemctl stop etcdsudo dnf upgrade etcdsudo systemctl start etcdכדי לעדכן את Node Manager בכל הצמתים, מריצים את הפקודות הבאות לפי הסדר:
sudo systemctl stop alloydbomni_node_managersudo dnf upgrade alloydbomni_node_managersudo systemctl start alloydbomni_node_managerאחרי שמעדכנים את הרכיבים של מישור הבקרה, אפשר לעדכן את תוכנה לניהול אשכולות בכל הצמתים של תוכנה לניהול אשכולות, ולהפעיל אותו מחדש אם צריך.
sudo dnf upgrade alloydbomni_cluster_managersudo systemctl start alloydbomni_cluster_manager
עדכון ידני של מישור הנתונים
כדי לעדכן את מישור הנתונים, מעדכנים את מסד הנתונים ואת שירותי העזר לפי הסדר שצוין בארכיטקטורת הפריסה. לכל שירות, צריך לפעול לפי רצף קפדני של עצירת השירות, שדרוג החבילה והפעלת השירות.
פועלים לפי ההוראות לפריסה בהתאם לארכיטקטורת העזר.
מאחזרים את סטטוס האשכול באמצעות הפקודה
alloydbctl getומגדירים את פורמט הפלט ל-YAML:alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yamlמחליפים את מה שכתוב בשדות הבאים:
-
RESOURCE_TYPE: סוג המשאב שרוצים לבדוק, לדוגמהDBCluster. -
CLUSTER_NAME: השם של אשכול מסד הנתונים. -
DEPLOYMENT_SPEC: הנתיב לקובץ של מפרט הפריסה.
-
בפלט של YAML, מאתרים את
instanceListבקטעstatus.מוצאים את הצומת שהתפקיד שלו מוגדר כ-
Primary. כל שאר הצמתים במסד הנתונים הם צמתי המתנה.קודם מעדכנים את כל הרכיבים של מישור הנתונים שפועלים בצומתי הגיבוי, ואז מעדכנים את הרכיבים האלה בצומת הראשי. כדי לעדכן את הרכיבים של מישור הנתונים בכל צומת:
כדי לעדכן את AlloyDB Omni, מריצים את הפקודות הבאות ברצף:
sudo systemctl stop alloydbomni18sudo dnf upgrade alloydbomni18sudo systemctl start alloydbomni18כדי לעדכן את המעקב, מריצים את הפקודות הבאות לפי הסדר:
sudo systemctl stop alloydbomni_monitorsudo dnf upgrade alloydbomni_monitorsudo systemctl start alloydbomni_monitorכדי לעדכן את pgBackRest, מריצים את הפקודות הבאות לפי הסדר:
sudo dnf upgrade pgbackrestכדי לעדכן את PgBouncer, מריצים את הפקודות הבאות לפי הסדר:
sudo systemctl stop pgbouncersudo dnf upgrade pgbouncersudo systemctl start pgbouncerכדי לעדכן את keepalived, מריצים את הפקודות הבאות ברצף:
sudo systemctl stop keepalivedsudo dnf upgrade keepalivedsudo systemctl start keepalivedכדי לעדכן את HAProxy, מריצים את הפקודות הבאות ברצף:
sudo systemctl stop haproxysudo dnf upgrade haproxysudo systemctl start haproxy