Mở Đầu
Trong bài viết này, chúng ta sẽ tiếp tục với Chuỗi Series [Harbor]: Phần 2 Cài Đặt Và Cấu Hình Harbor được xây dựng trên môi trường Lab, tập trung vào việc triển khai Docker Registry – thành phần không thể thiếu trong quá trình lưu trữ và quản lý Docker Images cho các dự án. Khi triển khai ứng dụng trên Kubernetes (K8S), việc sử dụng Docker Registry là điều bắt buộc để lưu trữ và phân phối các image của container.
Docker Registry – Giải pháp lưu trữ đa dạng
Tùy thuộc vào đặc thù của từng công ty và hệ thống, bạn có thể chọn giải pháp Docker Registry phù hợp. Với các hệ thống trên cloud, bạn hoàn toàn có thể tận dụng những dịch vụ Docker Registry đã được cung cấp sẵn từ các nhà cung cấp dịch vụ cloud như AWS, GCP, hoặc Azure. Tuy nhiên, nếu bạn đang làm việc với hệ thống On-Premise, việc tự xây dựng một Docker Registry riêng sẽ là giải pháp phù hợp nhất.
Các lựa chọn Docker Registry phổ biến
Hiện nay, có rất nhiều giải pháp Docker Registry cho bạn lựa chọn, tùy thuộc vào nhu cầu và khả năng tích hợp với các hệ thống hiện có. Dưới đây là một số lựa chọn phổ biến:
- Gitlab Registry: Đi kèm với bộ GitLab, giải pháp này rất tiện lợi nếu bạn đã sử dụng GitLab cho quản lý mã nguồn. GitLab Registry tích hợp chặt chẽ với CI/CD, giúp bạn dễ dàng quản lý image và pipeline phát triển.
- Private Docker Registry: Giải pháp Docker Registry cơ bản và dễ triển khai nhất. Nó cung cấp khả năng lưu trữ và quản lý Docker Image tại chỗ, giúp kiểm soát và bảo mật tốt hơn cho hệ thống nội bộ.
- Harbor Registry: Đây là một trong những giải pháp Docker Registry mạnh mẽ nhất hiện nay. Harbor cung cấp nhiều tính năng nâng cao như quét lỗ hổng bảo mật (vulnerability scanning), kiểm tra tính toàn vẹn và phân quyền dựa trên vai trò (RBAC). Đây là lựa chọn tuyệt vời cho các doanh nghiệp yêu cầu sự bảo mật và kiểm soát chặt chẽ đối với các Docker Image của mình.
Chuẩn Bị Tài Nguyên Cài Đặt
Để cài đặt và cấu hình harbor, cần chuẩn bị máy chủ/ảo hóa yêu cầu dưới đây:
Tài nguyên | OS | Tối thiểu | Khuyến nghị |
CPU |
Redhat/Centos/Ubuntu |
2 CPU | 4 CPU |
Mem | 4 GB | 8 GB | |
Disk | 40 GB | 160 GB |
Sơ Đồ Thực Hiện Lab Harbor
Cài Đặt Và Cấu Hình Harbor
Cài Đặt Docker
Để cài đặt và cấu hình harbor, cần thực hiện cài đặt docker đầu tiên, các bước cài đặt:
Lệnh cài đặt:
sudo yum install -y yum-utils
sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
Cài Đặt Docker Compose
Để cài đặt và cấu hình harbor, cần thực hiện cài đặt docker compose – là thành phần bắt buộc để có thể qua bước tiếp theo cài đặt harbor, các bước thực hiện:
Lệnh cài đặt:
curl -SL https://github.com/docker/compose/releases/download/v2.29.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo systemctl restart docker
sudo systemctl enable docker
Tải Harbor
wget https://github.com/goharbor/harbor/releases/download/v2.1.4/harbor-offline-installer-v2.1.4.tgz
tar xvzf harbor-offline-installer*.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml
Cài Đặt OpenSSL
Để cấu hình HTTPS, bạn phải tạo chứng chỉ SSL. Bạn có thể sử dụng các chứng chỉ được ký bởi một CA bên thứ ba đáng tin cậy, hoặc bạn có thể sử dụng các chứng chỉ tự ký. Phần này mô tả cách sử dụng OpenSSL để tạo một CA, và cách sử dụng CA của bạn để ký một chứng chỉ máy chủ và một chứng chỉ khách hàng. Bạn cũng có thể sử dụng các nhà cung cấp CA khác, chẳng hạn như Let’s Encrypt.
Tạo CA Certificate
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj “/C=CN/ST=HCM/L=HCM/O=VSS/OU=IT/CN=vsslab.com” \
-key ca.key \
-out ca.crt
Tạo Server Certificate
openssl genrsa -out vsslab.com.key 4096
openssl req -sha512 -new \
-subj “/C=CN/ST=HCM/L=HCM/O=VSS/OU=IT/CN=vsslab.com” \
-key vsslab.com.key \
-out vsslab.com.csr
Tạo x509 v3 extension làm SAN
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=vsslab.com
DNS.2=vsslab
DNS.3=harbor
DNS.4=harbor.vsslab.com
IP.1=10.10.3.160
EOF
Sử dụng v3.ext file để tạo certificate cho Harbor
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in vsslab.com.csr \
-out vsslab.com.crt
Convert vsslab.com.crt tới vsslab.com.cert, sử dụng cho Docker
openssl x509 -inform PEM -in vsslab.com.crt -out vsslab.com.cert
Sao chép server certificate, key và CA files vào Docker certificates
mkdir -p /etc/docker/certs.d/harbor.vsslab.com
cp vsslab.com.cert /etc/docker/certs.d/harbor.vsslab.com/
cp vsslab.com.key /etc/docker/certs.d/harbor.vsslab.com/
cp ca.crt /etc/docker/certs.d/harbor.vsslab.com/
Thực hiện restart Docker
systemctl restart docker
Thay đổi certificate và cấu hình
Thực hiện Deploy Harbor
./install
Kiểm tra cert harbor
Cài đặt cert cho server
cp vsslab.com.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust extract
Kiểm tra kết nối HTTPS
docker login harbor.vsslab.com
Thực hiện login tới web quản trị
https:<IP/FQDN>
Tài khoản: admin/Harbor12345
Cấu hình Harbor
Tạo project
Login vào Harbord bằng giao diện web: https://<FQDN/IP> và đăng nhập tài khoản admin
Thực hiện tạo project tên bmc
Tạo Endpoint
Tạo một endpoint tại Administration -> Registry
Vậy là chúng ta đã hoàn thành việc cài đặt, cấu hình cơ bản trên Harbor,
Ở phần tiếp theo, chúng ta sẽ đi tiếp chuỗi Series [Harbor] cho Cấu Hình 2 Harbor Replicate vùng DMZ và Internal
Mời các bạn đón theo dõi cập nhật mới nhé!