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

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

בדף הזה נסביר איך לבצע התקנות של AlloyDB Omni במכונה וירטואלית של Linux שתומכת בזמני ריצה של קונטיינרים. אם אתם צריכים להגדיר כמה מופעים במקביל של AlloyDB Omni, קראו את המאמר זמינות גבוהה ועמידות של נתונים.

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

לפני שמתקינים את AlloyDB Omni, צריך לוודא שעומדים בדרישות הבאות.

תכנון ההתקנה

לפני שמתקינים את AlloyDB Omni ב-VM, צריך לבצע את הפעולות הבאות:

  1. איך מתכננים את ההתקנה של AlloyDB Omni ב-VM
  2. קוראים את המאמר הפעלה של AlloyDB Omni עם או בלי הרשאות root ומשלימים את השלבים הנדרשים בהתאם לסביבה שבחרתם.

בוחרים אפשרות להורדה או להתקנה

בוחרים אחת מהאפשרויות הבאות להורדה ולהתקנה:

מדיה מיקומי הורדה ומדריכי התקנה פריסה אל
תמונת Debian ‫DockerHub (תגים)
  • Docker, ‏ Podman. אפשר להריץ את כלי הקונטיינריזציה האלה כקונטיינר בכל מכונה וירטואלית (VM).
תמונת UBI‏ (Red Hat) Red Hat Ecosystem Catalog
  • סביבת Red Hat. הפעלת הפקודה כקונטיינר.

הפעלה של AlloyDB Omni עם או בלי הרשאות root

אפשר להריץ את AlloyDB Omni באמצעות Docker או Podman. אפשר להריץ את שני מנועי הקונטיינרים האלה עם הרשאות רוט או בלי הרשאות רוט. המונח rootful מתייחס להרצת Docker או Podman כמשתמש root, והמונח rootless מתייחס להרצתם כמשתמש שאינו root או כמשתמש ללא הרשאות.

המצב שתבחרו תלוי בדרישות ובהעדפות שלכם לגבי הסביבה. אם הפשטות חשובה לכם, יכול להיות ש-rootful מתאים לכם. אם אתם צריכים את האבטחה של משתמש ללא הרשאות, יכול להיות ש-rootless היא הבחירה הנכונה.

אם מחליטים להריץ סביבה עם הרשאות root, צריך להחליט איך לנהל את מיפוי המשתמשים בין הקונטיינר למכונת המארח. בפועל,‏ AlloyDB Omni מריץ תהליכים בתור המשתמש postgres, שיש לו UID ו-GID של 999. זה אומר שיש לכם שתי אפשרויות לנהל את מיפוי המשתמשים:

  • לא לעשות דבר. המשתמש postgres ימשיך לא להיות ממופה לאף משתמש במחשב המארח.
  • יוצרים משתמש וקבוצת משתמשים עם UID ו-GID של 999, כדי ש-postgres ימופה למשתמש ולקבוצת המשתמשים האלה.

בסביבות ללא הרשאות root, ‏ postgres ממופה ל-sub-UID ול-sub-GID שלמשתמש המארח ולקבוצת המשתמשים יש גישה אליהם (כפי שמוגדר בקובצי /etc/subuid ו-/etc/subgid). המשמעות היא שלא צריך לנהל את מיפוי המשתמשים.

(ללא הרשאות Root) הגדרת טווחים של sub-UID ו-sub-GID

אם באימג' של Linux לא מוגדרים טווחי sub-UID ו-sub-GID למשתמש ללא הרשאות, צריך להגדיר אותם כדי להריץ את AlloyDB Omni ללא הרשאות ברמת הבסיס.

  1. אם אתם משתמשים במערכת Debian, התקינו את הקבצים הבינאריים newuidmap ו-newgidmap.

    apt-get install -y uidmap
    
  2. מוסיפים רשומה של subuid למשתמש ללא הרשאות אדמין.

    echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
    

    מחליפים את המשתנים הבאים:

    • ‫ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו.
    • ‫SUB_UID_RANGE_START: המספר הנמוך בטווח של מזהי המשנה (sub-UID) שרוצים לרשום עבור המשתמש.
    • ‫SUB_UID_RANGE_COUNT: מספר מזהי המשנה שרוצים לרשום עבור המשתמש. הערך חייב להיות לפחות 999.
  3. מוסיפים רשומה של subgid למשתמש ללא הרשאות אדמין.

    echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
    

    מחליפים את המשתנים הבאים:

    • ‫ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו.
    • ‫SUB_GID_RANGE_START: המספר הנמוך יותר בטווח של מספרי ה-GID המשניים שרוצים לרשום עבור המשתמש.
    • ‫SUB_GID_RANGE_COUNT: מספר מזהי ה-GID המשניים שרוצים לרשום למשתמש. הערך חייב להיות לפחות 999.
  4. אם רוצים שמכונת AlloyDB Omni תפעל גם כשהמשתמש לא מחובר, מריצים את הפקודה הבאה:

    loginctl enable-linger ROOTLESS_USER
    

    מחליפים את המשתנה הבא:

    • ‫ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו.
  5. אם אתם משתמשים ב-Docker, הריצו את הפקודה הבאה בתור ROOTLESS_USER.

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  6. כדי שהשינויים ב-sub-UID וב-sub-GID ייכנסו לתוקף, פותחים מעטפת חדשה.

