התקנה של AlloyDB Omni באמצעות כלי הניהול של RPM

בוחרים גרסה של מאמר העזרה:

בדף הזה מוסבר איך להתקין את חבילת התוכנה של AlloyDB Omni ואת רכיבי הניהול שלה באמצעות כלי התזמור של AlloyDB Omni.

לפני שמתחילים

לפני שמתקינים את הרכיבים, צריך לוודא שביצעתם את הפעולות הבאות:

  • מתקינים את כלי התזמור: מוודאים שאוסף Ansible או CLI של כלי התזמור AlloyDB Omni מותקנים בצומת הבקרה.
  • הקצאת מכונות: צריך להקצות מכונות וירטואליות של RHEL9 בהתאם לארכיטקטורה שבחרתם, למשל עצמאית או זמינות גבוהה.
  • הגדרת הרשת וחומת האש: מוודאים שכל היציאות הנדרשות פתוחות בין הצמתים. זה כולל את 5432 לתעבורת מסדי נתונים, את 2379/2380 ל-etcd ואת יציאות הניהול 6703,‏ 6702 ו-6700 שמשמשות את Cluster Manager ו-Node Manager.
  • בדיקת יחסי תלות של חבילות תוכנה: אם אתם מנהלים חבילות תוכנה דרך מאגר Yum פרטי, אתם צריכים לפעול לפי ההוראות של ניהול המאגר כדי לכלול במאגר קובצי RPM שתלויים בו.

הכנת מלאי מפרטי הפריסה

הכלי לניהול תהליכים משתמש בקובץ מפרט פריסה בפורמט של מלאי Ansible כדי להבין את הטופולוגיה של האשכול. יוצרים קובץ בשם deployment_spec.yaml עם פרטי הצומת.

