Container Registry: ตั้งค่า Private Registry บน Cloud VPS ด้วย Harbor

ในยุคของ Microservices และ Containerization การจัดการ Container Image อย่างปลอดภัยและมีประสิทธิภาพเป็นสิ่งที่สำคัญมาก Harbor คือ Open Source Container Registry ที่ช่วยให้องค์กรสร้าง Private Registry ได้บน Cloud VPS เพื่อควบคุม Image ได้อย่างเต็มที่ ปลอดภัย และมีประสิทธิภาพสูง

Container Registry คืออะไร? ทำไมต้องมี Private Registry?

Container Registry เป็นคลังเก็บ (Repository) สำหรับเก็บ Container Images ซึ่งสามารถดึงและใช้งานในการ Deploy Application ได้ ในปัจจุบัน Docker Hub เป็น Public Registry ที่นิยมใช้งาน แต่สำหรับองค์กร Private Registry มีความสำคัญหลายประการ:

  • ความปลอดภัย: ควบคุมการเข้าถึง Image ได้เต็มที่ ไม่ต้องเก็บบน Public Repository
  • ประสิทธิภาพ: Pull Image จาก Internal Network เร็วกว่า และประหยัด Bandwidth
  • ควบคุม: มี Version Control และจัดการ Access Control ได้อย่างละเอียด
  • Compliance: เป็นไปตามนโยบายการรักษาข้อมูลของบริษัท

Harbor คืออะไร? ฟีเจอร์หลัก

Harbor เป็น Open Source Container Registry ที่พัฒนาโดย CNCF (Cloud Native Computing Foundation) มี UI ที่ใช้งานง่าย และฟีเจอร์ที่ครบครัน:

  • Web UI: Interface ที่สวยงามและใช้งานง่าย สำหรับการจัดการ Image และ User
  • Role-Based Access Control (RBAC): กำหนด Permission ได้อย่างละเอียด สำหรับแต่ละ User และ Project
  • Image Scanning: สแกน Container Image หาช่องโหว่ (Vulnerability) ด้วย Trivy
  • Image Replication: Replicate Image ไปยัง Registry อื่นได้โดยอัตโนมัติ
  • Helm Chart Support: เก็บ Helm Charts สำหรับ Kubernetes Deployment
  • Content Trust: รองรับ Image Signing เพื่อยืนยันความถูกต้องของ Image

ความต้องการของระบบ

  • Docker & Docker Compose: Harbor ทำงานบน Docker Container จึงต้องติดตั้งก่อน
  • CPU: ขั้นต่ำ 2 Core (แนะนำ 4 Core สำหรับ Production)
  • RAM: ขั้นต่ำ 4 GB (แนะนำ 8 GB สำหรับ Production)
  • Disk Space: ขั้นต่ำ 160 GB สำหรับเก็บ Images
  • Port: 80 (HTTP) และ 443 (HTTPS) ต้องเปิด

ขั้นตอนการติดตั้ง Harbor บน Cloud VPS

ขั้นตอนที่ 1: ดาวน์โหลด Harbor Installer

cd /opt
wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-offline-installer-v2.8.0.tgz
tar xzvf harbor-offline-installer-v2.8.0.tgz
cd harbor

ขั้นตอนที่ 2: แก้ไขไฟล์ harbor.yml

cp harbor.yml.tmpl harbor.yml
nano harbor.yml

แก้ไขข้อมูลสำคัญ:

# ตั้งค่า Hostname (ใส่ Domain ของ Server)
hostname: registry.yourdomain.com

# ตั้งค่า HTTP
http:
  port: 80

# ตั้งค่า HTTPS (แนะนำ)
https:
  port: 443
  certificate: /path/to/cert.crt
  private_key: /path/to/key.key

# ตั้งค่า Admin Password
harbor_admin_password: YourSecurePassword123!

ขั้นตอนที่ 3: รัน Install Script

sudo ./install.sh

Script จะติดตั้ง Harbor และ Dependencies ทั้งหมด รอจน Installation เสร็จสิ้น

ขั้นตอนที่ 4: เข้าถึง Harbor Web UI

https://registry.yourdomain.com

Login ด้วย Username: admin และ Password ที่ตั้งไว้ใน harbor.yml

การใช้งาน Harbor: Push และ Pull Images

Login ผ่าน Docker CLI

docker login registry.yourdomain.com

Tag และ Push Image

# Tag Image
docker tag myapp:latest registry.yourdomain.com/myproject/myapp:latest

# Push Image
docker push registry.yourdomain.com/myproject/myapp:latest

Pull Image จาก Harbor

docker pull registry.yourdomain.com/myproject/myapp:latest

สร้าง Project และจัดการ User ด้วย RBAC

Harbor ให้คุณควบคุมสิทธิการเข้าถึง Image ผ่าน Role-Based Access Control:

  • Project Admin: สิทธิเต็มอำนาจในการจัดการ Project และ Images
  • Maintainer: สามารถ Push และ Pull Images
  • Developer: สามารถ Pull Images และ Push ใหม่
  • Guest: สามารถ Pull Images เท่านั้น

เปิดใช้ Image Scanning ด้วย Trivy

Harbor รองรับ Image Scanning ด้วย Trivy เพื่อตรวจสอบช่องโหว่ใน Image ก่อน Deploy ไปยัง Production:

  • ไปที่ Administration > Interrogation Services
  • เลือก Trivy Scanner และเปิดใช้
  • เมื่อ Push Image ไปยัง Harbor ระบบจะ Scan Image โดยอัตโนมัติ
  • ดู Scan Results ใน Image Details Page และแก้ไขก่อน Deploy

Harbor vs Docker Hub vs GitHub Container Registry

ฟีเจอร์ Harbor (Self-hosted) Docker Hub GitHub Container Registry
Private Registry ✅ เต็มที่ ✅ Limited ✅ เต็มที่
RBAC ✅ Advanced ✅ Basic ✅ GitHub-based
Image Scanning ✅ Trivy ✅ Snyk ✅ Dependabot
Replication ✅ Yes ❌ No ❌ No
Helm Charts ✅ Yes ❌ No ❌ No
ค่าใช้จ่าย Infrastructure เท่านั้น คิดตาม Image ฟรี (with limits)
Deployment Self-hosted Cloud Hosted Cloud Hosted

สรุป

Harbor เป็น Solution ที่ยอดเยี่ยมสำหรับองค์กรที่ต้องการสร้าง Private Container Registry ควบคุมการเข้าถึง Images ได้เต็มที่ ได้รับประโยชน์จาก RBAC, Image Scanning ด้วย Trivy และ Helm Chart Support ทำให้ได้รับความปลอดภัยและควบคุมสูงสุด

สำหรับธุรกิจที่ต้องการ Infrastructure ที่มีความเสถียรและประสิทธิภาพสูงสำหรับ Deploy Harbor Dot Enterprise Cloud VPS รองรับด้วยโครงสร้างพื้นฐานที่แข็งแกร่ง RAM สูง และ Storage กว้างเพียงพอสำหรับเก็บ Container Images ที่ใช้ใน Production