ติดตั้งและใช้งาน Kubernetes Dashboard บน Cloud VPS

ติดตั้งและใช้งาน Kubernetes Dashboard บน Cloud VPS

Kubernetes Dashboard เป็น Web UI ที่มีประโยชน์มากสำหรับการบริหารจัดการ Kubernetes Cluster ด้วยอินเทอร์เฟซที่เป็นมิตรต่อผู้ใช้งาน บทความนี้จะอธิบายวิธีติดตั้งและใช้งาน Kubernetes Dashboard บน Cloud VPS ของท่าน

Kubernetes Dashboard คืออะไร?

Kubernetes Dashboard เป็น Web-based interface ที่ออกแบบมาเพื่อให้ผู้บริหาร cluster สามารถติดตามสถานะของ cluster ได้อย่างง่ายดาย ผ่าน Dashboard ท่านสามารถ:

  • ดูสถานะของ Nodes, Pods, Services
  • สร้างและจัดการ Deployments
  • ตรวจสอบ Logs ของ Pods
  • จัดการ Namespaces
  • Monitor resource usage

ข้อกำหนดเบื้องต้น

ก่อนติดตั้ง Kubernetes Dashboard ท่านต้องมี:

  • Cloud VPS ที่มี Kubernetes Cluster ติดตั้งแล้ว
  • kubectl ติดตั้งและตั้งค่าให้สามารถเชื่อมต่อกับ cluster ได้
  • Admin access ในการ execute commands

วิธีติดตั้ง Kubernetes Dashboard

ขั้นตอนที่ 1: ติดตั้ง Dashboard

ติดตั้ง Kubernetes Dashboard ด้วยคำสั่ง kubectl:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

ขั้นตอนที่ 2: ตรวจสอบการติดตั้ง

ตรวจสอบว่า Dashboard Pods ได้ทำงานแล้ว:

kubectl get pods -n kubernetes-dashboard

ท่านจะได้ผลลัพธ์แบบนี้:

NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-c79fbf474-w7q7l   1/1     Running   0          2m
kubernetes-dashboard-7fd68cb5d5-glhmz       1/1     Running   0          2m

วิธีเข้าถึง Kubernetes Dashboard

ตัวเลือกที่ 1: ใช้ kubectl port-forward

วิธีที่ง่ายที่สุดคือใช้ kubectl port-forward:

kubectl port-forward -n kubernetes-dashboard svc/kubernetes-dashboard 8443:443

จากนั้นเปิด URL ในเบราว์เซอร์: https://localhost:8443

ตัวเลือกที่ 2: ใช้ NodePort

แก้ไข Service type เป็น NodePort:

kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard

เปลี่ยน type: ClusterIP เป็น type: NodePort และ save

ตรวจสอบ port ที่ได้รับการ assign:

kubectl get svc -n kubernetes-dashboard

สร้าง Service Account สำหรับ Dashboard

สำหรับการเข้าถึง Dashboard อย่างปลอดภัย ให้สร้าง Service Account:

kubectl create serviceaccount admin-user -n kubernetes-dashboard
kubectl create clusterrolebinding admin-user --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user

รับ Access Token

รับ Token สำหรับเข้าถึง Dashboard:

kubectl -n kubernetes-dashboard create token admin-user

คำสั่งนี้จะแสดง Token ที่ใช้สำหรับ login ในหน้า Dashboard

ล็อกอินเข้า Dashboard

เมื่อเปิด Dashboard ท่านจะเห็นหน้า login:

  • เลือก “Token” option
  • วาง Token ที่ได้จากคำสั่งข้างต้น
  • คลิก “Sign in”

การใช้งาน Kubernetes Dashboard

ดูข้อมูล Cluster

ในหน้า Dashboard แสดง Overview ของ cluster:

  • Namespaces: จำนวน namespaces และ workloads
  • Node Status: สถานะของ nodes ในระบบ
  • Pod Status: จำนวน pods ในแต่ละสถานะ

สร้าง Deployment ใหม่

ผ่าน Dashboard ท่านสามารถสร้าง Deployment ใหม่:

  • ไปที่ “Deployments” menu
  • คลิก “Create” button
  • ใส่ข้อมูล deployment (image, replicas, port)

ดู Logs

ดู logs ของ Pod:

  • ไปที่ “Pods” หรือ “Workloads”
  • เลือก Pod ที่ต้องการ
  • คลิก “Logs” เพื่อดู logs in real-time

Best Practices สำหรับ Kubernetes Dashboard

  • ใช้ RBAC: สร้าง Service Accounts ที่มี Limited Permissions
  • ล็อก Access: ตรวจสอบ audit logs เพื่อเห็นว่าใครเข้าถึง cluster
  • ใช้ TLS: เพื่อให้การเชื่อมต่อปลอดภัย
  • Restrict Access: จำกัดการเข้าถึง Dashboard เฉพาะ authorized users
  • Update รัฐเฉพาะ: ตรวจสอบการ update dashboard เพื่อได้ security patches

Troubleshooting

ปัญหา: Dashboard Pods ไม่ขึ้น

ตรวจสอบ logs:

kubectl logs -n kubernetes-dashboard -l k8s-app=kubernetes-dashboard

ปัญหา: ไม่สามารถเข้าถึง Dashboard

ตรวจสอบ port-forward:

kubectl port-forward -n kubernetes-dashboard svc/kubernetes-dashboard 8443:443 --address 0.0.0.0

ปัญหา: Token หมดอายุ

สร้าง Token ใหม่:

kubectl -n kubernetes-dashboard create token admin-user

สรุป

Kubernetes Dashboard เป็นเครื่องมือสำคัญที่ช่วยให้การบริหารจัดการ Kubernetes Cluster บน Cloud VPS ของท่านง่ายขึ้น ด้วยการติดตั้งอย่างถูกต้องและสร้าง Service Account ที่เหมาะสม ท่านสามารถใช้ Dashboard เพื่อติดตามและจัดการ cluster ได้อย่างมีประสิทธิภาพ