Quay lại danh sách
Tin tức công nghệ

Tự Làm Kho Lưu Trữ Helm Chart Và Docker Registry Riêng Biệt Với Harbor Trên Cloud Server

3 tháng 6, 2026

Giới thiệu về Harbor và xu hướng tự chủ hạ tầng CI/CD

Trong kỷ nguyên của Cloud Native và kiến trúc Microservices, Docker và Kubernetes đã trở thành những tiêu chuẩn không thể thay thế. Để vận hành hệ thống này mượt mà, việc quản lý các bản đóng gói ứng dụng bao gồm Docker Images và Helm Charts là vô cùng quan trọng. Thông thường, các doanh nghiệp mới bắt đầu sẽ lựa chọn các dịch vụ Cloud Managed như Docker Hub, AWS ECR, hay Google Artifact Registry. Tuy nhiên, khi hệ thống lớn dần, các vấn đề về chi phí băng thông, tốc độ tải image và đặc biệt là bảo mật dữ liệu nội bộ bắt đầu xuất hiện.

Đó là lý do tại sao xu hướng tự xây dựng (Self-hosted) kho lưu trữ riêng đang trở thành lựa chọn hàng đầu của nhiều doanh nghiệp công nghệ. Và Harbor chính là giải pháp mã nguồn mở tối ưu nhất hiện nay đáp ứng hoàn hảo nhu cầu này. Được bảo trợ bởi CNCF (Cloud Native Computing Foundation), Harbor không chỉ đơn thuần là một Docker Registry mà còn là một nền tảng quản lý tài nguyên container cấp doanh nghiệp với tính năng bảo mật vượt trội.

Tại sao doanh nghiệp nên chọn Harbor?

Harbor vượt trội hơn các giải pháp registry cơ bản nhờ vào bộ tính năng được thiết kế chuyên biệt cho môi trường doanh nghiệp:

  • Quản lý đa tài nguyên: Hỗ trợ lưu trữ đồng thời cả Docker Images và Helm Charts (thông qua giao thức OCI), giúp tập trung hóa tài nguyên quản lý.
  • Bảo mật chuyên sâu: Tích hợp sẵn công cụ quét mã độc Trivy hoặc Clair, tự động phát hiện các lỗ hổng bảo mật (vulnerabilities) trong image trước khi deploy lên Kubernetes.
  • Phân quyền mạnh mẽ (RBAC): Cho phép cấu hình quyền truy cập chi tiết đến từng dự án (Project), tích hợp mượt mà với hệ thống định danh sẵn có của doanh nghiệp qua LDAP/Active Directory hoặc OIDC (Okta, Keycloak).
  • Cơ chế Replication: Hỗ trợ đồng bộ dữ liệu giữa nhiều Harbor instance khác nhau hoặc giữa Harbor với các Cloud Registry lớn, phục vụ cho bài toán Multi-cloud hoặc High Availability (HA).
  • Ký số hình ảnh (Image Signing): Tích hợp Cosign/Notary giúp xác thực nguồn gốc của image, đảm bảo không có mã độc hoặc chỉnh sửa trái phép nào được can thiệp vào quy trình CI/CD.

Yêu cầu chuẩn bị hệ thống trước khi cài đặt

Để đảm bảo Harbor hoạt động ổn định trên Cloud Server, hệ thống của bạn cần đáp ứng các tiêu chuẩn phần cứng và phần mềm tối thiểu sau:

1. Cấu hình phần cứng khuyến nghị

  • CPU: Tối thiểu 2 vCPU (Khuyến nghị 4 vCPU cho môi trường sản xuất).
  • RAM: Tối thiểu 4 GB RAM (Khuyến nghị 8 GB RAM để vận hành mượt mà tính năng quét lỗ hổng).
  • Dung lượng đĩa cứng: Tối thiểu 40 GB (Tùy thuộc vào số lượng và dung lượng các Docker Images/Helm Charts của doanh nghiệp).

