בדף הזה מוסבר איך להתאים אישית את ההתקנה של AlloyDB Omni, שנפרסת באמצעות קובץ אימג' של קונטיינר שתומך בצורות שונות של התאמה אישית. בדף הזה מוצגות כמה התאמות אישיות נפוצות.
הפעלה והשבתה של מדידת נתונים מרחוק ב-AlloyDB Omni
מדידת הנתונים מרחוק ב-AlloyDB Omni מטמיעה סוכן לקוח קל משקל שפועל רק בקובץ האימג' של הקונטיינר של AlloyDB Omni. הסוכן הזה אוסף מדי פעם קבוצה של מדדים בסיסיים עם פסאודונימים, ושולח אותם לנקודת קצה (endpoint) שמנוהלת על ידי Google.
מכיוון ש-AlloyDB Omni הוא מוצר שניתן להורדה ומוצע ללא תשלום, נתוני הטלמטריה האלה מספקים ל-Google מדדים חיוניים של מידע שלא מאפשר זיהוי אישי (non-PII) לגבי סביבות הפריסה וההטמעה הגנריות של מכונות פועלות. הנתונים האלה עוזרים לנו לפתח מוצרים ולתת תמיכה לפי סדר עדיפויות.
המדדים שנאספים כוללים:
- מזהה התקנה ייחודי (UUID שעבר פסאודונימיזציה)
- גרסת AlloyDB Omni והגרסה הראשית של PostgreSQL
- פרטי המערכת המארחת, כמו מספר המעבדים, זיכרון ה-RAM וזמן הפעולה התקינה
השבתת הדיווח על נתוני הטלמטריה
כדי למנוע את ההפעלה של סוכן הטלמטריה ואת הדיווח על מדדי השימוש, צריך להגדיר את פרמטר ההגדרה של PostgreSQL omni_enable_telemetry לערך off. כדי להשבית את סוכן הטלמטריה, אפשר להגדיר את דגל הטלמטריה בקובץ postgresql.conf או להגדיר את הדגל בזמן הריצה באמצעות ALTER SYSTEM.
הגדרת דגל הטלמטריה בקובץ postgresql.conf
כדי לשנות את קובץ התצורה של PostgreSQL בספריית הנתונים הקבועה של הקונטיינר:
- מאתרים את הקובץ
postgresql.confבספריית הנתונים של מסד הנתונים ($PGDATA). השבתת מדידת הנתונים מרחוק ב-AlloyDB Omni.
omni_enable_telemetry = off
כדי להחיל את השינוי, מפעילים מחדש את מאגר AlloyDB Omni. סוכן הטלמטרייה מפסיק לאסוף ולשלוח מדדי שימוש אל Google.
הגדרת דגל הטלמטריה בזמן הריצה באמצעות ALTER SYSTEM
כדי להגדיר את דגל הטלמטריה ולשמור את השינוי גם אחרי הפעלה מחדש, פועלים לפי השלבים הבאים:
מתחברים למכונה של AlloyDB Omni באמצעות
psql:psql -h HOST -U USER -d DATABASE
מחליפים את הפרטים הבאים:
-
HOST: שם המארח או כתובת ה-IP של מכונת AlloyDB Omni, לדוגמה127.0.0.1. -
USER: המשתמש במסד הנתונים שאליו רוצים להתחבר, לדוגמהpostgres. -
DATABASE: מסד הנתונים שאליו רוצים להתחבר, לדוגמהpostgres.
-
מריצים את הפקודה הבאה:
ALTER SYSTEM SET omni_enable_telemetry = 'off';
טוענים מחדש את ההגדרות או מפעילים מחדש את המכונה. בחלק מההגדרות של קונטיינרים, יכול להיות שתצטרכו להפעיל מחדש את המכונה כדי לוודא שהשינוי נקלט במלואו על ידי ה-background worker.
SELECT pg_reload_conf();
סוכן הטלמטריה מפסיק לאסוף ולשלוח ל-Google מדדי שימוש.
הפעלת דיווח על נתוני טלמטריה
אם השבתתם בעבר את מדידת הנתונים מרחוק ב-AlloyDB Omni, אתם יכולים להפעיל אותה מחדש על ידי הגדרת הדגל omni_enable_telemetry ל-on. כדי להפעיל את סוכן הטלמטריה, מגדירים את הדגל בקובץ postgresql.conf או מגדירים את הדגל בזמן הריצה באמצעות ALTER SYSTEM.
הגדרת דגל הטלמטריה בקובץ postgresql.conf
- מאתרים את הקובץ
postgresql.confבספריית הנתונים של מסד הנתונים ($PGDATA). מגדירים את השורה הבאה:
omni_enable_telemetry = on
כדי שהשינוי ייכנס לתוקף, צריך להפעיל מחדש את קונטיינר AlloyDB Omni.
הגדרת דגל הטלמטריה בזמן הריצה באמצעות ALTER SYSTEM
- מתחברים למופע AlloyDB Omni באמצעות
psql. מריצים את הפקודה הבאה:
ALTER SYSTEM SET omni_enable_telemetry = 'on';
כדי שהשינוי ייכנס לתוקף, צריך להפעיל מחדש את קונטיינר AlloyDB Omni.
docker restart CONTAINER_NAME
מחליפים את הפרטים הבאים:
-
CONTAINER_NAME: השם של מאגר AlloyDB Omni, לדוגמהmy-omni-1.
-
בדיקת הסטטוס של מדידת הנתונים מרחוק ב-AlloyDB Omni
אתם יכולים לבדוק את הסטטוס של סוכן מדידת הנתונים מרחוק ב-AlloyDB Omni, כולל אם הוא מופעל או פועל. אפשר גם לבדוק את הפעילות של סוכן הטלמטריה.
בדיקה אם סוכן הטלמטריה מופעל או מושבת
כדי לבדוק את הסטטוס של הגדרת הטלמטריה, פועלים לפי השלבים הבאים:
- מתחברים למכונה.
- מריצים את הפקודה הבאה:
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.
התקנה של ספריית נתונים חיצונית
כברירת מחדל, הפקודה במדריך למתחילים: התקנת AlloyDB Omni מאחסנת את נתוני מסד הנתונים באזור שמנוהל על ידי Docker או Podman. זה נוח להתחלה, אבל מקשה על מציאת ספריית הנתונים והשימוש בה. במקום זאת, אתם יכולים להגדיר טעינת קישור כדי למפות את ספריית הנתונים למיקום ידוע בדיסק.
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: משתמשים ב-16.9.0לתמונת Debian העדכנית או ב-16.9.0-ubi9לתמונת UBI העדכנית.
טעינה של ספריית נתונים חיצונית כשמשתמשים ב-SELinux
אם SELinux מופעל והמצב מוגדר ל-enforcing, ניסיון להרכיב ספריית נתונים חיצונית מוביל לשגיאות הרשאה. כדי לטעון ספריית נתונים חיצונית כשמשתמשים ב-SELinux, פועלים לפי ההוראות הבאות:
Docker
-
אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
מחליפים את המשתנה הבא:docker stop CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.setenforce 0
-
מריצים את הקונטיינר עם ספריית נתונים חיצונית.
מחליפים את המשתנים הבאים: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: משתמשים ב-16.9.0בשביל קובץ האימג' האחרון של Debian, או ב-16.9.0-ubi9בשביל קובץ האימג' האחרון של UBI.
-
-
אם עדיין לא התקנתם את
policycoreutils-python-utils, מתקינים אותו דרך מנהל החבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux. -
מגדירים את ההקשר המתאים של SELinux לספריית הנתונים החיצונית.
semanage fcontext -a -t container_file_t "DATA_DIR"
מחליפים את המשתנה הבא:restorecon -Rv "DATA_DIR"
-
DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
-
-
אפשר להשתמש בסימן
ausearchכדי לקבל מידע על דרישות ההרשאה הנוספות.ausearch -c 'postgres' --raw > postgres.avc
-
ליצור פרופיל אבטחה של SELinux על סמך
הקונטיינר של AlloyDB Omni ופרטי ההרשאות של
ausearch. מחליפים את המשתנה הבא:docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
טוענים את מודול SELinux.
מחליפים את המשתנה הבא:semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
מפעילים את
mmap.setsebool -P domain_can_mmap_files 1
-
מפסיקים ומסירים את הקונטיינר של AlloyDB Omni.
מחליפים את המשתנה הבא:docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
enforcing.setenforce 1
-
יוצרים מחדש את מאגר 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: משתמשים ב-16.9.0לתמונת Debian העדכנית או ב-16.9.0-ubi9לתמונת UBI העדכנית.
-
Docker
-
אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
מחליפים את המשתנה הבא:docker stop CONTAINER_NAME
-
CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.sudo setenforce 0
-
מריצים את הקונטיינר עם ספריית נתונים חיצונית.
מחליפים את המשתנים הבאים: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: משתמשים ב-16.9.0בשביל קובץ האימג' האחרון של Debian, או ב-16.9.0-ubi9בשביל קובץ האימג' האחרון של UBI.
-
-
אם עדיין לא התקנתם את
policycoreutils-python-utils, התקינו אותו באמצעות הכלי לניהול חבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux. -
אם ספריית הנתונים החיצונית לא נמצאת בספריית הבית, צריך להגדיר את ההקשר המתאים של SELinux.
sudo semanage fcontext -a -t container_file_t "DATA_DIR"
מחליפים את המשתנה הבא:sudo restorecon -Rv "DATA_DIR"
-
DATA_DIR: נתיב ספריית המארח שבו הנתונים שלכם מאוחסנים.
-
-
אפשר להשתמש בסימן
ausearchכדי לקבל מידע על דרישות ההרשאה הנוספות.sudo ausearch -c 'postgres' --raw > postgres.avc
-
יוצרים פרופיל אבטחה של SELinux על סמך המידע על קונטיינר AlloyDB Omni והרשאת
ausearch. מחליפים את המשתנה הבא:docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
טוענים את מודול SELinux.
מחליפים את המשתנה הבא:sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה,my-omni-1.
-
-
מפעילים את
mmap.sudo setsebool -P domain_can_mmap_files 1
-
עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
מחליפים את המשתנה הבא:docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
enforcing.sudo setenforce 1
-
יוצרים מחדש את קונטיינר 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: משתמשים ב-16.9.0לתמונת Debian העדכנית או ב-16.9.0-ubi9לתמונת UBI העדכנית.
-
Podman
-
אם הקונטיינר של AlloyDB Omni פועל, צריך לעצור אותו.
מחליפים את המשתנה הבא:podman stop CONTAINER_NAME
-
CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.setenforce 0
-
מריצים את הקונטיינר עם ספריית נתונים חיצונית.
מחליפים את המשתנים הבאים: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: משתמשים ב-16.9.0בשביל קובץ האימג' האחרון של Debian, או ב-16.9.0-ubi9בשביל קובץ האימג' האחרון של UBI.
-
-
אם עדיין לא התקנתם את
policycoreutils-python-utils, מתקינים אותו דרך מנהל החבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux. -
בספריית הנתונים החיצונית, מגדירים את הקשר המתאים של SELinux.
semanage fcontext -a -t container_file_t "DATA_DIR"
מחליפים את המשתנה הבא:restorecon -Rv "DATA_DIR"
-
DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
-
-
אפשר להשתמש בסימן
ausearchכדי לקבל מידע על דרישות ההרשאה הנוספות.ausearch -c 'postgres' --raw > postgres.avc
-
יוצרים פרופיל אבטחה של SELinux על סמך המידע על קונטיינר AlloyDB Omni והרשאת
ausearch. מחליפים את המשתנה הבא:podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
טוענים את מודול SELinux.
מחליפים את המשתנה הבא:semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
מפעילים את
mmap.setsebool -P domain_can_mmap_files 1
-
מפסיקים ומסירים את הקונטיינר של AlloyDB Omni.
מחליפים את המשתנה הבא:podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
enforcing.setenforce 1
-
יוצרים מחדש את מאגר 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: משתמשים ב-16.9.0לתמונת Debian העדכנית או ב-16.9.0-ubi9לתמונת UBI העדכנית.
-
Podman
-
אם הקונטיינר של AlloyDB Omni פועל, צריך לעצור אותו.
מחליפים את המשתנה הבא:podman stop CONTAINER_NAME
-
CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
permissive. כך תוכלו להריץ את הקונטיינר ולזהות פרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.sudo setenforce 0
-
מריצים את הקונטיינר עם ספריית נתונים חיצונית.
מחליפים את המשתנים הבאים: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: משתמשים ב-16.9.0בשביל קובץ האימג' האחרון של Debian, או ב-16.9.0-ubi9בשביל קובץ האימג' האחרון של UBI.
-
-
אם עדיין לא התקנתם את
policycoreutils-python-utils, מתקינים אותו דרך מנהל החבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux. -
בספריית הנתונים החיצונית, מגדירים את הקשר המתאים של SELinux.
sudo semanage fcontext -a -t container_file_t "DATA_DIR"
מחליפים את המשתנה הבא:sudo restorecon -Rv "DATA_DIR"
-
DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
-
-
אפשר להשתמש בסימן
ausearchכדי לקבל מידע על דרישות ההרשאה הנוספות.sudo ausearch -c 'postgres' --raw > postgres.avc
-
ליצור פרופיל אבטחה של SELinux על סמך
הקונטיינר של AlloyDB Omni ופרטי ההרשאות של
ausearch. מחליפים את המשתנה הבא:podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
טוענים את מודול SELinux.
מחליפים את המשתנה הבא:sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}-
CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה,my-omni-1.
-
-
מפעילים את
mmap.sudo setsebool -P domain_can_mmap_files 1
-
מפסיקים ומסירים את הקונטיינר של AlloyDB Omni.
מחליפים את המשתנה הבא:podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
-
CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה,my-omni-1.
-
-
מגדירים את המצב של SELinux ל-
enforcing.sudo setenforce 1
-
יוצרים מחדש את קונטיינר 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: משתמשים ב-16.9.0בשביל קובץ האימג' האחרון של Debian, או ב-16.9.0-ubi9בשביל קובץ האימג' האחרון של UBI.
-
הפעלת ulimits
הפרמטרים של ulimit מציינים מגבלות על תהליכים שקונטיינר Docker או Podman יכול להשתמש בהן. כדי ליהנות מביצועים אופטימליים, מומלץ להגדיר את מגבלות המשאבים הבאות:
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: משתמשים ב-16.9.0בשביל קובץ האימג' העדכני של Debian, או ב-16.9.0-ubiבשביל קובץ האימג' העדכני של UBI.
למידע נוסף על מנהלי התקנים לרישום ביומן, קראו את המאמר הגדרת מנהלי התקנים לרישום ביומן של Docker ואת המאמר podman-run של Podman.
צירוף של נפח זיכרון משותף
אם אתם מתכננים להשתמש במנוע מבוסס-העמודות של 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: משתמשים ב-16.9.0לתמונת Debian העדכנית או ב-16.9.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: משתמשים ב-16.9.0בשביל קובץ האימג' העדכני של Debian או ב-16.9.0-ubiבשביל קובץ האימג' העדכני של UBI.
מומלץ להגדיר את גודל הזיכרון המשותף למספר מגה-בייט ששווה לפחות לערך של מסד הנתונים שלכם של הדגל google_job_scheduler.max_parallel_workers_per_job כפול 250. מידע נוסף על המנוע מבוסס-העמודות זמין במאמר הגדרת המנוע מבוסס-העמודות ב-AlloyDB Omni.
לדוגמה, אם הדגל google_job_scheduler.max_parallel_workers_per_job database
מוגדר לערך ברירת המחדל שלו 2, כדאי להוסיף דגל של --shm-size=500m או יותר כשמפעילים את שרת מסד הנתונים.
מידע נוסף על הדגל --shm-size זמין במאמר הפעלת קונטיינרים.
הפעלת תוספים
רשימת התוספים שזמינים ב-AlloyDB Omni מופיעה במאמר תוספי מסדי נתונים נתמכים. AlloyDB Omni לא כולל את PostGIS ו-Orafce, אבל אפשר להתקין את שניהם לפי ההוראות הבאות:
התוספים המותקנים מופעלים באמצעות הצהרות CREATE EXTENSION סטנדרטיות של PostgreSQL, כפי שמפורט בקטע הפעלת תוסף.