K3D (LV.3)
k3d ถูกสร้างขึ้นเพื่อเป็นเครื่องมือที่ช่วยให้สามารถรัน k3s ภายในคอนเทนเนอร์ Docker โดยมีวัตถุประสงค์หลักเพื่อทำให้การจัดการและการใช้งานคลัสเตอร์ของ K3s เป็นไปอย่างง่ายดายและรวดเร็ว โดยเฉพาะอย่างยิ่งสำหรับสภาพแวดล้อมการพัฒนาและการทดสอบในเครื่อง
k3d เป็นเครื่องมือที่จำลอง k3s cluster ภายใน Docker container มีวัตภุประสงค์เพื่อให้ง่ายต่อการสร้างและจัดการ Kubernetes cluster ซึ่งใช้ในการทดสอบภายในเครื่องของ Developer เอง
ประโยชน์หลักของ k3d มีดังนี้
การพัฒนาในเครื่อง (Local Development): k3d ช่วยให้นักพัฒนาสามารถสร้างคลัสเตอร์ Kubernetes บนเครื่องของตัวเองได้ง่าย ๆ โดยใช้ Docker ทำให้สามารถพัฒนาและทดสอบแอปพลิเคชันที่ใช้ Kubernetes โดยไม่จำเป็นต้องใช้ Infrastructure บนคลาวด์หรือเซิร์ฟเวอร์จำนวนมาก
ความเรียบง่าย (Simplicity): เนื่องจาก K3s เป็น Kubernetes ที่ออกแบบมาให้มีขนาดเล็กอยู่แล้ว k3d ช่วยทำให้กระบวนการสร้างและจัดการคลัสเตอร์ Kubernetes ภายใน Docker นั้นง่ายยิ่งขึ้น ลดความซับซ้อนและขั้นตอนที่เกี่ยวข้องกับการจัดการ Kubernetes สำหรับการพัฒนาและทดสอบ
ความรวดเร็ว (Speed): การติดตั้งคลัสเตอร์ Kubernetes แบบเต็มรูปแบบอาจใช้เวลานานและต้องการทรัพยากร แต่ด้วย k3d คุณสามารถสร้างคลัสเตอร์ Kubernetes ที่พร้อมใช้งานได้ภายในไม่กี่วินาที ซึ่งเหมาะสำหรับการสร้างสภาพแวดล้อมการทดสอบหรือการทดลองฟีเจอร์ต่าง ๆ ของ Kubernetes อย่างรวดเร็ว
คลัสเตอร์แบบหลายโหนด (Multi-Node Clusters): k3d ช่วยให้ผู้ใช้สามารถสร้างคลัสเตอร์ที่มีหลายโหนด (Node) ได้ ซึ่งเป็นการจำลองสภาพแวดล้อม Kubernetes ที่มีหลายโหนดเหมือนในโลกความเป็นจริง ทั้งหมดนี้รันอยู่ในคอนเทนเนอร์ Docker บนเครื่องเดียว
ประหยัดค่าใช้จ่าย (Cost-Effective): การรัน Kubernetes ในคอนเทนเนอร์ Docker บนเครื่องช่วยหลีกเลี่ยงค่าใช้จ่ายที่เกี่ยวข้องกับการรันคลัสเตอร์ Kubernetes บนผู้ให้บริการคลาวด์ในระหว่างการพัฒนาและทดสอบ
สรุปแล้ว k3d ถูกใช้หลัก ๆ สำหรับการพัฒนาและทดสอบ Kubernetes ในเครื่อง โดยมอบสภาพแวดล้อมที่รวดเร็ว กิน resource น้อย และใช้งานง่าย ทำให้นักพัฒนาสามารถทดสอบและพัฒนาได้อย่างรวดเร็วโดยไม่ต้องใช้ Infrastructure ขนาดใหญ่
Setup
Usage
create cluster
หรือ
add agent node
list node
remove node
delete cluster
Expose Loadbalancer port
command นี้จะเปิด port 8080 บนเครื่อง host ไปยัง loadbalancer node ของ cluster mycluster
port 80
K3D with cilium
เตรียม config file ชื่อ k3dconfig.yaml
ดังนี้
สร้าง cluster ด้วยคำสั่งดังนี้
custom k3d node เพื่อให้รองรับ cilium (*ใช้กับกรณี k3s/k3d เท่านั้น)
ติดตั้ง cilium
reference:
Last updated
Was this helpful?