התאמה אישית של ההתקנה של AlloyDB Omni

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

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

הפעלה והשבתה של טלמטריה ב-AlloyDB Omni

טלמטריה של AlloyDB Omni מטמיעה סוכן לקוח קל משקל שפועל רק בקובץ האימג' של הקונטיינר AlloyDB Omni. הסוכן הזה אוסף מעת לעת קבוצה של מדדים בסיסיים פסאודו-אנונימיים ושולח אותם לנקודת קצה שמנוהלת על ידי Google.

‫AlloyDB Omni הוא מוצר שניתן להורדה בחינם, ולכן הטלמטריה הזו מספקת ל-Google מדדים חיוניים של מידע שלא מאפשר זיהוי אישי (non-PII) לגבי סביבות האימוץ והפריסה הגנריות של מופעים פעילים. הנתונים האלה עוזרים לנו לפתח מוצרים ולתת תמיכה לפי סדר עדיפויות.

המדדים שנאספים כוללים את המדדים הבאים:

  • מזהה התקנה ייחודי (UUID שעבר פסאודונימיזציה)
  • גרסת AlloyDB Omni וגרסה ראשית של PostgreSQL
  • מידע על מערכת המארח, כמו מספר המעבדים, זיכרון ה-RAM וזמן הפעולה

השבתת דיווח הטלמטריה

כדי למנוע מהסוכן של הטלמטריה לפעול ולדווח על מדדי שימוש, צריך להגדיר את פרמטר ההגדרה של PostgreSQL‏ omni_enable_telemetry לערך off. כדי להשבית את סוכן הטלמטריה, צריך להגדיר את דגל הטלמטריה בקובץ postgresql.conf או להגדיר את הדגל בזמן הריצה באמצעות ALTER SYSTEM.

הגדרת דגל הטלמטריה בקובץ postgresql.conf

כדי לשנות את קובץ התצורה של PostgreSQL בספריית הנתונים הקבועים של הקונטיינר, פועלים לפי השלבים הבאים:

  1. מאתרים את הקובץ postgresql.conf בספריית הנתונים של מסד הנתונים ($PGDATA).
  2. השבתה של טלמטריה ב-AlloyDB Omni.

    omni_enable_telemetry = off
    
  3. כדי להחיל את השינוי, מפעילים מחדש את קונטיינר AlloyDB Omni. סוכן הטלמטרייה מפסיק לאסוף ולשלוח מדדי שימוש אל Google.

הגדרת דגל הטלמטריה בזמן ריצה באמצעות ALTER SYSTEM

כדי להגדיר את דגל הטלמטריה ולשמור את השינוי גם אחרי הפעלה מחדש, פועלים לפי השלבים הבאים:

  1. מתחברים למופע AlloyDB Omni באמצעות psql:

    psql -h HOST -U USER -d DATABASE
    

    מחליפים את הפרטים הבאים:

    • HOST: שם המארח או כתובת ה-IP של מופע AlloyDB Omni, לדוגמה 127.0.0.1.
    • USER: משתמש מסד הנתונים שאליו רוצים להתחבר, לדוגמה postgres.
    • DATABASE: מסד הנתונים שאליו רוצים להתחבר, לדוגמה postgres.
  2. מריצים את הפקודה הבאה:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. טוענים מחדש את התצורה או מפעילים מחדש את המכונה. בהגדרות מסוימות של מאגרי תגים, יכול להיות שתצטרכו להפעיל מחדש את המופע כדי לוודא שהשינוי נקלט באופן מלא על ידי תהליך הרקע.

    SELECT pg_reload_conf();
    

    סוכן הטלמטרייה מפסיק לאסוף ולשלוח מדדי שימוש אל Google.

הפעלת דיווח על נתוני טלמטריה

אם השבתתם בעבר את הטלמטריה של AlloyDB Omni, תוכלו להפעיל אותה מחדש על ידי הגדרת הדגל omni_enable_telemetry לערך on. כדי להפעיל את סוכן הטלמטריה, צריך להגדיר את הדגל בקובץ postgresql.conf או להגדיר את הדגל בזמן הריצה באמצעות ALTER SYSTEM.

הגדרת דגל הטלמטריה בקובץ postgresql.conf

  1. מאתרים את הקובץ postgresql.conf בספריית הנתונים של מסד הנתונים ($PGDATA).
  2. מגדירים את השורה הבאה:

    omni_enable_telemetry = on
    
  3. כדי להחיל את השינוי, מפעילים מחדש את קונטיינר AlloyDB Omni.

הגדרת דגל הטלמטריה בזמן ריצה באמצעות ALTER SYSTEM

  1. מתחברים למופע AlloyDB Omni באמצעות psql.
  2. מריצים את הפקודה הבאה:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. כדי להחיל את השינוי, מפעילים מחדש את קונטיינר AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    מחליפים את הפרטים הבאים:

    • CONTAINER_NAME: השם של קונטיינר AlloyDB Omni, לדוגמה my-omni-1.

