DEV Community

Cover image for บันทึก การแก้ไขปัญหาพื้นที่เต็มใน minikube
iconnext
iconnext

Posted on

บันทึก การแก้ไขปัญหาพื้นที่เต็มใน minikube

minikube เครื่องมือในการใช้งาน Kubernetes Cluster แบบ local โดยสามารถติดตั้งบน computer เพียงเครื่องจึงเหมาะสมสำหรับการทดสอบการติดตั้งระบบผ่าน kubernetes (ไม่เหมาะสำหรับงาน production)
ผมพบปัญหาระหว่างการ install helm chart ในการติดตั้งระบบหนึ่ง เนื่องจากไม่สามารถเข้าหน้าเว็บของระบบได้ผมจึง เริ่มตรวจสอบสถานะของแต่ละ pod โดยใช้คำสั่ง

$kubectl get pod
Enter fullscreen mode Exit fullscreen mode

Image description

พบว่ามี 2 pod ที่ขึ้นสถานะ CrashLoopBackOff จากนั้นผมตรวจดู logs ของทั้ง 2 pod ที่เกิดปัญหาผ่านคำสั่ง

$kubectl logs {ชื่อ pod ที่ต้องการดูข้อมูล log}
Enter fullscreen mode Exit fullscreen mode

ซึ่งทั้ง 2 pod ที่เกิด CrashLoopBackOff มีอาการคล้ายกันคือไม่สามารถสรา้ง directory โดยแสดง No space left on device
Image description

สาเหตุ

เมื่อเข้าไปยัง minikube และตรวจสอบพื้นที่ว่างข้างในโดยใช้คำสั่ง

 $minikube ssh
docker@minikube:df -h
Enter fullscreen mode Exit fullscreen mode

Image description

จะเห็นว่าพื้นที่ใช้งานภายใน minikube VM จากนั้นตรวจสอบการใช้พื้นที่ใน docker ด้วยคำสั่ง

docker@minikube:docker system df
Enter fullscreen mode Exit fullscreen mode

จะแสดงการใช้ 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
Enter fullscreen mode Exit fullscreen mode

จะเป็นการลบ docker object ที่ไม่ได้ใช้งานทั้งหมดออกจาก minikube VM เมื่อตรวจสอบพื้นที่ว่างบน minikube VM พบว่ามีพื้นที่ว่างมากขึ้น

Image description

2.กำหนดพื้นที่ disk ในในการเริ่มต้นทำงาน minikube ผ่านคำสั่ง

$ minikube start --disk-size 50000mb
Enter fullscreen mode Exit fullscreen mode

จะเป็นการกำหนดขนาดของdisk บน minikube VM เป็น 50GB(50000MB)

หมายเหตุก่อนการเปลี่ยนขนาดของ disk บน minikube ต้องทำการ stop และ delete minikube ด้วยคำสั่ง

$minikube stop
$minikube delete
Enter fullscreen mode Exit fullscreen mode

Top comments (0)