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

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay