לפני שמתחילים
לפני שמתקינים את AlloyDB Omni, צריך לוודא שעומדים בדרישות הבאות.
תכנון ההתקנה
לפני שמתקינים את AlloyDB Omni במכונה הווירטואלית, צריך לבצע את הפעולות הבאות:
- איך מתכננים את ההתקנה של AlloyDB Omni ב-VM
- קוראים את המאמר הפעלה של AlloyDB Omni עם או בלי הרשאות 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ימופה למשתמש ולקבוצת המשתמשים האלה.
בסביבות ללא הרשאות root, postgres ממופה ל-sub-UID ול-sub-GID שלמשתמש המארח ולקבוצת המשתמשים יש גישה אליהם (כפי שמוגדר בקובצי /etc/subuid ו-/etc/subgid). זה אומר שאתם לא צריכים לנהל את מיפוי המשתמשים.
(Rootless) הגדרת טווחים של 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.sudo apt-get install -y uidmap
מוסיפים רשומה של
subuidלמשתמש ללא הרשאות Root.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" | sudo tee -a /etc/subuid
מחליפים את המשתנים הבאים:
-
ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו. -
SUB_UID_RANGE_START: המספר הנמוך בטווח של מזהי ה-UID המשניים שרוצים לרשום למשתמש. -
SUB_UID_RANGE_COUNT: מספר מזהי המשנה שאתם רוצים לרשום למשתמש. הערך חייב להיות לפחות 999.
-
מוסיפים רשומה של
subgidלמשתמש ללא הרשאות Root.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" | sudo tee -a /etc/subgid
מחליפים את המשתנים הבאים:
-
ROOTLESS_USER: המשתמש שרוצים להריץ את AlloyDB Omni בתורו. -
SUB_GID_RANGE_START: המספר הנמוך ביותר בטווח של מזהי ה-GID המשניים שרוצים לרשום למשתמש. -
SUB_GID_RANGE_COUNT: מספר מזהי המשנה של קבוצות שרוצים לרשום עבור המשתמש. הערך חייב להיות לפחות 999.
-
אם רוצים שמופע AlloyDB Omni יפעל גם כשהמשתמש לא מחובר, מריצים את הפקודה הבאה.
sudo 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
sudo mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIRPodman
sudo mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIRמחליפים את המשתנים הבאים:
-
DATA_DIR: הנתיב לספריית המארח שבה הנתונים מאוחסנים.
מכשיר ייעודי
יוצרים ספרייה במארח שבו הדיסק ייטען.
sudo mkdir -p MOUNT_POINT
מחליפים את המשתנה הבא:
-
MOUNT_POINT: הנתיב של הספרייה ברמה העליונה שצריכה להכיל את המכונה של AlloyDB Omni.
-
יוצרים טבלת מחיצות GPT עם מחיצה אחת במכשיר הדיסק.
sudo parted -s DEVICE_PATH mklabel gptsudo parted -s DEVICE_PATH mkpart primary 0% 100%מחליפים את המשתנה הבא:
-
DEVICE_PATH: הנתיב שהוקצה על ידי מערכת ההפעלה להתקן הדיסק.
-
יוצרים מערכת קבצים בדיסק. אנחנו ממליצים להשתמש במערכת הקבצים
ext4ב-AlloyDB Omni.sudo 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" | sudo tee -a /etc/fstabsudo systemctl daemon-reloadsudo mount MOUNT_POINTמחליפים את המשתנים הבאים:
-
FS_LABEL: תווית למערכת הקבצים. האורך המקסימלי של תווית מערכת קבצים ב-ext4הוא 16 תווים. -
MOUNT_POINT: הנתיב של הספרייה ברמה העליונה שצריכה להכיל את המכונה של AlloyDB Omni.
-
יוצרים ספריית נתונים במערכת הקבצים הספציפית של הקונטיינר.
Rootful
sudo mkdir -p DATA_DIR
Rootless
sudo mkdir -p DATA_DIRsudo chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIRמחליפים את המשתנים הבאים:
-
DATA_DIR: הנתיב לספרייה המארחת שבה הנתונים מאוחסנים. -
ROOTLESS_USER: אם אתם משתמשים בסביבה ללא הרשאות root, זהו המשתמש שרוצים שיהיה הבעלים של הספרייה. -
ROOTLESS_GROUP: אם אתם משתמשים בסביבה ללא הרשאות בסיס, זו הקבוצה שאתם רוצים שתהיה הבעלים של הספרייה.
-
יצירת הקונטיינר
Docker
sudo 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
sudo 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
sudo docker exec -it CONTAINER_NAME psql -U postgres
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Podman
sudo 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. מזינים את הסיסמה שבה השתמשתם ביצירת הקונטיינר.