Giới thiệu

MSc | AI/ML | Cyber Security | DevOps | ITIL | Compliance | Cloud | System | Virtualization | DBA | SAN...

Security/DevSecOps tại VietSunshine CyberSecurity

System & Network Engineer tại HQG

Từng học Thạc sĩ khoa học máy tính - Đại học quốc tế Sài Gòn

Từng học Đại học công nghệ thông tin - ĐHQG TPHCM

Sống tại Hồ Chí Minh, Việt Nam

Đến từ Lộc Ninh, Bình Phước, Việt Nam

Xem nhiều hơn

Bài mới

Series [K8S]: Phần 3 Install Rancher on Kubernetes
Series [K8S]: Phần 2 Install Ceph Cluster Kubernetes
Series [K8S]: Phần 1 Install Kubernetes Cluster v1.28
Series [CA]: Phần 2 Create SAN Certificate
Linux Route Two Card Network
Resize LVM Disk On Redhat
Series [Powershell]: Phần 1 Encrypting Script Using AES
Series [SIEM]: Phần 05 Postman With Qradar API
Series [CA]: Phần 1 Install CA Windows Server

Chuỗi Series [Harbor]: Phần 1 Giới Thiệu Harbor

Giới Thiệu Harbor

Harbor là gì?

Harbor là một giải pháp Docker Registry mã nguồn mở mạnh mẽ, được thiết kế để bảo vệ các artifact (các thành phần của ứng dụng như container image, Helm chart, v.v.) bằng cách áp dụng các chính sách kiểm soát truy cập dựa trên vai trò (RBAC) và quét lỗ hổng bảo mật. Không chỉ vậy, Harbor còn hỗ trợ ký các Docker image để đảm bảo chúng là nguồn đáng tin cậy, giúp bạn luôn yên tâm về tính toàn vẹn của những gì mình triển khai.

Tại sao nên chọn Harbor?

Harbor đã chính thức phát hành từ Cloud Native Computing Foundation (CNCF) – một tổ chức lớn trong cộng đồng mã nguồn mở, điều này chứng minh rằng Harbor không chỉ là một công cụ thông thường mà còn mang đến sự tin cậy, tính bảo mật và hiệu suất cao. Với Harbor, bạn có thể đảm bảo việc quản lý và triển khai artifact một cách nhất quán và an toàn trên cả nền tảng KubernetesDocker, bất kể là trên cloud hay hệ thống On-Premise.

Harbor hoạt động như thế nào?

Harbor được triển khai như một tập hợp các container Docker, do đó, bạn có thể dễ dàng cài đặt và triển khai nó trên bất kỳ hệ điều hành Linux nào có hỗ trợ Docker. Điều kiện tiên quyết chỉ đơn giản là máy chủ của bạn cần được cài đặt DockerDocker Compose. Sau khi cài đặt, Harbor sẽ giúp bạn quản lý Docker image không chỉ dễ dàng mà còn an toàn hơn bao giờ hết.

Chuỗi Series [Harbor]: Phần 1 Giới thiệu Harbor

Vòng Đời Của Container Và Images Trong Harbor

  • Registry:

    • Là kho lưu trữ các image của container. Đây là nơi quản lý, phân phối và áp dụng các chính sách RBAC (Role-Based Access Control) cho việc truy cập và sử dụng images.
  • Quy trình Push:

    • Push (Đẩy): Sau khi image được xây dựng (build) từ Dockerfile, nó sẽ được tagcommit.
    • Sau đó, image có thể được save và đẩy (push) lên Registry để lưu trữ. Image có thể được lưu dưới dạng tar archive trước khi push lên Registry.
  • Quy trình Pull:

    • Pull (Kéo): Khi cần sử dụng, image từ Registry sẽ được load về hệ thống.
    • Image này sẽ được chạy (run) để tạo thành container, với các hành động như start, stop, restart được thực hiện.
    • Quy trình này cũng cho phép lưu lại container dưới dạng tar archive để sử dụng hoặc lưu trữ về sau.

Các Thành Phần Chính Của Harbor

Thành phần Mô tả
Postgresql Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở. Trong Harbor, PostgreSQL được sử dụng để lưu trữ dữ liệu cấu hình và quản lý thông tin của hệ thống như tài khoản người dùng, quyền truy cập và thông tin về các artifacts (images, chart, v.v.).
Redis Hệ thống lưu trữ dữ liệu trên bộ nhớ đệm (cache) mã nguồn mở, được sử dụng để tối ưu hóa hiệu suất bằng cách giảm tải công việc cho cơ sở dữ liệu chính. Harbor sử dụng Redis để lưu trữ các phiên làm việc (session) và các thông tin khác nhằm cải thiện tốc độ phản hồi.
Beego Framework viết bằng Go dành cho việc phát triển ứng dụng web. Harbor sử dụng Beego để quản lý giao diện lập trình ứng dụng (API) của hệ thống, cung cấp nền tảng cho các tính năng của Harbor thông qua các API giao tiếp với người dùng và các dịch vụ khác.
Distribution/Distribution Thành phần của Docker Registry, một thành phần quan trọng trong Harbor, giúp quản lý và phân phối các artifacts như container images. Thành phần này giúp đảm bảo rằng các hình ảnh Docker có thể được lưu trữ và phân phối đến các máy chủ khác một cách an toàn và hiệu quả.
Helm Công cụ quản lý package cho Kubernetes. Trong Harbor, Helm được sử dụng để quản lý các chart, cho phép người dùng lưu trữ, chia sẻ và triển khai các ứng dụng trên Kubernetes thông qua các Helm chart.
Swagger-ui Công cụ hiển thị giao diện đồ họa cho API, cho phép người dùng tương tác trực tiếp với API mà không cần phải sử dụng dòng lệnh. Harbor sử dụng Swagger-UI để cung cấp cho người dùng và nhà phát triển một công cụ trực quan để khám phá và thử nghiệm API của Harbor.

