minikube เครื่องมือในการใช้งาน Kubernetes Cluster แบบ local โดยสามารถติดตั้งบน computer เพียงเครื่องจึงเหมาะสมสำหรับการทดสอบการติดตั้งระบบผ่าน kubernetes (ไม่เหมาะสำหรับงาน production)
ผมพบปัญหาระหว่างการ install helm chart ในการติดตั้งระบบหนึ่ง เนื่องจากไม่สามารถเข้าหน้าเว็บของระบบได้ผมจึง เริ่มตรวจสอบสถานะของแต่ละ pod โดยใช้คำสั่ง
$kubectl get pod
พบว่ามี 2 pod ที่ขึ้นสถานะ CrashLoopBackOff จากนั้นผมตรวจดู logs ของทั้ง 2 pod ที่เกิดปัญหาผ่านคำสั่ง
$kubectl logs {ชื่อ pod ที่ต้องการดูข้อมูล log}
ซึ่งทั้ง 2 pod ที่เกิด CrashLoopBackOff มีอาการคล้ายกันคือไม่สามารถสรา้ง directory โดยแสดง No space left on device
สาเหตุ
เมื่อเข้าไปยัง minikube และตรวจสอบพื้นที่ว่างข้างในโดยใช้คำสั่ง
$minikube ssh
docker@minikube:df -h
จะเห็นว่าพื้นที่ใช้งานภายใน minikube VM จากนั้นตรวจสอบการใช้พื้นที่ใน docker ด้วยคำสั่ง
docker@minikube:docker system df
จะแสดงการใช้ disk ของ docker object ซึ่งพบว่าพื้นที่ส่วนใหญ่จะถูกใช้เป็นตัวเก็บ docker image อ้างอิงจากข้อมูล minikube git Repo พบว่าค่า MinimumDiskSizeMB = 2000 (2000MB= 2GB) และค่า DefaultDiskSize = "20g"
วิธีทางแก้ไข
1.เคลียร์พื้นที่ disk ของ docker object ผ่าน minikube VM ผ่านคำสั่ง
$minikube ssh
docker@minikube:docker system prune -a
จะเป็นการลบ docker object ที่ไม่ได้ใช้งานทั้งหมดออกจาก minikube VM เมื่อตรวจสอบพื้นที่ว่างบน minikube VM พบว่ามีพื้นที่ว่างมากขึ้น
2.กำหนดพื้นที่ disk ในในการเริ่มต้นทำงาน minikube ผ่านคำสั่ง
$ minikube start --disk-size 50000mb
จะเป็นการกำหนดขนาดของdisk บน minikube VM เป็น 50GB(50000MB)
หมายเหตุก่อนการเปลี่ยนขนาดของ disk บน minikube ต้องทำการ stop และ delete minikube ด้วยคำสั่ง
$minikube stop
$minikube delete
Top comments (0)