Menginstal AlloyDB Omni di VM

Pilih versi dokumentasi:

Halaman ini menjelaskan cara melakukan penginstalan instance tunggal AlloyDB Omni di VM Linux mana pun yang mendukung runtime container. Jika Anda memerlukan konfigurasi multi-instance AlloyDB Omni, lihat Ketersediaan tinggi dan ketahanan data.

Sebelum memulai

Sebelum menginstal AlloyDB Omni, pastikan Anda memenuhi persyaratan berikut.

Merencanakan penginstalan

Sebelum menginstal AlloyDB Omni di VM Anda, lakukan hal berikut:

  1. Baca Merencanakan penginstalan AlloyDB Omni di VM.
  2. Baca artikel Menjalankan AlloyDB Omni dengan akses root atau tanpa akses root dan selesaikan langkah-langkah yang diperlukan untuk akses root atau tanpa akses root, bergantung pada lingkungan yang Anda pilih.

Memilih opsi download atau penginstalan

Pilih salah satu opsi download dan penginstalan berikut:

Media Lokasi download dan panduan penginstalan Deployment ke
Image Debian DockerHub (tag)
  • Docker, Podman. Anda dapat menjalankan alat containerisasi ini sebagai container di virtual machine (VM) mana pun.
Image UBI (Red Hat) Red Hat Ecosystem Catalog
  • Lingkungan Red Hat. Jalankan ini sebagai container.

Menjalankan AlloyDB Omni dengan akses root atau tanpa akses root

Anda dapat menjalankan AlloyDB Omni menggunakan Docker atau Podman. Anda dapat menjalankan mesin penampung ini sebagai rootful atau rootless. Rootful mengacu pada menjalankan Docker atau Podman sebagai pengguna root, sedangkan rootless mengacu pada menjalankan image container ini 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, maka rootful mungkin tepat untuk Anda. Jika Anda memerlukan keamanan pengguna yang tidak memiliki hak istimewa, maka rootless mungkin merupakan pilihan yang tepat.

Jika Anda memutuskan untuk menjalankan lingkungan rootful, Anda harus memutuskan cara mengelola pemetaan pengguna antara container dan mesin host Anda. Dalam praktiknya, AlloyDB Omni menjalankan proses sebagai pengguna postgres, yang memiliki UID dan GID 999. Artinya, Anda memiliki dua opsi untuk mengelola pemetaan pengguna:

  • Jangan lakukan 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 sehingga postgres 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 Anda). Artinya, Anda tidak perlu mengelola pemetaan pengguna.