alloydbomni:
  vars:
    cluster_manager:
      name: "MANAGEMENT_CLUSTER_NAME"
    etcd:
      setup: SETUP_ETCD
      config_forcewrite: FORCE_OVERWRITE_ETCD
      # version: ETCD_VERSION  # Optional: defaults to the latest version
      # repo_url: ETCD_REPOSITORY_URL  # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni:
      major_version: "PG_VERSION" # Mandatory: for example, 18
      # version: ALLOYDB_OMNI_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL     # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_monitor:
      # version: ALLOYDB_OMNI_MONITOR_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_cluster_manager:
      # version: ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION      # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_node_manager:
      # version: ALLOYDB_OMNI_NODE_MANAGER_VERSION         # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbouncer:
      # version: ALLOYDB_OMNI_PGBOUNCER_VERSION    # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbackrest:
      # version: ALLOYDB_OMNI_PGBACKREST_VERSION   # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional

  children:
    primary_instance_nodes:
      hosts:
        DB_HOST_1:
        DB_HOST_2:
        DB_HOST_3:
    load_balancer_nodes:    # Optional. Host group for load balancer. If empty, no load balancer is configured.
      hosts:
        LB_HOST_1:
        LB_HOST_2:
    etcd_nodes:     # Optional: Host group where etcd is set up
      hosts:
        ETCD_HOST_1:
        ETCD_HOST_2:
        ETCD_HOST_3:
    cluster_manager_nodes:    # Optional: Host group for cluster manager
      hosts:
        CM_HOST_1:
        CM_HOST_2:
        CM_HOST_3:

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MANAGEMENT_CLUSTER_NAME: השם של אשכול הניהול. יכול להיות שזה יהיה אותו שם כמו של אשכול מסד הנתונים אם הם מותקנים באותם צמתים, לדוגמה, my-management-cluster.
  • ‫SETUP_ETCD: מציין אם המנהל צריך להגדיר ולאתחל את אשכול etcd. כשהערך מוגדר כ-true, כלי התזמור מבצע את ההגדרה והאתחול הראשוניים של etcd בצמתי etcd הייעודיים. אם לא מוגדרים צמתי etcd בקובץ deployment_spec, ברירת המחדל היא הגדרת etcd בצמתי הניהול של האשכול. הפרמטר הזה תואם למפתח etcd.setup במפרט הפריסה.
  • ‫FORCE_OVERWRITE_ETCD: קובע אם להחליף קובץ הגדרות קיים של etcd במהלך תהליך ההגדרה. מגדירים את הערך true כדי להחליף את קובץ ההגדרות הקיים בצמתי היעד, או מגדירים את הערך false(ברירת המחדל) כדי לשמור את ההגדרות הקיימות ולמנוע שיבושים לא מכוונים בשירות.
  • ‫ETCD_VERSION: גרסת חבילת etcd להתקנה, לדוגמה, 3.4.13.
  • ‫ETCD_REPOSITORY_URL: כתובת ה-URL של המאגר שמכיל את חבילות ה-RPM‏ etcd.
  • ‫PG_VERSION: הגרסה הראשית של PostgreSQL בהתקנת AlloyDB Omni, למשל 18.
  • ‫ALLOYDB_OMNI_VERSION: הגרסה של מנוע מסד הנתונים AlloyDB Omni להתקנה, לדוגמה, 18.1.0. אם לא מציינים גרסה, הכלי להתזמור מתקין את הגרסה העדכנית שזמינה.
  • ‫ALLOYDB_OMNI_COMMON_REPO_URL: כתובת ה-URL של המאגר המשותף שמכיל את קובצי ה-RPM של AlloyDB Omni,‏ monitor,‏ PgBouncer ו-pgBackRest.
  • ‫GPG_KEY: המיקום של המפתח הציבורי של Google לאימות GNU Privacy Guard‏ (GPG) – לדוגמה, https://dl.google.com/linux/linux_signing_key.pub. אפשר גם להגדיר את המדיניות הזו כנתיב אם המפתח מורד לקובץ בכל מכונות ה-VM, לדוגמה, /tmp/linux_signing_key.pub.
  • ‫ALLOYDB_OMNI_MONITOR_VERSION: הגרסה של חבילת המעקב של AlloyDB Omni להתקנה. ברירת המחדל היא הגרסה העדכנית ביותר שזמינה.
  • ‫ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION: הגרסה של מנהל האשכולות של AlloyDB Omni להתקנה. אם לא מציינים גרסה, הכלי להתזמור מתקין את הגרסה העדכנית שזמינה.
  • ‫ALLOYDB_OMNI_ORCHESTRATOR_REPO_URL: כתובת ה-URL של המאגר שמכיל את קובצי ה-RPM של מנהל האשכולות ומנהל הצמתים של AlloyDB Omni.
  • ‫ALLOYDB_OMNI_NODE_MANAGER_VERSION: הגרסה של מנהל הצמתים של AlloyDB Omni להתקנה. אם לא מציינים גרסה, הכלי להתזמור מתקין את הגרסה העדכנית שזמינה.
  • ‫ALLOYDB_OMNI_PGBOUNCER_VERSION: הגרסה של חבילת PgBouncer להתקנה.
  • ‫ALLOYDB_OMNI_PGBACKREST_VERSION: הגרסה של חבילת pgBackRest להתקנה.
  • ‫DB_HOST_1, ‏ DB_HOST_2, ‏ DB_HOST_3: כתובות ה-IP או שמות הדומיינים שמוגדרים במלואם (FQDN) של המכונות הווירטואליות שמוגדרות כצמתים של מסד הנתונים.
  • ‫LB_HOST_1, LB_HOST_2: כתובות ה-IP או שמות הדומיינים שמוגדרים במלואם (FQDN) של המכונות הווירטואליות שמוגדרות כצמתים של איזון עומסים.
  • ‫ETCD_HOST_1, ‏ ETCD_HOST_2, ‏ ETCD_HOST_3: כתובות ה-IP או שמות הדומיין המלאים (FQDN) של המכונות הווירטואליות שמוגדרות כצמתי etcd.
  • ‫CM_HOST_1, ‏ CM_HOST_2, ‏ CM_HOST_3: כתובות ה-IP או שמות הדומיין המלאים של המכונות הווירטואליות שמוגדרות כצמתים של מנהל האשכול.

התקנת הרכיבים

אפשר להתקין את רכיבי AlloyDB Omni ואת התלויות שלהם באמצעות Ansible או להתקין ידנית את חבילות התוכנה בכל צומת.

התקנת רכיבי AlloyDB Omni באמצעות Ansible

השיטה המומלצת להתקנה היא באמצעות תפקיד Ansible שסופק.

  1. יוצרים playbook בשם install.yaml שמפנה לתפקיד ההתקנה מאוסף כלי התזמור.

    - name: Install AlloyDB Omni cluster components
      hosts: all
      become: true
      vars:
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.install
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
    • ‫SSH_KEY_PATH: הנתיב לקובץ של מפתח ה-SSH הפרטי בצומת הבקרה, לדוגמה ~/.ssh/id_rsa.
  2. כדי להוריד ולהתקין את הרכיבים בכל הצמתים שצוינו, מריצים את ה-playbook באמצעות קובץ המלאי.

    ansible-playbook -i deployment_spec.yaml install.yaml
    

התקנת רכיבי AlloyDB Omni ללא Ansible

אם אין לכם סביבת Ansible ואתם מתכננים להשתמש ב-Orchestrator CLI לניהול אשכולות, תצטרכו להתקין את כל הרכיבים באופן ידני, כי Orchestrator CLI לא מספק התקנה אוטומטית של רכיבים.

התקנת רכיבים בכל הצמתים

בטבלה הבאה מפורטים כל סוגי הצמתים והרכיבים התואמים (RPM) שצריך להתקין.

צומת רכיבי תוכנה (RPM) נתונים
control node alloydbomni_orchestrator
primary_instance_nodes alloydbomni18
alloydbomni_monitor
alloydbomni_node_manager
keepalived
pgbackrest
pgbouncer
הכלים Keepalived ו-pgbouncer נדרשים רק בסביבות שבהן אין מאזני עומסים.
etcd_nodes etcd אפשר להתקין את ETCD בצמתים של מנהל האשכולות כשאין צמתים ייעודיים ל-ETCD.
cluster_manager_nodes alloydbomni_cluster_manager אפשר להתקין את Cluster Manager בצמתי מסד הנתונים (primary_instance_nodes) כשאין צמתים ייעודיים ל-Cluster Manager.
load_balancer_nodes alloydbomni_node_manager
haproxy
keepalived
pgbouncer
התוכנות keepalived ו-pgbouncer מותקנות בצמתים של מאזן העומסים רק בסביבה שבה מוגדרים מאזני עומסים.

פקודות התקנה:

  • ‫REPO_GPG_KEY: המיקום של המפתח הציבורי של Google לאימות GPG, לדוגמה, https://dl.google.com/linux/linux_signing_key.pub. אפשר גם להגדיר את המדיניות הזו כנתיב קובץ אחרי שמורידים אותו וממקמים אותו בכל מכונות ה-VM. לדוגמה: file:///tmp/linux_signing_key.pub.

