לפני שמתחילים
לפני שמתקינים את AlloyDB Omni, צריך לוודא שאתם עומדים בדרישות הבאות.
תכנון ההתקנה
לפני שמתקינים את AlloyDB Omni במכונה הווירטואלית, צריך לבצע את הפעולות הבאות:
- מומלץ לקרוא את המאמר תכנון ההתקנה של AlloyDB Omni במכונה וירטואלית.
- קוראים את המאמרים הפעלת AlloyDB Omni עם הרשאות root או ללא הרשאות root ומשלימים את השלבים הנדרשים בהתאם לסביבה שבחרתם.
בחירת אפשרות להורדה או להתקנה
בוחרים אחת מהאפשרויות הבאות להורדה ולהתקנה:
| מדיה | מיקומי הורדה ומדריכי התקנה | פריסה ב |
|---|---|---|
| תמונת Debian | DockerHub (תגים) | |
| תמונת UBI (Red Hat) | Red Hat Ecosystem Catalog |
|
הפעלת 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ימופה למשתמש ולקבוצת המשתמשים האלה.
בסביבות ללא שורש, postgres ממופה ל-sub-UID ול-sub-GID שהמשתמש המארח וקבוצת המשתמשים יכולים לגשת אליהם (כפי שמוגדר בקובצי /etc/subuid ו-/etc/subgid). המשמעות היא שלא צריך לנהל את מיפוי המשתמשים.
(ללא הרשאות root) הגדרת טווחים של sub-UID ו-sub-GID
אם אתם משתמשים ב-RHEL, ב-CentOS או ב-Fedora, מבצעים את השלבים הבאים:
- מריצים את הפקודה
sudo dnf install -y iptablesכדי להתקין את תוכנת השירות של שורת הפקודהiptables. - בכל גרסה של RHEL מגרסה 9 ומטה, מתקינים את החבילה
fuse-overlayfsעל ידי הפעלת הפקודהsudo dnf install -y fuse-overlayfs.
- מריצים את הפקודה
אם באימג' של Linux לא מוגדרים טווחים של sub-UID ו-sub-GID עבור משתמש ללא הרשאות, צריך להגדיר את הטווחים האלה כדי להפעיל את AlloyDB Omni ללא הרשאות root.
אם אתם משתמשים במערכת Debian, צריך להתקין קבצים בינאריים של
newuidmapושלnewgidmap.apt-get install -y uidmap
מוסיפים רשומה של
subuidלמשתמש ללא הרשאות root.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.
-
מוסיפים רשומה של
subgidלמשתמש ללא הרשאות root.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
מחליפים את המשתנים הבאים:
-
ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו. -
SUB_GID_RANGE_START: המספר הנמוך בטווח של מזהי המשנה של קבוצות שרוצים לרשום עבור המשתמש. -
SUB_GID_RANGE_COUNT: מספר מזהי ה-GID המשניים שרוצים לרשום עבור המשתמש. הערך חייב להיות לפחות 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: הנתיב שהוקצה על ידי מערכת ההפעלה למכשיר הדיסק.
-
יוצרים מערכת קבצים במכשיר הדיסק. מומלץ להשתמש במערכת הקבצים עבור AlloyDB Omni.
ext4mkfs.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.
-
יוצרים ספריית נתונים במערכת הקבצים הספציפית של המאגר.
עם הרשאות רוט
mkdir -p DATA_DIR
Rootless
mkdir -p DATA_DIRchown 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:IMAGE_TAG
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:IMAGE_TAG
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:IMAGE_TAG
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:IMAGE_TAG
מחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שבו השתמשתם עבור הספרייה בקטע יצירת ספרייה שבה AlloyDB Omni מאחסן נתונים. -
NEW_PASSWORD: הסיסמה שמוקצית למשתמשpostgresשל מאגר התגים החדש אחרי שהוא נוצר. -
DATA_DIR: הנתיב לספריית המארח שבה הנתונים מאוחסנים. -
HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים5432. -
IMAGE_TAG: משתמשים ב-16.3.0כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-16.3.0-ubiכדי לקבל את קובץ האימג' העדכני ביותר של UBI.
התחברות למכונה
בהתאם לסביבה שלכם, אתם יכולים להתחבר למכונה של 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. מזינים את הסיסמה שבה השתמשתם בשלב יצירת הקונטיינר.