บทนำ
บทความนี้อธิบายวิธีการ Deploy Private Image Registry (Harbor) บน Sangfor SKE v2.2.0 ครอบคลุมตั้งแต่ Deployment Mode, การเตรียมความพร้อม, การตั้งค่า Harbor Configuration ไปจนถึงการ Deploy Image Registry ใน User Cluster
Deployment Mode
Harbor รองรับ 2 โหมดการ deploy บน Kubernetes cluster:
| Mode | Description | Advantage | Disadvantage |
|---|---|---|---|
| Using Local Disks | ใช้ local disk สร้าง local PVC สำหรับ storage ของ Harbor | ขยายพื้นที่ง่าย เมื่อพื้นที่ไม่พอสามารถขยาย disk แล้วขยาย PVC ได้โดยตรง | Harbor reliability ต่ำ เนื่องจาก disk ถูกผูกกับ node ทำให้ Pod ต้องรันบน node นั้นเท่านั้น |
| Dynamically Creating PVCs | ระบุ SC ที่มีอยู่เมื่อ deploy Harbor แล้วสร้าง PV/PVC อัตโนมัติตาม SC | Pod สามารถ schedule ไปยัง node อื่นใน cluster ได้ | - |
ข้อกำหนดเบื้องต้น
สำหรับ Dynamically Creating PVCs:
- เตรียม aSAN, EDS หรือ NFS storage service ให้พร้อมใช้งาน
- สร้าง StorageClass (อ้างอิง การตั้งค่า Container Storage (EDS/aSAN/NFS) บน SKE)
สำหรับ Using Local Disks:
- Kubernetes cluster ถูกสร้างแล้วและอยู่ในสถานะ Running
- CPU และ memory ของ node ต้องไม่เกิน 60% โดยต้องมี CPU ว่างอย่างน้อย 2 cores และ memory ว่างอย่างน้อย 2 GB
- พื้นที่ disk ว่างของ node ต้องมากกว่า 50 GB (ปรับได้ตามขนาด image ที่จะจัดเก็บ)
ขั้นตอนที่ 1: เตรียม Local Disk (สำหรับ Local Disk Mode)
1. เข้าสู่ระบบ SCP แล้วไปที่ Compute > Kubernetes Engine > Cluster Management
2. คลิก Node Management เลือก cluster แล้วค้นหา worker node ที่ตรงตามข้อกำหนด
3. เพิ่ม disk ให้กับ VM (worker node) เช่น disk ขนาด 150 GiB แล้วคลิก OK
4. รอสักครู่ แล้วคลิก node ในหน้า Node Management เพื่อดูรายละเอียด แล้วเลือก disk ที่เพิ่มมา (โดยปกติจะเป็น disk ตัวสุดท้าย)
5. จดชื่อ disk เช่น vdc ในกรณีนี้ mount directory จะเป็น /data-vdc
ขั้นตอนที่ 2: Harbor Configuration
Image registry รองรับ 2 รูปแบบการเข้าถึง:
- NodePort: ต้องระบุ IP address และ port สำหรับ push/pull images
- Ingress: ใช้ domain name เข้าถึง image registry เมื่อมี DNS server พร้อมใช้งาน ไม่ต้องระบุ port
การตั้งค่า Exposed IP Address:
- ในโหมด local storage ให้ตั้ง exposed IP (deployment parameter: --ip) เป็น IP ของ management interface หรือ business interface ของ local node
- ในโหมดอื่น ให้ expose IP ของ management interface หรือ business interface ของ worker node ใดก็ได้
- หาก Harbor ถูกแชร์ข้าม cluster ให้ตรวจสอบว่า IP สามารถสื่อสารข้าม cluster ได้
ขั้นตอนที่ 3: Deploy Image Registry ใน User Cluster
หมายเหตุก่อนเริ่ม:
- เตรียม IP address ที่ใช้งานได้ใน cluster เช่น IP ของ worker node 192.168.10.13
- เตรียม StorageClass สำหรับ shared storage หรือ local disk
1. เข้าสู่ระบบ SCP แล้วไปที่ Resources > Compute > Kubernetes Engine > Image Registries
2. คลิก Deploy Local Registry แล้วกำหนดค่าต่อไปนี้:
- กรอก registry name ที่ไม่ซ้ำ
- เลือก Kubernetes cluster ภายใน account
- กำหนด access settings ตาม network ของคุณ (NodePort หรือ Ingress)
- กรอก initial password ของ image registry
- กำหนด resource configuration ตาม specifications
3. เลือก StorageClass ที่สร้างไว้ แล้วคลิก OK
หมายเหตุ
- แนะนำให้ใช้โหมด Dynamically Creating PVCs เพื่อให้ Pod สามารถ schedule ไปยัง node อื่นได้
- Harbor ต้องใช้ CPU อย่างน้อย 2 cores และ memory 2 GB สำหรับรองรับการดาวน์โหลด image พร้อมกัน 20 รายการ
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น