בדף הזה מוסבר איך להתקין מכונה אחת של AlloyDB Omni בכל מכונה וירטואלית של Linux שתומכת בסביבות זמן ריצה של קונטיינרים. אם אתם צריכים להגדיר כמה מופעים במקביל של AlloyDB Omni, קראו את המאמר זמינות גבוהה ועמידות של נתונים.
לפני שמתחילים
לפני שמתקינים את AlloyDB Omni במכונה הווירטואלית, צריך לבצע את הפעולות הבאות:
- מידע נוסף על תכנון ההתקנה של AlloyDB Omni במכונה וירטואלית
- קוראים את המאמר הפעלת AlloyDB Omni עם הרשאות בסיס או בלי הרשאות בסיס ומבצעים את השלבים הנדרשים בהתאם לסביבה שבחרתם.
הפעלת AlloyDB Omni עם הרשאות רוט או בלי הרשאות רוט
אפשר להריץ את AlloyDB Omni באמצעות Docker או Podman. אפשר להריץ את שני מנועי הקונטיינרים האלה עם הרשאות רוט או בלי הרשאות רוט. המונח Rootful מתייחס להרצת Docker או Podman כמשתמש Root, והמונח Rootless מתייחס להרצה שלהם כמשתמש שאינו Root, או כמשתמש ללא הרשאות.
המצב שתבחרו תלוי בדרישות ובהעדפות שלכם לגבי הסביבה. אם הפשטות חשובה לכם, יכול להיות ש-rootful מתאים לכם. אם אתם צריכים את האבטחה של משתמש ללא הרשאות, יכול להיות ש-rootless היא הבחירה הנכונה.
אם אתם מחליטים להריץ סביבה עם הרשאות בסיסיות, אתם צריכים להחליט איך לנהל את מיפוי המשתמשים בין הקונטיינר לבין המחשב המארח. בפועל, AlloyDB Omni מריץ תהליכים בתור המשתמש postgres, שיש לו UID ו-GID של 999. יש שתי אפשרויות לניהול מיפוי המשתמשים:
- לא לעשות דבר. המשתמש
postgresימשיך לא להיות ממופה לאף משתמש במחשב המארח. - יוצרים משתמש וקבוצת משתמשים עם UID ו-GID של
999כדי ש-postgresימופה למשתמש ולקבוצת המשתמשים האלה.
בסביבות ללא הרשאות root, postgres ממופה ל-sub-UID ול-sub-GID שלמשתמש המארח ולקבוצת המשתמשים יש גישה אליהם (כפי שמוגדר בקובצי /etc/subuid ו-/etc/subgid). זה אומר שאתם לא צריכים לנהל את מיפוי המשתמשים.
(Rootless) הגדרת טווחים של sub-UID ו-sub-GID
אם באימג' של Linux עדיין לא הוגדרו טווחי sub-UID ו-sub-GID עבור משתמש ללא הרשאות, צריך להגדיר אותם כדי להריץ את AlloyDB Omni ללא הרשאות root.
אם אתם משתמשים במערכת Debian, התקינו את הקבצים הבינאריים
newuidmapו-newgidmap.apt-get install -y uidmap
מוסיפים רשומה של
subuidלמשתמש ללא הרשאות אדמין.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
מחליפים את המשתנים הבאים:
-
ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו. -
SUB_UID_RANGE_START: המספר הנמוך בטווח של מזהי ה-UID המשניים שרוצים לרשום למשתמש. -
SUB_UID_RANGE_COUNT: מספר מזהי המשנה שאתם רוצים לרשום למשתמש. הערך חייב להיות לפחות 999.
-
מוסיפים רשומה של
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: מספר מזהי המשנה של קבוצות שרוצים לרשום עבור המשתמש. הערך חייב להיות לפחות 999.
-
אם רוצים שמכונת AlloyDB Omni תפעל גם כשהמשתמש לא מחובר, מריצים את הפקודה הבאה:
loginctl enable-linger ROOTLESS_USER
מחליפים את המשתנה הבא:
-
ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו.
-
אם אתם משתמשים ב-Docker, מריצים את הפקודה הבאה בתור ROOTLESS_USER.
/usr/bin/dockerd-rootless-setuptool.sh install
כדי שהשינויים ב-sub-UID וב-sub-GID ייכנסו לתוקף, פותחים מעטפת חדשה.
יצירת ספרייה שבה AlloyDB Omni מאחסן נתונים
אם אתם משתמשים במערכת אחסון שעושה יותר מאשר רק להריץ את AlloyDB Omni, אתם יכולים ליצור את ספריית AlloyDB Omni במערכת הקבצים הקיימת במכשיר. אחרת, אתם יכולים ליצור מערכת קבצים חדשה במכשיר הייעודי.
מערכת קבצים קיימת
Docker
mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIRPodman
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRמחליפים את המשתנים הבאים:
-
DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים.
מכשיר ייעודי
יוצרים ספרייה במארח שאליה יוטען הדיסק.
mkdir -p MOUNT_POINT
מחליפים את המשתנה הבא:
-
MOUNT_POINT: הנתיב של הספרייה ברמה העליונה שצריכה להכיל את המכונה של AlloyDB Omni.
-
יוצרים טבלת מחיצות GPT עם מחיצה אחת במכשיר הדיסק.
parted -s DEVICE_PATH mklabel gptparted -s DEVICE_PATH mkpart primary 0% 100%מחליפים את המשתנה הבא:
-
DEVICE_PATH: הנתיב שהוקצה על ידי מערכת ההפעלה למכשיר הדיסק.
-
יוצרים מערכת קבצים בהתקן הדיסק. אנחנו ממליצים להשתמש במערכת הקבצים
ext4ב-AlloyDB Omni.mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
מחליפים את המשתנים הבאים:
-
FS_LABEL: תווית למערכת הקבצים. האורך המקסימלי של תווית מערכת קבצים ב-ext4הוא 16 תווים. -
PARTITION_PATH: הנתיב למחיצת הדיסק שמשמשת לאחסון הנתונים של הקונטיינר.
-
מציבים את המכשיר ויוצרים רשומה בקובץ
/etc/fstabכדי שהדיסק יוצב אחרי הפעלה מחדש.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstabsystemctl daemon-reloadmount MOUNT_POINTמחליפים את המשתנים הבאים:
-
FS_LABEL: תווית למערכת הקבצים. האורך המקסימלי של תווית של מערכת קבציםext4הוא 16 תווים. -
MOUNT_POINT: הנתיב של הספרייה ברמה העליונה שצריכה להכיל את המכונה של AlloyDB Omni.
-
יוצרים ספריית נתונים במערכת הקבצים הספציפית של הקונטיינר.
Rootful
mkdir -p DATA_DIR
ללא הרשאות Root
mkdir -p DATA_DIRchown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRמחליפים את המשתנים הבאים:
-
DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים. -
ROOTLESS_USER: אם אתם משתמשים בסביבה ללא הרשאות בסיס, זה המשתמש שאתם רוצים שיהיה הבעלים של הספרייה. -
ROOTLESS_GROUP: אם אתם משתמשים בסביבה ללא הרשאות root, זו הקבוצה שאתם רוצים שתהיה הבעלים של הספרייה.
-
יצירת הקונטיינר
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
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שבו השתמשתם עבור הספרייה ביצירת ספרייה שבה AlloyDB Omni מאחסן נתונים.
חיבור מרחוק
psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN
מחליפים את המשתנים הבאים:
-
HOST_PORT: יציאת ה-TCP שבה השתמשתם ביצירת הקונטיינר. -
IP_ADDRESS_OR_FQDN: כתובת ה-IP או שם הדומיין המלא של המארח שבו פועל AlloyDB Omni.
אחרי שמריצים את הפקודה הזו, מתבקשים להזין את הסיסמה של החשבון postgres
מזינים את הסיסמה שבה השתמשתם ביצירת הקונטיינר.