התקנת רכיבי AlloyDB Omni בצמתי etcd

  1. בכל הצמתים של etcd, יוצרים קובץ הגדרות של מאגר YUM בשם /etc/yum.repos.d/alloydb-etcd.repo:

    [etcd]
    name=AlloyDB Omni ETCD
    baseurl=ETCD_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. התקנה של etcd:

    sudo dnf install -y etcd
    
  3. מפעילים את Bootstrap etcd על ידי עריכת קובץ התצורה. צריך לבצע אתחול של etcd לפני שמתקינים רכיבים של AlloyDB Omni.

    בתאריך etcd_nodes, בוצעה עריכה של /etc/etcd/etcd.conf:

    ETCD_NAME=ETCD_HOST
    ETCD_DATA_DIR=/var/lib/etcd/data
    ETCD_LISTEN_PEER_URLS=https://ETCD_HOST_IP:2380,https://127.0.0.1:2380
    ETCD_LISTEN_CLIENT_URLS=https://ETCD_HOST_IP:2379,https://127.0.0.1:2379
    ETCD_INITIAL_ADVERTISE_PEER_URLS=https://ETCD_HOST_IP:2380
    ETCD_ADVERTISE_CLIENT_URLS=https://ETCD_HOST_IP:2379
    
    ETCD_INITIAL_CLUSTER=ETCD_HOST_1=https://ETCD_HOST_IP_1:2380,ETCD_HOST_2=https://ETCD_HOST_IP_2:2380,ETCD_HOST_3=https://ETCD_HOST_IP_3:2380
    
    ETCD_INITIAL_CLUSTER_STATE=new
    ETCD_INITIAL_CLUSTER_TOKEN=CLUSTER_NAME
    ETCD_ENABLE_V2=true
    
    ETCD_CLIENT_CERT_AUTH=true
    ETCD_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    ETCD_PEER_CLIENT_CERT_AUTH=true
    ETCD_PEER_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_PEER_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_PEER_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    

    כאשר:

    • ETCD_HOST: המארח/ת הנוכחי/ת של etcd.
    • ‫ETCD_HOST_IP: כתובת ה-IP הנוכחית של המארח etcd.
    • ‫ETCD_HOST_1: השם של הצומת הראשון באשכול etcd.
    • ‫ETCD_HOST_IP_1: כתובת ה-IP של הצומת הראשון באשכול etcd.
    • ‫ETCD_HOST_2: השם של הצומת השני באשכול etcd.
    • ‫ETCD_HOST_IP_2: כתובת ה-IP של הצומת השני באשכול etcd.
    • ‫ETCD_HOST_3: השם של הצומת השלישי באשכול etcd.
    • ‫ETCD_HOST_IP_3: כתובת ה-IP של הצומת השלישי באשכול etcd.
    • ‫CLUSTER_NAME: שם האשכול כפי שמופיע במישור הבקרה.
  4. מגדירים את חומת האש כך שתאפשר תקשורת TCP ביציאות 2379 ו-2380.

  5. מפעילים את etcd:

    sudo systemctl enable etcd
    sudo systemctl start etcd
    

התקנת רכיבי AlloyDB Omni בצמתי מכונות ראשיים

  1. בכל primary_instance_nodes, יוצרים קובץ תצורה של מאגר YUM בשם /etc/yum.repos.d/alloydb-omni.repo:

    [alloydbomni_core]
    name=AlloyDB Omni Core
    baseurl=ALLOYDB_OMNI_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
    [alloydbomni_common]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. התקנה של alloydbomni18,‏ alloydbomni_monitor,‏ alloydbomni_node_manager ו-pgbackrest בכל primary_instance_nodes:

    sudo dnf install -y alloydbomni18 alloydbomni_monitor alloydbomni_node_manager pgbackrest
    
  3. (אופציונלי) אם אין לכם צמתים של איזון עומסים (load_balancer_nodes), מתקינים את pgbouncer ואת keepalived:

    sudo dnf install -y pgbouncer keepalived
    
  4. אחרי שמתקינים את alloydbomni_node_manager, צריך להגדיר אותו לפני שמפעילים את השירותים.alloydbomni_node_manager מוודאים שקובץ מפרט הפריסה (deployment_spec.yaml) מועתק לכל המכונות הווירטואליות הרלוונטיות:

    sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
    

התקנת רכיבי AlloyDB Omni בצמתים של מנהל האשכול

  1. בכל הצמתים של מנהל האשכול, יוצרים קובץ הגדרות של מאגר YUM בשם /etc/yum.repos.d/alloydb-orchestrator.repo:

    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. מתקינים את מנהל האשכולות:

    sudo dnf install -y alloydbomni_cluster_manager
    
  3. אחרי שמתקינים את alloydbomni_cluster_manager ומפעילים את etcd, צריך להגדיר את alloydbomni_cluster_manager לפני שמפעילים את השירותים.

    sudo /usr/local/bin/alloydbomni_cm_config apply -d deployment_spec.yaml
    

התקנת רכיבי AlloyDB Omni בצמתים של מאזן עומסים

  1. בכל הצמתים של מאזן העומסים, יוצרים קובץ הגדרות של מאגר YUM בשם /etc/yum.repos.d/alloydb-omni-lb.repo:

    [pgbouncer]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_node_manager]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. מתקינים את הרכיבים של מאזן העומסים:

    sudo dnf install -y alloydbomni_node_manager keepalived pgbouncer haproxy
    
  3. אחרי שמתקינים את alloydbomni_node_manager ומפעילים את etcd, צריך להגדיר את alloydbomni_node_manager לפני שמפעילים את השירותים. מוודאים שקובץ מפרט הפריסה (deployment_spec.yaml) מועתק לכל המכונות הווירטואליות הרלוונטיות:

    sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
    

