Halaman ini menjelaskan cara melakukan penginstalan instance tunggal AlloyDB Omni di VM Linux apa pun yang mendukung runtime penampung. Jika Anda memerlukan konfigurasi multi-instance AlloyDB Omni, lihat Ketersediaan tinggi dan ketahanan data.
Sebelum memulai
Sebelum menginstal AlloyDB Omni di VM, lakukan hal berikut:
- Baca artikel Merencanakan penginstalan AlloyDB Omni di VM.
- Baca Menjalankan AlloyDB Omni dengan atau tanpa root dan selesaikan langkah-langkah yang diperlukan untuk root atau tanpa root, bergantung pada lingkungan yang Anda pilih.
Menjalankan AlloyDB Omni dengan root atau tanpa root
Anda dapat menjalankan AlloyDB Omni menggunakan Docker atau Podman. Kedua mesin penampung ini dapat dijalankan sebagai root atau tanpa root. Rootful mengacu pada menjalankan Docker atau Podman sebagai pengguna root, sedangkan rootless mengacu pada menjalankannya sebagai pengguna non-root, atau tanpa hak istimewa.
Mode yang Anda pilih bergantung pada persyaratan dan preferensi yang Anda miliki untuk lingkungan. Jika kesederhanaan penting, rootful mungkin tepat untuk Anda. Jika Anda memerlukan keamanan pengguna tanpa hak istimewa, rootless mungkin merupakan pilihan yang tepat.
Jika memutuskan untuk menjalankan lingkungan root, Anda harus memutuskan cara mengelola
pemetaan pengguna antara penampung dan mesin host. Dalam praktiknya,
AlloyDB Omni menjalankan proses sebagai pengguna postgres
, yang memiliki
UID dan GID 999
. Artinya, Anda memiliki dua opsi untuk mengelola pemetaan pengguna:
- Tidak melakukan apa pun.
postgres
akan terus tidak dipetakan ke pengguna mana pun di mesin host Anda. - Buat pengguna dan grup pengguna dengan UID dan GID
999
sehinggapostgres
dipetakan ke pengguna dan grup pengguna tersebut.
Untuk lingkungan tanpa root, postgres
dipetakan ke sub-UID dan sub-GID yang dapat diakses oleh
pengguna host dan grup pengguna (seperti yang ditentukan dalam file /etc/subuid
dan
/etc/subgid
). Artinya, Anda tidak perlu mengelola pemetaan pengguna.
(Tanpa Root) Mengonfigurasi rentang sub-UID dan sub-GID
Jika image Linux Anda belum memiliki rentang sub-UID dan sub-GID yang dikonfigurasi untuk pengguna tanpa hak istimewa, Anda harus mengonfigurasinya untuk menjalankan AlloyDB Omni tanpa root.
Jika Anda menggunakan sistem Debian, instal biner
newuidmap
dannewgidmap
.apt-get install -y uidmap
Tambahkan entri
subuid
untuk pengguna tanpa root.echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
Ganti variabel berikut:
ROOTLESS_USER
: Pengguna yang ingin Anda gunakan untuk menjalankan AlloyDB Omni.SUB_UID_RANGE_START
: Jumlah yang lebih rendah dari rentang sub-UID yang ingin Anda daftarkan untuk pengguna.SUB_UID_RANGE_COUNT
: Jumlah sub-UID yang ingin Anda daftarkan untuk pengguna. Nilai ini harus minimal 999.
Tambahkan entri
subgid
untuk pengguna tanpa root.echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
Ganti variabel berikut:
ROOTLESS_USER
: Pengguna yang ingin Anda gunakan untuk menjalankan AlloyDB Omni.SUB_GID_RANGE_START
: Jumlah yang lebih rendah dari rentang sub-GID yang ingin Anda daftarkan untuk pengguna.SUB_GID_RANGE_COUNT
: Jumlah sub-GID yang ingin Anda daftarkan untuk pengguna. Nilai ini harus minimal 999.
Jika Anda ingin instance AlloyDB Omni berjalan saat pengguna tidak login, jalankan perintah berikut.
loginctl enable-linger ROOTLESS_USER
Ganti variabel berikut:
ROOTLESS_USER
: Pengguna yang ingin Anda gunakan untuk menjalankan AlloyDB Omni.
Jika Anda menggunakan Docker, jalankan perintah berikut sebagai ROOTLESS_USER.
/usr/bin/dockerd-rootless-setuptool.sh install
Buka shell baru agar perubahan sub-UID dan sub-GID diterapkan.
Membuat direktori tempat AlloyDB Omni menyimpan data
Jika menggunakan sistem penyimpanan yang melakukan lebih dari sekadar menjalankan AlloyDB Omni, Anda dapat membuat direktori AlloyDB Omni di sistem file yang ada di perangkat. Atau, Anda dapat membuat sistem file baru di perangkat khusus.
Sistem file yang ada
Docker
mkdir -p DATA_DIR
Docker
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Podman
mkdir -p DATA_DIR
Ganti variabel berikut:
DATA_DIR
: Jalur direktori host tempat data Anda disimpan.
Perangkat khusus
Buat direktori di host tempat disk akan dipasang.
mkdir -p MOUNT_POINT
Ganti variabel berikut:
MOUNT_POINT
: Jalur direktori tingkat atas yang harus berisi instance AlloyDB Omni Anda.
Buat tabel partisi gpt dengan satu partisi di perangkat disk.
parted -s DEVICE_PATH mklabel gpt
parted -s DEVICE_PATH mkpart primary 0% 100%
Ganti variabel berikut:
DEVICE_PATH
: Jalur yang ditetapkan oleh sistem operasi ke perangkat disk.
Buat sistem file di perangkat disk. Sebaiknya gunakan sistem file
ext4
untuk AlloyDB Omni.mkfs.ext4 -q -m 1 -L FS_LABEL -F PARTITION_PATH
Ganti variabel berikut:
FS_LABEL
: Label untuk sistem file. Panjang maksimum label sistem fileext4
adalah 16 karakter.PARTITION_PATH
: Jalur untuk partisi disk yang digunakan untuk menyimpan data penampung.
Pasang perangkat dan buat entri dalam file
/etc/fstab
sehingga disk dipasang setelah dimulai ulang.echo -e "LABEL=FS_LABEL\tMOUNT_POINT\text4\tdefaults\t0 0" | tee -a /etc/fstab
systemctl daemon-reload
mount MOUNT_POINT
Ganti variabel berikut:
FS_LABEL
: Label untuk sistem file. Panjang maksimum label sistem fileext4
adalah 16 karakter.MOUNT_POINT
: Jalur direktori tingkat atas yang harus berisi instance AlloyDB Omni Anda.
Buat direktori data di sistem file khusus penampung.
Rootful
mkdir -p DATA_DIR
Tanpa root
mkdir -p DATA_DIR
chown ROOTLESS_USER:ROOTLESS_GROUP DATA_DIR
Ganti variabel berikut:
DATA_DIR
: Jalur direktori host tempat data Anda disimpan.ROOTLESS_USER
: Jika Anda menggunakan lingkungan tanpa root, ini adalah pengguna yang ingin Anda miliki direktorinya.ROOTLESS_GROUP
: Jika Anda menggunakan lingkungan tanpa root, grup ini adalah grup yang ingin Anda miliki direktorinya.
Membuat penampung
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
Ganti variabel berikut:
CONTAINER_NAME
: Nama yang Anda gunakan untuk direktori di Membuat direktori tempat AlloyDB Omni menyimpan data.NEW_PASSWORD
: Sandi yang ditetapkan ke penggunapostgres
penampung baru setelah pembuatannya.DATA_DIR
: Jalur direktori host tempat data Anda disimpan.HOST_PORT
: Port TCP di mesin host tempat penampung harus memublikasikan port5432
-nya sendiri. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan5432
.
Menghubungkan ke instance
Bergantung pada lingkungan Anda, Anda dapat terhubung ke instance AlloyDB Omni secara lokal atau secara jarak jauh.
Menghubungkan secara lokal
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
Ganti variabel berikut:
CONTAINER_NAME
: Nama yang Anda gunakan untuk direktori di Membuat direktori tempat AlloyDB Omni menyimpan data.
Menghubungkan dari jarak jauh
psql -U postgres -p HOST_PORT -h IP_ADDRESS_OR_FQDN
Ganti variabel berikut:
HOST_PORT
: Port TCP yang Anda gunakan di Membuat penampung.IP_ADDRESS_OR_FQDN
: Alamat IP atau nama domain yang sepenuhnya memenuhi syarat untuk host tempat AlloyDB Omni berjalan.
Setelah menjalankan perintah ini, Anda akan diminta untuk memasukkan sandi akun postgres
. Masukkan sandi yang Anda gunakan di
Membuat penampung.