יצירת ספרייה שבה AlloyDB Omni מאחסן נתונים

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

מערכת קבצים קיימת

Docker

mkdir -p DATA_DIR

Docker

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

Podman

mkdir -p DATA_DIR

מחליפים את המשתנים הבאים:

  • ‫DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים.

מכשיר ייעודי

  1. יוצרים ספרייה במארח שבו הדיסק ייטען.

    mkdir -p MOUNT_POINT
    

    מחליפים את המשתנה הבא:

    • ‫MOUNT_POINT: הנתיב של הספרייה ברמה העליונה שצריכה להכיל את המכונה של AlloyDB Omni.
  2. יוצרים טבלת מחיצות GPT עם מחיצה אחת במכשיר הדיסק.

    parted -s DEVICE_PATH mklabel gpt
    parted -s DEVICE_PATH mkpart primary 0% 100%

    מחליפים את המשתנה הבא:

    • ‫DEVICE_PATH: הנתיב שהוקצה על ידי מערכת ההפעלה להתקן הדיסק.
  3. יוצרים מערכת קבצים בדיסק. מומלץ להשתמש ext4 במערכת הקבצים ב-AlloyDB Omni.

    mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
    

    מחליפים את המשתנים הבאים:

    • ‫FS_LABEL: תווית למערכת הקבצים. האורך המקסימלי של תווית מערכת קבצים ב-ext4 הוא 16 תווים.
    • ‫PARTITION_PATH: הנתיב למחיצת הדיסק שמשמשת לאחסון הנתונים של הקונטיינר.
  4. מציבים את המכשיר ויוצרים רשומה בקובץ /etc/fstab כדי שהדיסק יוצב אחרי הפעלה מחדש.

    echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
    systemctl daemon-reload
    mount MOUNT_POINT

    מחליפים את המשתנים הבאים:

    • ‫FS_LABEL: תווית למערכת הקבצים. האורך המקסימלי של תווית של מערכת קבצים ext4 הוא 16 תווים.
    • ‫MOUNT_POINT: הנתיב של הספרייה ברמה העליונה שצריכה להכיל את המכונה של AlloyDB Omni.
  5. יוצרים ספריית נתונים במערכת הקבצים הספציפית של הקונטיינר.

    Rootful

    mkdir -p DATA_DIR
    

    ללא הרשאות Root

    mkdir -p DATA_DIR
    chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR

    מחליפים את המשתנים הבאים:

    • ‫DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים.
    • ‫ROOTLESS_USER: אם אתם משתמשים בסביבה ללא הרשאות root, זהו המשתמש שרוצים שיהיה הבעלים של הספרייה.
    • ‫ROOTLESS_GROUP: אם אתם משתמשים בסביבה ללא הרשאות בסיס, זו הקבוצה שאתם רוצים שתהיה הבעלים של הספרייה.

יצירת קונטיינר

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest

מחליפים את המשתנים הבאים:

  • ‫CONTAINER_NAME: השם שנתתם לספרייה בקטע יצירת ספרייה שבה AlloyDB Omni מאחסן נתונים.
  • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
  • ‫DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים.
  • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים 5432.

התחברות למכונה

בהתאם לסביבה שלכם, אתם יכולים להתחבר למכונה של AlloyDB Omni באופן מקומי או מרחוק.

חיבור מקומי

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Docker

docker exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

Podman

podman exec -it CONTAINER_NAME psql -U postgres

מחליפים את המשתנה הבא:

חיבור מרחוק

psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN

מחליפים את המשתנים הבאים:

  • ‫HOST_PORT: יציאת ה-TCP שבה השתמשתם ביצירת הקונטיינר.
  • ‫IP_ADDRESS_OR_FQDN: כתובת ה-IP או שם הדומיין שמוגדר במלואו של המארח שבו פועל AlloyDB Omni.

אחרי שמריצים את הפקודה, צריך להזין את הסיסמה של החשבון postgres. מזינים את הסיסמה שבה השתמשתם ביצירת הקונטיינר.

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