ในยุคของ 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