2. Môi trường phần mềm và mạng

  • Hệ điều hành: Ubuntu Server 22.04 LTS hoặc các bản phân phối Linux tương đương.
  • Đã cài đặt Docker Engine phiên bản 17.06.0+ trở lên.
  • Đã cài đặt Docker Compose phiên bản v2.0.0+ trở lên.
  • Một tên miền hợp lệ (Domain Name) đã trỏ về IP của Cloud Server (ví dụ: registry.company.com).
  • Chứng chỉ SSL (Let's Encrypt hoặc SSL doanh nghiệp) để cấu hình HTTPS bắt buộc.
Lưu ý quan trọng: Vì lý do bảo mật, Docker mặc định từ chối giao tiếp với các Registry sử dụng HTTP thông thường. Do đó, việc cấu hình HTTPS với chứng chỉ SSL hợp lệ là điều kiện bắt buộc để hệ thống CI/CD vận hành ổn định.

Quy trình triển khai Harbor trên Cloud Server chi tiết

Bước 1: Tải xuống gói cài đặt Harbor

Truy cập vào trang Release của Harbor trên GitHub và tải về phiên bản Offline Installer ổn định nhất. Bản cài đặt offline đã bao gồm sẵn các Docker Images cần thiết, giúp tiết kiệm thời gian tải trong quá trình setup:wget [https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz](https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz)

Giải nén gói vừa tải xuống bằng lệnh:

tar -xvf harbor-offline-installer-v2.10.0.tgz && cd harbor

Bước 2: Cấu hình File harbor.yml

Tạo file cấu hình từ file mẫu có sẵn: cp harbor.yml.tmpl harbor.yml. Tiến hành chỉnh sửa file bằng vi hoặc nano:

  1. hostname: Điền tên miền của bạn (ví dụ: registry.company.com).
  2. http: Giữ nguyên port 80 nhưng khuyến khích đóng hoặc redirect sang https.
  3. https: Bỏ dấu comment (#) và điền đường dẫn chính xác tới file chứng chỉ SSL (certificate và private_key).
  4. harbor_admin_password: Thay đổi mật khẩu quản trị mặc định bằng một mật khẩu cực kỳ mạnh.
  5. data_volume: Thư mục lưu trữ dữ liệu của Harbor trên Cloud Server (mặc định là /data).

Bước 3: Kích hoạt các thành phần mở rộng và khởi chạy

Harbor cho phép bạn tùy chọn cài đặt các tính năng đi kèm. Để cài đặt Harbor tích hợp sẵn công cụ quét lỗ hổng Trivy, hãy chạy lệnh script sau:

./install.sh --with-trivy

Quá trình này sẽ mất vài phút để Docker Compose khởi tạo tất cả các container dịch vụ bao gồm: Harbor Core, Database (PostgreSQL), Redis, Registry, và Trivy. Khi màn hình hiển thị thông báo "✔ Harbor has been deployed and started successfully", hệ thống của bạn đã sẵn sàng.

Hướng dẫn cấu hình và sử dụng Harbor làm Docker Registry

Sau khi cài đặt thành công, hãy truy cập vào tên miền đã cấu hình qua trình duyệt và đăng nhập bằng tài khoản admin.

1. Tạo một Project mới

Mọi tài nguyên trong Harbor đều nằm trong một Project cụ thể. Chọn New Project, đặt tên là company-apps và chọn chế độ Private để đảm bảo chỉ những người có tài khoản mới có thể truy cập.

2. Đăng nhập và Push Docker Image từ máy cục bộ

Trước tiên, bạn cần đăng nhập vào Harbor từ dòng lệnh của máy tính cá nhân hoặc từ server CI/CD:

docker login registry.company.com

Tiến hành gắn tag cho Docker Image hiện tại của bạn theo đúng cấu trúc tên miền của Harbor:

docker tag my-node-app:latest [registry.company.com/company-apps/my-node-app:v1.0](https://registry.company.com/company-apps/my-node-app:v1.0)

Cuối cùng, thực hiện push image lên kho lưu trữ riêng của bạn:

docker push [registry.company.com/company-apps/my-node-app:v1.0](https://registry.company.com/company-apps/my-node-app:v1.0)

Sử dụng Harbor làm Helm Chart Registry qua giao thức OCI

Từ phiên bản 2.x trở đi, Harbor đã loại bỏ hoàn toàn Chartmuseum và chuyển sang hỗ trợ OCI (Open Container Initiative) Artifacts. Điều này có nghĩa là Helm Charts sẽ được quản lý, lưu trữ và phân quyền giống hệt như một Docker Image.

1. Đóng gói Helm Chart

Di chuyển vào thư mục chứa Helm Chart của bạn và thực hiện đóng gói:

helm package ./my-chart

Lệnh này sẽ tạo ra một file nén có định dạng my-chart-0.1.0.tgz.

2. Push Helm Chart lên Harbor

Thực hiện đăng nhập Helm vào Harbor OCI Registry:

helm registry login registry.company.com

Sử dụng lệnh push của Helm để đẩy gói chart lên project company-apps:

helm push my-chart-0.1.0.tgz oci://[registry.company.com/company-apps](https://registry.company.com/company-apps)

Bây giờ, khi bạn quay lại giao diện web của Harbor và kiểm tra project company-apps, bạn sẽ thấy cả Docker Image và Helm Chart nằm chung một nơi một cách vô cùng trực quan.

Các lưu ý quan trọng về vận hành và tối ưu hóa chi phí

Việc tự vận hành hệ thống lưu trữ đồng nghĩa với việc bạn phải chịu trách nhiệm về tính ổn định của nó. Dưới đây là các kinh nghiệm thực tế giúp hệ thống Harbor hoạt động trơn tru:

  • Cấu hình Retention Policy (Chính sách giữ lại): Trong quy trình CI/CD, mỗi commit có thể tạo ra một image mới, dẫn đến việc đĩa cứng nhanh chóng bị đầy. Hãy thiết lập quy tắc chỉ giữ lại 5 hoặc 10 image mới nhất cho mỗi repository.
  • Chạy Garbage Collection (Dọn rác tự động): Khi bạn xóa một image trên giao diện, Harbor chỉ xóa tham chiếu chứ không xóa file vật lý trên đĩa. Hãy lên lịch (Schedule) chạy Garbage Collection định kỳ hàng tuần để giải phóng không gian lưu trữ thực tế.
  • Tối ưu hóa Storage Backend: Nếu dung lượng trên Cloud Server bị giới hạn, hãy cấu hình Harbor lưu trữ data trực tiếp lên các dịch vụ Object Storage (như AWS S3, Cloudflare R2 hoặc các giải pháp S3-compatible của các nhà cung cấp Cloud địa phương). Điều này giúp hệ thống lưu trữ có khả năng mở rộng vô hạn với chi phí cực rẻ.

Kết luận

Tự xây dựng một hệ thống kho lưu trữ riêng biệt cho Docker Images và Helm Charts bằng Harbor là một bước đi chiến lược giúp doanh nghiệp làm chủ hoàn toàn hạ tầng công nghệ của mình. Nó giải quyết triệt để bài toán bảo mật dữ liệu, tối ưu hóa tốc độ phân phối ứng dụng nội bộ và cắt giảm chi phí vận hành đáng kể về lâu dài. Với bài hướng dẫn toàn diện này, chúc các bạn triển khai thành công hệ thống Registry chuẩn doanh nghiệp cho tổ chức của mình.

Tự Làm Kho Lưu Trữ Helm Chart Và Docker Registry Riêng Biệt Với Harbor Trên Cloud Server | DPTCloud