Kiến Trúc Harbor

Chuỗi Series [Harbor]: Phần 1 Giới thiệu Harbor

Kiến trúc tổng quan của hệ thống Harbor, một registry quản lý container images, tích hợp với nhiều dịch vụ khác nhau để cung cấp các tính năng quản lý, bảo mật, và phân phối images. Dưới đây là mô tả chi tiết các thành phần trong kiến trúc này:

Consumers

  • Web Portal: Cung cấp giao diện người dùng để quản lý các tác vụ như quản lý dự án, người dùng, chính sách, và xem logs.
  • Kubelet: Sử dụng cho các tác vụ tương tác với Kubernetes.
  • Helm: Để quản lý và triển khai các ứng dụng trong Kubernetes dưới dạng Helm charts.
  • Docker/notary client: Sử dụng Docker client để đẩy/pull các images và notary client để quản lý chữ ký tin cậy.

Identity Providers

  • AD/LDAP: Hỗ trợ tích hợp với Active Directory (AD) hoặc Lightweight Directory Access Protocol (LDAP) để xác thực người dùng.
  • OIDC: OpenID Connect, một giao thức xác thực dựa trên OAuth 2.0, cung cấp cơ chế Single Sign-On (SSO).

Fundamental Services

Các dịch vụ chính trong Harbor bao gồm:

  • API Routing: Định tuyến các API yêu cầu đến các dịch vụ tương ứng.
  • Core:
    • Authentication & Authorization: Dịch vụ xác thực và cấp quyền.
    • Config Management: Quản lý cấu hình của hệ thống.
    • Replication: Tính năng sao chép images giữa các registry khác nhau.
    • Namespace Management: Quản lý tên miền và các dự án (projects).
    • Trust Handler: Quản lý các chữ ký tin cậy của images.
  • Chart Service: Dịch vụ quản lý các Helm charts.
  • Scanner: Dịch vụ quét bảo mật cho các container images.
  • Job Service: Quản lý các tác vụ định kỳ hoặc theo yêu cầu.
  • GC Controller: Dịch vụ dọn dẹp rác (Garbage Collector) cho các images và artifacts không còn sử dụng.
  • Logs: Ghi lại và lưu trữ logs hoạt động của hệ thống.

Data Access Layer

  • k-v storage: Dịch vụ lưu trữ dữ liệu dạng khóa-giá trị sử dụng Redis.
  • Local/Remote Storage: Dịch vụ lưu trữ dữ liệu cục bộ hoặc từ xa (hỗ trợ block, file, object).
  • SQL Database: Sử dụng PostgreSQL để lưu trữ dữ liệu quan hệ của hệ thống.
3rd Party Services
  • Docker Registry: Sử dụng để lưu trữ container images.
  • Chart Museum: Lưu trữ và quản lý Helm charts.
  • Clair: Dịch vụ quét lỗ hổng bảo mật trong container images.
  • Notary: Cung cấp chữ ký số và đảm bảo tính tin cậy cho images.

Packaging

  • Docker: Cung cấp các tùy chọn cài đặt offline và online cho Docker.
  • K8s: Hỗ trợ triển khai Harbor bằng Helm chart trong Kubernetes.
  • Cloud Foundry: Hỗ trợ cài đặt Harbor thông qua Bosh-release trên Cloud Foundry.

Yêu Cầu Tài Nguyên, Phần Mềm, Mạng Cho Harbor

Yêu Cầu Tài Nguyên

Thông số kỹ thuật 

Tối thiểu 

Khuyến nghị

CPU

2 CPU

4 CPU

Mem

4 GB

8 GB

Disk

40 GB

160 GB

Yêu Cầu Phần Mềm

Phần mềm

Phiên bản

Mô tả

Docker Engine

Version 20.10.10-ce+ or higher

Chi tiết thành phần Docker Engine documentation

Docker Compose

docker-compose (v1.18.0+) hoặc docker compose v2 (docker-compose-plugin)

Chi tiết thành phần Docker Compose documentation

OpenSSL

Mới nhất theo phiên bản cài đặt hiện tại

Sử dụng để tạo certificate và key cho Harbor

Yêu Cầu Về Network

Cổng Giao thức Mô tả
443 HTTPS Harbor portal và core API cho truy cập HTTPS. Bạn có thể thay đổi port này trong cấu hình.
4443 HTTPS Kết nối tới Docker Content Trust service của Harbor. Bạn có thể thay đổi port này trong cấu hình.
80 HTTP Harbor portal và core API cho truy cập HTTP. Bạn có thể thay đổi port này trong cấu hình.

Ở phần tiếp theo, chúng ta sẽ đi tiếp chuỗi Series [Harbor] cho Cài Đặt Và Cấu Hình Harbor

Mời các bạn đón theo dõi cập nhật mới nhé!

Theo dõi
Thông báo của
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận

LƯỢT TRUY CẬP

Đang Online 0
Hôm nay 7
Hôm qua 22
Tổng truy cập 29567

Xem nhiều

Series [K8S]: Phần 3 Install Rancher on Kubernetes
Series [K8S]: Phần 2 Install Ceph Cluster Kubernetes
Series [K8S]: Phần 1 Install Kubernetes Cluster v1.28
Series [CA]: Phần 2 Create SAN Certificate

Video