בדיקת סטטוס הטלמטריה של AlloyDB Omni

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

בדיקה אם סוכן הטלמטריה מופעל או מושבת

כדי לבדוק את הסטטוס של הגדרת הטלמטריה, פועלים לפי השלבים הבאים:

  1. מתחברים למכונה.
  2. מריצים את הפקודה הבאה:
SHOW omni_enable_telemetry;

הפלט מחזיר on או off, בהתאם להשבתה או להפעלה של הטלמטריה ב-AlloyDB Omni.

בדיקה אם סוכן הטלמטריה פועל

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

docker top CONTAINER_NAME

מחליפים את הפרטים הבאים:

  • CONTAINER_NAME: השם של קונטיינר AlloyDB Omni, לדוגמה my-omni-1.

אם הטלמטריה מופעלת ופועלת, הפלט מכיל שורה עם הטקסט postgres: omni telemetry worker.

בדיקת הפעילות של סוכן הטלמטריה

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

docker logs CONTAINER_NAME 2>&1 | grep telemetry

מחליפים את הפרטים הבאים:

  • CONTAINER_NAME: השם של קונטיינר AlloyDB Omni, לדוגמה my-omni-1.

אם סוכן הטלמטריה פועל, היומנים יכילו הודעות דומות לאלה:

LOG:  [telemetry_agent_worker.cc:143]  Started telemetry worker
LOG:  [telemetry_agent_worker.cc:161]  Running telemetry reporting agent
telemetry_agent: Uploading telemetry data to https://cloud.google.com/log.

טעינה של ספריית נתונים חיצונית

כברירת מחדל, הפקודה במאמר Quickstart: Install AlloyDB Omni מאחסנת את נתוני מסד הנתונים באזור שמנוהל על ידי Docker או Podman. השיטה הזו נוחה להתחלה, אבל קשה למצוא את ספריית הנתונים ולהשתמש בה. במקום זאת, אפשר להגדיר bind mount כדי למפות את ספריית הנתונים למיקום מוכר בדיסק.

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: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
  • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
  • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
  • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
  • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

טעינה של ספריית נתונים חיצונית כשמשתמשים ב-SELinux

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

Docker

  1. אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
    docker stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    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
    
    מחליפים את המשתנים הבאים:
    • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, אתם צריכים להתקין אותו דרך מנהל החבילות. החבילה הזו מספקת כלי עזר שנדרשים לניהול מדיניות SELinux.
  5. בספריית הנתונים החיצונית, מגדירים את הקשר המתאים של SELinux.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים שלכם מאוחסנים.
  6. אפשר להשתמש ב-ausearch כדי לקבל מידע על דרישות ההרשאות הנוספות.
    ausearch -c 'postgres' --raw > postgres.avc
  7. יצירת פרופיל אבטחה של SELinux על סמך מידע ההרשאות של קונטיינר AlloyDB Omni ושל ausearch.
    docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  9. מפעילים את mmap.
    setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

Docker

  1. אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
    docker stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    sudo setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    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
    
    מחליפים את המשתנים הבאים:
    • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, אתם צריכים להתקין אותו דרך מנהל החבילות. החבילה הזו מספקת כלי עזר שנדרשים לניהול מדיניות SELinux.
  5. אם ספריית הנתונים החיצונית לא נמצאת בספריית הבית, צריך להגדיר את הקשר המתאים של SELinux.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים שלכם מאוחסנים.
  6. אפשר להשתמש ב-ausearch כדי לקבל מידע על דרישות ההרשאות הנוספות.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. יצירת פרופיל אבטחה של SELinux על סמך מידע ההרשאות של קונטיינר AlloyDB Omni ושל ausearch.
    docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  9. מפעילים את mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    sudo setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

Podman

  1. אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
    podman stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    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: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, אתם צריכים להתקין אותו דרך מנהל החבילות. החבילה הזו מספקת כלי עזר שנדרשים לניהול מדיניות SELinux.
  5. בספריית הנתונים החיצונית, מגדירים את הקשר המתאים של SELinux.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים שלכם מאוחסנים.
  6. אפשר להשתמש ב-ausearch כדי לקבל מידע על דרישות ההרשאות הנוספות.
    ausearch -c 'postgres' --raw > postgres.avc
  7. יצירת פרופיל אבטחה של SELinux על סמך מידע ההרשאות של קונטיינר AlloyDB Omni ושל ausearch.
    podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  9. מפעילים את mmap.
    setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

Podman

  1. אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
    podman stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    sudo setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    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: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, אתם צריכים להתקין אותו דרך מנהל החבילות. החבילה הזו מספקת כלי עזר שנדרשים לניהול מדיניות SELinux.
  5. בספריית הנתונים החיצונית, מגדירים את הקשר המתאים של SELinux.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים שלכם מאוחסנים.
  6. אפשר להשתמש ב-ausearch כדי לקבל מידע על דרישות ההרשאות הנוספות.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. יצירת פרופיל אבטחה של SELinux על סמך מידע ההרשאות של קונטיינר AlloyDB Omni ושל ausearch.
    podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  9. מפעילים את mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    sudo setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
    • DATA_DIR: נתיב ספריית המארח שבו הנתונים מאוחסנים.
    • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi9 כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