(Tanpa root) Mengonfigurasi rentang sub-UID dan sub-GID

  1. Jika Anda menggunakan RHEL, CentOS, atau Fedora, ikuti langkah-langkah berikut:

    1. Instal program utilitas command line iptables dengan menjalankan perintah sudo dnf install -y iptables.
    2. Untuk versi RHEL yang lebih lama dari 9, instal paket fuse-overlayfs dengan menjalankan perintah sudo dnf install -y fuse-overlayfs.
  2. Jika image Linux Anda tidak memiliki rentang sub-UID dan sub-GID yang dikonfigurasi untuk pengguna yang tidak memiliki hak istimewa, Anda harus mengonfigurasi rentang ini untuk menjalankan AlloyDB Omni tanpa root.

  3. Jika Anda menggunakan sistem Debian, instal biner newuidmap dan newgidmap.

    apt-get install -y uidmap
    
  4. Tambahkan entri subuid untuk pengguna tanpa root Anda.

    echo "ROOTLESS_USER:SUB_UID_RANGE_START:SUB_UID_RANGE_COUNT" >> /etc/subuid
    

    Ganti variabel berikut:

    • ROOTLESS_USER: Pengguna yang ingin Anda jalankan AlloyDB Omni sebagai.
    • SUB_UID_RANGE_START: Angka yang lebih rendah dari rentang sub-UID yang ingin Anda daftarkan untuk pengguna Anda.
    • SUB_UID_RANGE_COUNT: Jumlah sub-UID yang ingin Anda daftarkan untuk pengguna Anda. Nilai ini harus minimal 999.
  5. Tambahkan entri subgid untuk pengguna tanpa root Anda.

    echo "ROOTLESS_USER:SUB_GID_RANGE_START:SUB_GID_RANGE_COUNT" >> /etc/subgid
    

    Ganti variabel berikut:

    • ROOTLESS_USER: Pengguna yang ingin Anda jalankan AlloyDB Omni sebagai.
    • SUB_GID_RANGE_START: Angka yang lebih rendah dari rentang sub-GID yang ingin Anda daftarkan untuk pengguna Anda.
    • SUB_GID_RANGE_COUNT: Jumlah sub-GID yang ingin Anda daftarkan untuk pengguna Anda. Nilai ini harus minimal 999.
  6. Jika Anda ingin instance AlloyDB Omni berjalan saat pengguna Anda tidak login, jalankan perintah berikut.

    loginctl enable-linger ROOTLESS_USER
    

    Ganti variabel berikut:

    • ROOTLESS_USER: Pengguna yang ingin Anda jalankan AlloyDB Omni sebagai.
  7. Jika Anda menggunakan Docker, jalankan perintah berikut sebagai ROOTLESS_USER:

    /usr/bin/dockerd-rootless-setuptool.sh install 
    
  8. Buka shell baru agar perubahan sub-UID dan sub-GID diterapkan.

Buat direktori tempat AlloyDB Omni menyimpan data

Jika Anda menggunakan sistem penyimpanan yang tidak hanya menjalankan AlloyDB Omni, Anda dapat membuat direktori AlloyDB Omni di sistem file yang ada di perangkat Anda. 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

  1. Buat direktori di host tempat disk akan dipasang.

    mkdir -p MOUNT_POINT
    

    Ganti variabel berikut:

    • MOUNT_POINT: Jalur direktori tingkat teratas yang harus berisi instance AlloyDB Omni Anda.
  2. 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.
  3. 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 file ext4 adalah 16 karakter.
    • PARTITION_PATH: Jalur untuk partisi disk yang digunakan untuk menyimpan data penampung.
  4. Pasang perangkat dan buat entri dalam file /etc/fstab agar disk dipasang setelah perangkat 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 file ext4 adalah 16 karakter.
    • MOUNT_POINT: Jalur direktori tingkat teratas yang harus berisi instance AlloyDB Omni Anda.
  5. Buat direktori data di sistem file khusus container.

    Rootful

    mkdir -p DATA_DIR
    

    Tanpa Akar

    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, maka pengguna ini adalah pengguna yang Anda inginkan untuk memiliki direktori.
    • ROOTLESS_GROUP: Jika Anda menggunakan lingkungan tanpa root, maka ini adalah grup yang Anda inginkan untuk memiliki direktori.

Buat 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: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

Ganti variabel berikut:

  • CONTAINER_NAME: Nama yang Anda gunakan untuk direktori di Buat direktori tempat AlloyDB Omni menyimpan data.
  • NEW_PASSWORD: Sandi yang ditetapkan untuk pengguna postgres penampung baru setelah pembuatannya.
  • DATA_DIR: Jalur direktori host tempat data Anda disimpan.
  • HOST_PORT: Port TCP di mesin host yang harus digunakan container untuk memublikasikan port 5432-nya sendiri. Untuk menggunakan port default PostgreSQL di mesin host juga, tentukan 5432.
  • IMAGE_TAG: Gunakan 16.3.0 untuk image Debian terbaru atau 16.3.0-ubi untuk image UBI terbaru.

Menghubungkan ke instance

Bergantung pada lingkungan, Anda dapat terhubung ke instance AlloyDB Omni baik secara lokal maupun dari 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:

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 container.
  • 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 memasukkan sandi akun postgres. Masukkan sandi yang Anda gunakan di Buat container.

Langkah berikutnya