Cài đặt Red Hat Quay Registry trên Linux bằng Podman
Red Hat Quay là một kho chứa container chất lượng doanh nghiệp, được đổi tên sau khi Red Hat mua lại CoreOS Quay Enterprise. Kho chứa Red Hat Quay được sử dụng để xây dựng và lưu trữ các container, sau đó được triển khai lên các máy chủ trên các nền tảng container doanh nghiệp của bạn như Kubernetes, OpenShift Container Platform, v.v.
Kiểm tra hướng dẫn của Nhà cung cấp để cài đặt trên OpenShift:
Cài đặt Project Quay Registry trên OpenShift bằng Operator
Các tính năng của Quay Registry
Các tính năng nổi bật của Quay bao gồm:
- Thiết kế khả dụng cao
- Hỗ trợ nhân bản địa lý
- Hỗ trợ Docker v2, schema 2 (đa kiến trúc)
- Tích hợp tốt nhất với các pipeline Tích hợp liên tục
- Hỗ trợ xoay vòng nhật ký tùy chỉnh
- Hỗ trợ nhiều phương thức xác thực, truy cập và hệ thống lưu trữ khác nhau
- Quét tự động để phát hiện các lỗ hổng bảo mật
Hướng dẫn này sẽ thảo luận về các bước để thiết lập một phiên bản Quay Registry đơn lẻ. Cài đặt này dành cho mục đích chứng minh khái niệm (POC) và không nhằm sử dụng như một cài đặt sản xuất. Để có Quay registry khả dụng cao, hãy tham khảo tài liệu chính thức của Red Hat.
Các thành phần của Red Hat Quay
Ba thành phần cốt lõi của cài đặt Simple Quay là:
- Cơ sở dữ liệu: Được Red Hat Quay sử dụng như kho lưu trữ siêu dữ liệu chính (không dùng để lưu trữ hình ảnh).
- Redis: Được sử dụng như một kho lưu trữ khóa/giá trị để cung cấp các sự kiện thời gian thực.
- Quay (đăng ký container): Chạy container quay như một dịch vụ, bao gồm nhiều thành phần trong pod.
Cài đặt Yêu cầu Phần cứng Tối thiểu
Cài đặt này yêu cầu một máy vật lý hoặc ảo với các yêu cầu phần cứng tối thiểu sau.
- Bộ nhớ: 4 GB
- CPU: 2
- Dung lượng đĩa: 30GB
- Ổ đĩa trống ít nhất 10GB để lưu Docker (để chạy 3 container)
- Ít nhất 10GB dung lượng ổ đĩa để lưu trữ Quay cục bộ (CEPH hoặc bộ lưu trữ cục bộ khác có thể yêu cầu nhiều bộ nhớ hơn)
Dưới đây là các bước để cài đặt và cấu hình Red Hat Quay Registry trên các bản phân phối Linux dựa trên CentOS/RHEL/Rocky/AlmaLinux/Debian/Ubuntu và Arch.
Bước 1: Cài đặt Podman
Podman được sử dụng để chạy các container Quay, cài đặt nó trên hệ thống của bạn bằng các hướng dẫn dưới đây của chúng tôi.
# Debian-based systems
sudo apt update && sudo apt install podman
# RHEL based systems
sudo yum -y install podmanXác nhận cài đặt bằng cách kiểm tra phiên bản của Podman:
$ podman --version
podman version 4.9.3Bước 2: Thiết lập xác thực registry.redhat.io
Để có thể kéo các hình ảnh container từ Quay, bạn cần thiết lập xác thực với registry.redhat.io. Hãy làm theo quy trình Xác thực Red Hat Container Registry. Trong các phiên bản Red Hat Quay cũ hơn, các hình ảnh được lưu trữ trên Quay.io.
Chạy lệnh sau để đăng nhập vào registry:
sudo podman login registry.redhat.ioBạn sẽ nhận được một thông báo để nhập tên đăng nhập và mật khẩu của mình.
Username: <your-redhat-account-username>
Password: <your-redhat-account-password>
Login Succeeded!Bước 3: Thiết lập cơ sở dữ liệu PostgreSQL
Quay sử dụng cơ sở dữ liệu để lưu trữ siêu dữ liệu. Bài viết này sẽ sử dụng PostgreSQL.
Tạo thư mục cho dữ liệu PostgreSQL của Quay.
sudo mkdir -p ~/quay/postgres
Chạy các lệnh sau để thiết lập quyền thích hợp.
sudo setfacl -m u:26:-wx ~/quay/postgresCác lệnh dưới đây được sử dụng để khởi động container Postgres, chỉ định tên người dùng, mật khẩu, tên cơ sở dữ liệu và cổng, cùng với định nghĩa volume cho dữ liệu cơ sở dữ liệu:
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-16Kiểm tra trạng thái container:
$ 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-quayCài đặt module Postgres pg_trgm cần thiết cho container Quay.
sudo podman exec -it postgresql-quay /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U postgres'Bước 4: Thiết lập Máy chủ Redis
Red Hat Quay sử dụng Redis như một kho lưu trữ key-value cho các nhật ký của trình tạo trực tiếp. Chúng ta sẽ triển khai container Redis cho Red Hat Quay bằng Podman.
sudo podman run -d --name redis-quay \
-p 6379:6379 \
-e REDIS_PASSWORD=StrongRedisPassw0rd \
registry.redhat.io/rhel8/redis-6Kiểm tra xem container Redis đã khởi động thành công chưa
$ 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-quayBước 5: Triển khai Red Hat Quay trong Container
Trước khi triển khai Quay, hãy đảm bảo rằng các điều kiện tiên quyết sau đã được đáp ứng:
- Cơ sở dữ liệu Red Hat Quay đang chạy.
- Máy chủ Redis đang chạy.
- Cấu hình điểm cuối Red Hat Quay (FQDN). Trong ví dụ này, chúng tôi đang sử dụng quay.computingforgeeks.com
Nếu bạn không có máy chủ DNS, hãy thêm địa chỉ IP và tên máy chủ cục bộ vào /etc/hosts của bạn
$ sudo vim /etc/hosts
192.168.1.25 quay.example.comTạo một thư mục cục bộ để lưu trữ các hình ảnh đăng ký
sudo mkdir ~/quay/storage
sudo setfacl -m u:1001:-wx ~/quay/storageTạo một thư mục để lưu trữ gói cấu hình Red Hat Quay:
sudo mkdir ~/quay/config
Container Red Hat Quay yêu cầu tệp cấu hình để khởi động. Hãy tạo một tệp cấu hình tối thiểu cho Quay.
sudo vim ~/quay/config/config.yamlThêm và chỉnh sửa các nội dung sau. Ở đây chúng tôi đang sử dụng tên máy chủ quay.example.com như được cấu hình trong tập tin /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:
- quayadminBắt đầu container đăng ký Quay bằng cách chạy các lệnh sau:
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.11Để liệt kê các container đang chạy, hãy chạy các lệnh sau:
$ 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 quayBạn có thể kiểm tra nhật ký khởi động của container bằng cách:
sudo podman logs quayBước 6: Sử dụng Red Hat Quay
Mở tất cả các cổng cần thiết trong tường lửa:
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reloadTạo một người dùng mới với tên đăng nhập, mật khẩu, email và mã truy cập bằng cách chạy các lệnh curl sau:
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}'Ở đâu :
- quay.example.com là tên máy chủ của Quay
- quayadmin là tên đăng nhập
- Str0ngAdminPassw0rd là mật khẩu người dùng quản trị
- [email là địa chỉ email của người dùng quản trị
Nếu thành công, bạn sẽ nhận được một đối tượng với tên người dùng, email và mật khẩu đã được mã hóa. Xem ví dụ:
{"access_token":"FAPE5IUZUV607OSJY4OKA2MUD2Z6IZQ1C5GNBCOI","email":"[email ","encrypted_password":"cGzgFGyVT0zPuvhUEMha/bk+Kd7JUT7+JJ3lw6R1Ps4UF5jONA4lOcMjqocIkqUtk3CFf70m/ywe0BGEgQPFsw==","username":"quayadmin"}Mở trình duyệt web của bạn và truy cập giao diện người dùng của registry Red Hat Quay tại http://quay.example.com. Thay thế tên miền bằng hostname máy chủ chính xác của bạn như được ánh xạ trong máy chủ DNS hoặc tệp /etc/hosts. Cùng một FQDN cũng nên được cấu hình trong tệp config.yaml.
Đăng nhập bằng tên người dùng đã tạo và mật khẩu của nó.
Bạn có thể tạo một tổ chức mới cho các kho lưu trữ của mình dưới «Tạo Tổ Chức Mới»
Đặt tên cho tổ chức và nhấn “Tạo Tổ Chức”
Trong tổ chức, bạn hiện có thể tạo kho lưu trữ bằng cách sử dụng nút “Tạo Kho Lưu Trữ Mới”.
Đặt tên cho kho lưu trữ và chọn quyền riêng tư hoặc công khai. Bạn cũng có thể khởi tạo nó với Dockerfile hoặc liên kết với kho Git.
Kho lưu trữ của bạn đã sẵn sàng để sử dụng.
Truy cập các trang tài liệu chính thức của Quay để biết cách sử dụng.
Đọc thêm,
- Cài đặt và sử dụng Docker Registry trên Fedora
- Cách Cài Đặt Docker Private Registry trên Ubuntu
- Cài đặt và Cấu hình Docker Registry trên Rocky/AlmaLinux