הפעלת ulimits

הפרמטרים של ulimit מציינים מגבלות על תהליכים שקונטיינר Docker או Podman יכול להשתמש בהן. כדי להשיג ביצועים אופטימליים, מומלץ להגדיר את הערכים הבאים של ulimits:

  • nice=-20:-20: AlloyDB Omni משנה את העדיפויות של התהליכים כדי לאפשר לתהליכים קריטיים של PostgreSQL לפעול בעדיפות גבוהה יותר. העדיפות הגבוהה יותר מקצה לתהליכים יותר מעבדים זמינים. כדי לשנות את העדיפויות של התהליך, מציינים את --ulimit=nice=-20:-20, שמסיר את המגבלות של קונטיינר AlloyDB Omni.

  • memlock=-1:-1: ב-AlloyDB Omni מתבצע ניהול זיכרון אוטומטי. ההגדרה --ulimit=memlock=-1:-1 מאפשרת למסד הנתונים לשלוט טוב יותר בהחלפה של דפי זיכרון, מה שיכול לשפר את הביצועים.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

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

  • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
  • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
  • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים 5432.
  • IMAGE_TAG: משתמשים ב-AlloyDB Omni כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-AlloyDB Omni-ubi כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

ציון מנהל התקן לרישום ביומן

כברירת מחדל, Docker ו-Podman לא מבצעים רוטציה של יומנים. מה שעלול לתפוס נפח אחסון גדול, ובסופו של דבר לגרום לניצול מלא של נפח האחסון. כדי להשתמש במנהל התקן אחר לרישום ביומן, אפשר לציין את השדה --log-driver. לדוגמה, כדי להיכנס ל-journald:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

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

  • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
  • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
  • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים 5432.
  • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

מידע נוסף על מנהלי התקנים של רישום ביומן זמין במאמר Configure logging drivers (הגדרה של מנהלי התקנים של רישום ביומן) של Docker ובמאמר podman-run של Podman.

בנוסף, אפשר להגדיר רישום ביומן באמצעות PostgreSQL. מידע נוסף זמין במאמר בנושא הגדרת החלפת יומנים ב-AlloyDB Omni.

צירוף של נפח זיכרון משותף

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

Linux

כדי להפוך את הזיכרון המשותף לזמין למאגר, צריך להפעיל את הפקודה /dev/shm:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-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 /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

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

  • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
  • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
  • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים 5432.
  • IMAGE_TAG: משתמשים ב-17.5.0 לקובץ האימג' העדכני של Debian או ב-17.5.0-ubi לקובץ האימג' העדכני של UBI.

macOS

כדי להפוך את הזיכרון המשותף לזמין לקונטיינר, צריך לכלול את הדגל --shm-size:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

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

  • CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
  • NEW_PASSWORD: הסיסמה שמוקצית למשתמש postgres של מאגר התגים החדש אחרי שהוא נוצר.
  • SHARED_MEMORY_SIZE: גודל להגדרה עבור /dev/shm בקונטיינר, בפורמט שמתואר במאמר בנושא הרצת קונטיינרים. לדוגמה, כדי לציין גיגה-בייט אחד, משתמשים בערך 1g.
  • HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים 5432.
  • IMAGE_TAG: משתמשים ב-17.5.0 כדי לקבל את קובץ האימג' העדכני ביותר של Debian או ב-17.5.0-ubi כדי לקבל את קובץ האימג' העדכני ביותר של UBI.

מומלץ להגדיר את גודל הזיכרון המשותף למספר מגה-בייט ששווה לפחות לערך של הדגל google_job_scheduler.max_parallel_workers_per_job במסד הנתונים, כפול 250. מידע נוסף על מנוע מבוסס-עמודות זמין במאמר בנושא הגדרת מנוע העמודות ב-AlloyDB Omni.

לדוגמה, אם הדגל google_job_scheduler.max_parallel_workers_per_job של מסד הנתונים מוגדר לערך ברירת המחדל שלו 2, כדאי להוסיף דגל של --shm-size=500m או יותר כשמפעילים את שרת מסד הנתונים.

מידע נוסף על הדגל --shm-size זמין במאמר הרצת קונטיינרים.

הפעלת תוספים

רשימת התוספים שזמינים ב-AlloyDB Omni מופיעה במאמר Supported database extensions. למרות ש-PostGIS ו-Orafce לא כלולים ב-AlloyDB Omni, אפשר להתקין את שניהם לפי ההוראות הבאות:

כדי להפעיל תוספים מותקנים, משתמשים בהצהרות PostgreSQL CREATE EXTENSIONסטנדרטיות, כמו שמתואר במאמר הפעלת תוסף.