ยินดีต้อนรับสู่ วันที่ 2: การติดตั้ง Headlamp แบบ In-Cluster และการสำรวจ Web UI!
สำหรับวันนี้ เราจะเรียนรู้วิธีติดตั้ง Headlamp ให้ทำงานเป็น Workload อยู่ภายใน Kubernetes Cluster โดยตรง เพื่อให้ใช้งานผ่าน Web Browser ได้โดยไม่ต้องพึ่งพาแอปพลิเคชัน Desktop
ช่วงที่ 1: สรุปแนวคิดสถาปัตยกรรม
เข้าใจความต่างระหว่าง Desktop Mode และ In-Cluster Mode รวมถึงการเชื่อมต่อผ่าน Web Browser
ช่วงที่ 2: การลงมือปฏิบัติจริง (5 ขั้นตอน)
สร้าง Demo Deployment ติดตั้ง Headlamp เปิด Port-forward และทดลอง Scale Pod ผ่าน Web UI
สรุปแนวคิดและสถาปัตยกรรม (5–10 นาที)
In-Cluster Deployment Mode
แตกต่างจาก Desktop Mode ตรงที่ Headlamp จะถูกปรับใช้เป็น Deployment และ Service อยู่ภายใน Kubernetes Cluster โดยตรงในเนมสเปซเฉพาะ (headlamp)
การเข้าถึงผ่าน Web Browser
สมาชิกในทีมสามารถเข้าใช้งาน UI กลางผ่านเว็บเบราว์เซอร์ได้ทันทีผ่าน URL / Ingress หรือการทำ Port-forwarding โดยไม่จำเป็นต้องติดตั้งโปรแกรมหรือพกพาไฟล์ kubeconfig ไว้ในเครื่องส่วนตัว
การทำงานร่วมกับ API Server
ตัว Headlamp Pod จะโต้ตอบกับ Kubernetes API Server ภายในคลัสเตอร์ เพื่อดึงข้อมูลสถานะทรัพยากรมาแสดงผล และส่งคำสั่งเปลี่ยนแปลง (เช่น Scale Replicas หรือแก้ไข YAML) กลับไปจัดการคลัสเตอร์
ขั้นตอนลงมือปฏิบัติจริง (15–20 นาที)
เปิด Terminal แล้วสร้าง Nginx Deployment จำนวน 3 replicas เพื่อใช้เป็น Workload ตัวอย่าง:
kubectl create deployment demo-web --image=nginx:alpine --replicas=3
kubectl get pods -l app=demo-web
demo-web-... อยู่ในสถานะ Running ครบทั้งหมด
ลงไฟล์ Manifest อย่างเป็นทางการของ Headlamp เพื่อปรับใช้ Pod และ Service เข้าไปใน Cluster:
kubectl apply -f https://raw.githubusercontent.com/headlamp-k8s/headlamp/main/autogen-artifacts/headlamp-k8s.yaml
kubectl get pods,svc -n headlamp
headlamp พร้อม Deployment, Service และ ServiceAccount ให้อัตโนมัติ รอจน Pod ขึ้นสถานะ Running
เชื่อมต่อ Port จากเครื่อง Local ไปยัง Service ของ Headlamp ที่กำลังรันอยู่ใน Cluster:
kubectl port-forward -n headlamp service/headlamp 8080:80
เข้าถึง Headlamp ผ่านเบราว์เซอร์เพื่อสำรวจสถานะของ Pods และ Deployment:
- เปิด Web Browser แล้วไปที่ http://localhost:8080
- บนเมนูด้านซ้าย เข้าไปที่แถบ Workloads > Deployments
- คลิกเลือก Deployment ชื่อ demo-web เพื่อดูรายละเอียด Pods, สถานะการทำงาน, กราฟทรัพยากร และ Container Logs
ทดลองปรับเปลี่ยนจำนวน Replicas ของ Workload โดยตรงผ่านปุ่มบนหน้าจอเว็บ:
- บนหน้ารายละเอียด
demo-webใน Headlamp UI ให้คลิกปุ่ม Scale (หรือไอคอนแก้ไขจำนวน Replicas) - ปรับจำนวน Replicas จาก 3 เป็น 5 แล้วกดยืนยันบันทึก
- เปิด Terminal อีกหน้าต่างหนึ่ง แล้วรันคำสั่งด้านล่างเพื่อเฝ้าดูการสร้าง Pods ใหม่แบบ Real-time:
kubectl get pods -l app=demo-web -w
สังเกตการทำงานร่วมกันระหว่าง UI และ Kubernetes: ทันทีที่คุณกดปรับค่าบนหน้าเว็บ API Server จะสั่งให้ ReplicaSet สร้าง Pod ขึ้นมาใหม่อีก 2 ตัว และสถานะ ContainerCreating → Running จะสะท้อนทั้งบน Terminal และแถบสถานะของ Headlamp UI ไปพร้อมๆ กัน
ลองทำตามขั้นตอนแล้วแจ้งได้เลยครับว่ารัน Headlamp แบบ In-Cluster และขยาย Replicas ผ่าน Web UI สำเร็จหรือไม่ หากพบปัญหาพอร์ตชน หรือหน้าเว็บไม่เปิด สามารถส่ง Logs มาช่วยตรวจดูได้ทันทีครับ!