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

בחירת גרסת תיעוד:

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

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

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

  • התקנת התזמור: ודאו שאוסף Ansible או ה-CLI של התזמור ב-AlloyDB Omni מותקנים בצומת הבקרה.
  • הקצאת מכונות: צריך להקצות מכונות וירטואליות של RHEL9 בהתאם לארכיטקטורה שבחרתם, למשל עצמאית או זמינות גבוהה.
  • הגדרת הרשת וחומת האש: מוודאים שכל היציאות הנדרשות פתוחות בין הצמתים. זה כולל את 5432 לתעבורת נתונים של מסדי נתונים, את 2379/2380 ל-etcd ואת יציאות הניהול 6703,‏ 6702 ו-6700 שמשמשות את תוכנה לניהול אשכולות ו-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 של המאגר שמכיל את תוכנה לניהול אשכולות ואת Node Manager של AlloyDB Omni בפורמט RPM.
  • ‫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 אפשר להתקין את תוכנה לניהול אשכולות בצמתי מסד הנתונים (primary_instance_nodes) כשאין צמתים ייעודיים לתוכנה לניהול אשכולות.
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. אפשר גם להגדיר את המדיניות כנתיב קובץ אחרי שמורידים אותו וממקמים אותו בכל המכונות הווירטואליות, לדוגמה, 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. מאתחלים את 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. יוצרים פלייבוק בשם 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 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
    

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