Mengatur Red Hat Quay Registry di Linux menggunakan Podman
Red Hat Quay adalah registri kontainer berkualitas perusahaan yang diubah mereknya setelah akuisisi CoreOS Quay Enterprise oleh Red Hat. Registri Red Hat Quay digunakan untuk membangun dan menyimpan kontainer, yang kemudian diterapkan ke server di seluruh platform kontainer perusahaan Anda seperti Kubernetes, OpenShift Container Platform, dan lain-lain.
Periksa panduan Operator untuk instalasi di OpenShift:
Pasang Proyek Quay Registry di OpenShift Dengan Operator
Fitur dari Registri Dermaga
Fitur utama dari Quay meliputi:
- Desain ketersediaan tinggi
- Dukungan untuk Geo-replikasi
- Dukungan untuk Docker v2, skema 2 (multiarsitektur)
- Integrasi terbaik dengan pipeline Continuous Integration
- Dukungan untuk rotasi log kustom
- Dukungan untuk berbagai metode Autentikasi, akses, dan penyimpanan
- Pemindaian otomatis untuk kerentanan keamanan
Panduan ini akan membahas langkah-langkah yang digunakan untuk mengatur Quay Registry instance tunggal. Pengaturan ini bertujuan untuk tujuan POC dan tidak dimaksudkan untuk digunakan sebagai instalasi produksi. Untuk registry Quay yang sangat tersedia, konsultasikan dokumentasi resmi Red Hat.
Komponen Red Hat Quay
Tiga komponen inti dari pengaturan Simple Quay adalah:
- Database: Digunakan oleh Red Hat Quay sebagai penyimpanan metadata utama (bukan untuk penyimpanan gambar).
- Redis: Digunakan sebagai penyimpanan kunci/nilai untuk menyediakan kejadian secara waktu nyata.
- Quay (registry kontainer): Menjalankan kontainer quay sebagai layanan, yang terdiri dari beberapa komponen di dalam pod.
Persyaratan Minimum Perangkat Keras
Pengaturan ini membutuhkan mesin fisik atau virtual dengan persyaratan perangkat keras minimum berikut.
- Memori: 4 GB
- CPU: 2
- Ruang Disk: 30GB
- Setidaknya 10GB ruang disk untuk penyimpanan Docker (untuk menjalankan 3 kontainer)
- Setidaknya 10GB ruang disk untuk penyimpanan lokal Quay (CEPH atau penyimpanan lokal lainnya mungkin memerlukan memori lebih besar)
Berikut adalah langkah-langkah yang digunakan untuk menginstal dan mengonfigurasi Red Hat Quay Registry pada distribusi Linux berbasis CentOS/RHEL/Rocky/AlmaLinux/Debian/Ubuntu dan Arch.
Langkah 1: Pasang Podman
Podman digunakan untuk menjalankan kontainer Quay, pasang di sistem Anda menggunakan panduan kami di bawah ini.
# Debian-based systems
sudo apt update && sudo apt install podman
# RHEL based systems
sudo yum -y install podmanKonfirmasi pemasangan dengan memeriksa versi Podman:
$ podman --version
podman version 4.9.3Langkah 2: Atur autentikasi registry.redhat.io
Untuk bisa menarik image container Quay, Anda perlu mengatur autentikasi ke registry.redhat.io. Ikuti prosedur Autentikasi Red Hat Container Registry. Pada versi Red Hat Quay yang lebih lama, image tersebut di-host di Quay.io.
Jalankan perintah berikut untuk masuk ke registri:
sudo podman login registry.redhat.ioAnda akan diminta untuk memasukkan username dan password Anda.
Username: <your-redhat-account-username>
Password: <your-redhat-account-password>
Login Succeeded!Langkah 3: Siapkan Database PostgreSQL
Quay menggunakan database untuk menyimpan metadata. PostgreSQL akan digunakan dalam artikel ini.
Buat direktori untuk data PostgreSQL Quay.
sudo mkdir -p ~/quay/postgres
Jalankan perintah berikut untuk mengatur izin yang sesuai.
sudo setfacl -m u:26:-wx ~/quay/postgresPerintah di bawah ini digunakan untuk memulai kontainer Postgres, dengan menentukan nama pengguna, kata sandi, nama database, dan port, serta definisi volume untuk data database:
sudo podman run -d --name postgresql-quay \
-e POSTGRESQL_USER=quay \
-e POSTGRESQL_PASSWORD=Str0ngQuayPass0rd \
-e POSTGRESQL_DATABASE=quay \
-e POSTGRESQL_ADMIN_PASSWORD=Str0ngAdminPass0rd \
-p 5432:5432 \
-v ~/quay/postgres:/var/lib/pgsql/data:Z \
registry.redhat.io/rhel8/postgresql-16Periksa status kontainer:
$ sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f9e6943b7ec registry.redhat.io/rhel8/postgresql-16:latest run-postgresql 57 seconds ago Up 57 seconds 0.0.0.0:5432->5432/tcp postgresql-quayPasang modul Postgres pg_trgm yang diperlukan untuk kontainer Quay.
sudo podman exec -it postgresql-quay /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U postgres'Langkah 4: Atur Server Redis
Red Hat Quay menggunakan Redis sebagai penyimpanan kunci-nilai untuk log builder langsung. Kami akan menyebarkan kontainer Redis untuk Red Hat Quay menggunakan Podman.
sudo podman run -d --name redis-quay \
-p 6379:6379 \
-e REDIS_PASSWORD=StrongRedisPassw0rd \
registry.redhat.io/rhel8/redis-6Periksa apakah kontainer Redis berhasil dijalankan
$ sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f9e6943b7ec registry.redhat.io/rhel8/postgresql-16:latest run-postgresql 4 minutes ago Up 4 minutes 0.0.0.0:5432->5432/tcp postgresql-quay
2b1e65c3fe6f registry.redhat.io/rhel8/redis-6:latest run-redis 7 seconds ago Up 8 seconds 0.0.0.0:6379->6379/tcp redis-quayLangkah 5: Menyebarkan Red Hat Quay dalam Kontainer
Sebelum kita dapat menjalankan Quay, pastikan persyaratan berikut terpenuhi:
- Database Red Hat Quay sedang berjalan.
- Server Redis sedang berjalan.
- Konfigurasikan endpoint Red Hat Quay (FQDN). Dalam contoh ini kami menggunakan quay.computingforgeeks.com
Jika Anda tidak memiliki server DNS, tambahkan alamat IP dan nama host lokal ke /etc/hosts Anda
$ sudo vim /etc/hosts
192.168.1.25 quay.example.comBuat direktori lokal yang akan menyimpan gambar registry
sudo mkdir ~/quay/storage
sudo setfacl -m u:1001:-wx ~/quay/storageBuat direktori untuk menyimpan bundel konfigurasi Red Hat Quay:
sudo mkdir ~/quay/config
Kontainer Red Hat Quay membutuhkan file konfigurasi untuk memulai. Buat file konfigurasi minimal untuk Quay.
sudo vim ~/quay/config/config.yamlTambahkan dan ubah konten berikut. Di sini kami menggunakan hostname quay.example.com seperti yang dikonfigurasi di file /etc/hosts.
BUILDLOGS_REDIS:
host: quay.example.com
password: StrongRedisPassw0rd
port: 6379
CREATE_NAMESPACE_ON_PUSH: true
DATABASE_SECRET_KEY: a8c2744b-7004-4af2-bcee-e417e7bdd235
DB_URI: postgresql://quay:Str0ngQuayPass0rd@quay.example.com:5432/quay
DISTRIBUTED_STORAGE_CONFIG:
default:
- LocalStorage
- storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- default
FEATURE_MAILING: false
SECRET_KEY: e9bd34f4-900c-436a-979e-7530e5d74ac8
SERVER_HOSTNAME: quay.example.com
SETUP_COMPLETE: true
USER_EVENTS_REDIS:
host: quay.example.com
password: StrongRedisPassw0rd
port: 6379
FEATURE_USER_INITIALIZE: true
FEATURE_USER_CREATION: false
SUPER_USERS:
- quayadminMulai kontainer registri Quay dengan menjalankan perintah berikut:
sudo podman run -d -p 80:8080 -p 443:8443 \
--name=quay \
-v ~/quay/config:/conf/stack:Z \
-v ~/quay/storage:/datastorage:Z \
registry.redhat.io/quay/quay-rhel8:v3.11Untuk melihat daftar kontainer yang sedang berjalan, jalankan perintah berikut:
$ sudo podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f9e6943b7ec registry.redhat.io/rhel8/postgresql-16:latest run-postgresql 10 hours ago Up 10 hours 0.0.0.0:5432->5432/tcp postgresql-quay
2b1e65c3fe6f registry.redhat.io/rhel8/redis-6:latest run-redis 10 hours ago Up 10 hours 0.0.0.0:6379->6379/tcp redis-quay
cc0dcad6ad08 registry.redhat.io/quay/quay-rhel8:v3.11 registry 8 seconds ago Up 8 seconds 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp quayAnda dapat memeriksa log startup kontainer menggunakan:
sudo podman logs quayLangkah 6: Menggunakan Red Hat Quay
Buka semua port yang diperlukan di firewall:
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reloadBuat pengguna baru dengan username, kata sandi, email, dan token akses dengan menjalankan perintah curl berikut:
curl -X POST -k http://quay.example.com/api/v1/user/initialize --header 'Content-Type: application/json' \
--data '{ "username": "quayadmin", "password":"Str0ngAdminPassw0rd", "email": "[email ", "access_token": true}'Di mana :
- quay.example.com adalah nama host server Quay
- quayadmin adalah nama pengguna
- Str0ngAdminPassw0rd adalah kata sandi pengguna admin
- [email adalah alamat email pengguna admin
Jika berhasil, Anda akan mendapatkan sebuah objek dengan nama pengguna, email, dan kata sandi yang terenkripsi. Lihat contohnya:
{"access_token":"FAPE5IUZUV607OSJY4OKA2MUD2Z6IZQ1C5GNBCOI","email":"[email ","encrypted_password":"cGzgFGyVT0zPuvhUEMha/bk+Kd7JUT7+JJ3lw6R1Ps4UF5jONA4lOcMjqocIkqUtk3CFf70m/ywe0BGEgQPFsw==","username":"quayadmin"}Buka peramban web Anda dan akses antarmuka pengguna registri Red Hat Quay di http://quay.example.com. Ganti domain dengan hostname server Anda yang benar seperti yang dipetakan di server DNS atau file /etc/hosts. FQDN yang sama harus dikonfigurasi di file config.yaml.
Masuk dengan nama pengguna yang dibuat dan kata sandinya.
Anda dapat membuat organisasi baru untuk repositori Anda di bawah “Buat Organisasi Baru“
Beri nama organisasi dan klik «Buat Organisasi»
Dalam organisasi, Anda sekarang dapat membuat repositori menggunakan tombol «Buat Repositori Baru».
Beri nama pada repositori dan pilih apakah bersifat privat atau publik. Anda juga dapat menginisialisasinya dengan Dockerfile atau menautkannya dengan repositori Git.
Repositori Anda siap digunakan.
Kunjungi halaman dokumentasi resmi Quay untuk cara menggunakannya.
Lebih banyak membaca
- Pasang dan Gunakan Docker Registry di Fedora
- Cara Menyiapkan Docker Private Registry di Ubuntu
- Instal dan Konfigurasi Docker Registry di Rocky/AlmaLinux