סיכום של רכיבי AlloyDB Omni שהותקנו

תהליך ההתקנה פורס כמה חבילות RPM מרכזיות בהתאם לסוג הצומת:

סוג הצומת רכיבים מותקנים הערות
צמתים של מכונה ראשית alloydbomniPG_VERSION, alloydbomni_monitor, alloydbomni_node_manager, pgbouncer, pgbackrest רכיבים למנוע מסד הנתונים, למעקב ולניהול.
צמתים של מאזן עומסים haproxy זה שינוי אופציונלי. ההתקנה תדלג אם צמתי מאזן העומסים לא זמינים.
צמתים של מנהל האשכול alloydbomni_cluster_manager אפשר להתקין אותו בצמתי מסד נתונים אם אין צמתים ייעודיים זמינים. אם לא מציינים צמתים של מנהל האשכול, רכיב מנהל האשכול מותקן ב-primary_instance_nodes.
צמתי etcd etcd אפשר להתקין אותם בצמתים של מנהל האשכול אם צריך. אם לא מציינים צמתי etcd, ‏ etcd מותקן ב-cluster_manager_nodes

הסרת ההתקנה של הרכיבים

אם אתם צריכים להסיר את ההתקנה של AlloyDB Omni מהסביבה שלכם – למשל, כדי להוציא משימוש אשכול או כדי להתכונן להתקנה מחדש – אתם יכולים להסיר את כל רכיבי התוכנה שלו. כדי להסיר את AlloyDB Omni, משתמשים ב-Ansible או מסירים ידנית את קובצי ה-RPM מכל צומת.

הסרת רכיבי AlloyDB Omni באמצעות Ansible

כדי להסיר את רכיבי חבילת התוכנה של AlloyDB Omni באמצעות Ansible, משתמשים בקובץ המלאי הקיים וב-playbook שמפנה לתפקיד google.alloydbomni_orchestrator.uninstall.

  1. יוצרים playbook בשם uninstall.yaml.

    - name: Uninstall AlloyDB Omni cluster
      hosts: all
      become: true
      vars:
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.uninstall
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SSH_USER: שם המשתמש שבו אתם משתמשים כדי להתחבר לצמתים באשכול באמצעות SSH.
    • ‫SSH_KEY_PATH: הנתיב לקובץ של מפתח ה-SSH הפרטי בצומת הבקרה, לדוגמה ~/.ssh/id_rsa.
  2. מבצעים את הפעולות שמופיעות בחוברת ההדרכה. כדי להסיר את קובצי ההגדרות ואת ספריית הנתונים, צריך להעביר את cleanup_data=true ואת cleanup_config=true כמשתנים נוספים.

    ansible-playbook -i deployment_spec.yaml uninstall.yaml -e "cleanup_data=true cleanup_config=true"
    

הסרת רכיבים של AlloyDB Omni באופן ידני

אם אתם משתמשים ב-AlloyDB Omni orchestrator CLI, אתם צריכים להסיר ידנית את קובצי ה-RPM מכל צומת.

  1. בכל צומתי מסד הנתונים, מריצים את הפקודה הבאה:

    sudo dnf remove -y alloydbomni_node_manager alloydbomniPG_VERSION alloydbomni_monitor pgbackrest keepalived pgbouncer
    
  2. בכל הצמתים של מאזן העומסים, מריצים את הפקודה הבאה:

    sudo dnf remove -y alloydbomni_node_manager keepalived haproxy pgbouncer
    
  3. בכל הצמתים של מנהל האשכולות, מריצים את הפקודה הבאה:

    sudo dnf remove -y alloydbomni_cluster_manager
    
  4. אופציונלי: בכל צומתי etcd, מריצים את הפקודה הבאה כדי להסיר את etcd ולנקות את נתוני etcd:

    sudo dnf remove -y etcd
    sudo rm -rf /var/lib/etcd/data
    

המאמרים הבאים