DEV Community

Anuchit Prasertsang
Anuchit Prasertsang

Posted on

Kubernetes คืออะไร? แบบ Dev เห็นภาพ

ลองนึกถึงชีวิตจริงของเรา เมื่อเราต้องการส่งของขวัญให้ใครสักคน สิ่งที่เราต้องมีคือระบบไปรษณีย์ ไปรษณีย์จะบอกเราว่า “เราสามารถส่งของให้คุณได้ แต่ว่าคุณต้องเตรียมบรรจุภัณฑ์ที่ได้มาตรฐาน” นั่นหมายความว่า ถ้าคุณจะส่งทุเรียน ก็ต้องห่อให้เรียบร้อย ไม่ใช่แค่เอาทุเรียนลูกใหญ่ไปส่งเลย ต้องมีการเตรียมพร้อมในการจัดส่งเพื่อให้มันถึงปลายทางได้อย่างปลอดภัย

หรือถ้าคุณจะส่งหนังสือ ก็ต้องใส่ซองจดหมายให้เรียบร้อย ในกรณีนี้ก็จะมีค่าใช้จ่ายในการจัดส่ง ค่าใช้จ่ายนี้จะขึ้นอยู่กับระยะทางและน้ำหนักของพัสดุ ซึ่งเราสามารถจ่ายเป็นสแตมป์ได้ตามที่เห็นสมควร

แต่สิ่งที่สำคัญคือ ไม่ว่าจะใส่อะไรลงไปในพัสดุ ขอแค่บรรจุภัณฑ์มันสามารถรองรับได้ตามมาตรฐาน ระบบไปรษณีย์ก็จะทำหน้าที่ส่งถึงปลายทางให้ได้

ทีนี้ ลองนำหลักการนี้มาคิดในแง่ของ Kubernetes ถ้าเราต้องการให้ Kubernetes มีประสิทธิภาพเหมือนระบบขนส่งไปรษณีย์ เราต้องอธิบายว่าเราจะส่งอะไร ไปที่ไหน (ที่อยู่ปลายทาง) และมันจะไปรันที่ไหน? ใครจะรันมัน? เรารอได้นานแค่ไหน? การตอบคำถามเหล่านี้เหมือนกับการที่เราเตรียมพัสดุให้พร้อมก่อนส่งให้ไปรษณีย์

Kubernetes ทำงานเหมือนกับระบบไปรษณีย์ที่ซ่อนความซับซ้อนต่างๆ ไว้เบื้องหลัง เราไม่จำเป็นต้องรู้ว่าในกระบวนการขนส่งเกิดอะไรขึ้นบ้าง เพียงแค่เราติดสแตมป์ ใส่ที่อยู่ปลายทาง แล้วระบบไปรษณีย์จะรับประกันว่าในที่สุดพัสดุของเราจะถึงมือผู้รับภายในระยะเวลาที่กำหนด แม้ว่าเครื่องบินอาจจะพังหรือรถบรรทุกอาจจะเสีย ระบบไปรษณีย์ก็ไม่โทรหาเราเพื่อแจ้งเหตุการณ์เหล่านั้น มันเป็นสิ่งที่เราไม่จำเป็นต้องรู้และไม่ต้องกังวล เพราะเขาได้สัญญากับเราว่าจะจัดส่งพัสดุถึงที่ให้ได้

ในลักษณะเดียวกัน Kubernetes ก็ใช้หลักการที่เรียกว่า Promise Theory ระบบของ Kubernetes จะมีโหนดหรือเครื่องในคลัสเตอร์จำนวนมาก ซึ่งบางเครื่องอาจจะพังไปบ้าง แต่ Kubernetes รับประกันว่าแอปพลิเคชันของเราจะต้องรันอยู่เสมอ ระบบจะทำให้เรามั่นใจว่าแอปจะทำงานต่อไปไม่ว่าคลัสเตอร์จะเกิดปัญหาหรือไม่

เปรียบเทียบกับไปรษณีย์ Kubernetes ซ่อนรายละเอียดทางเทคนิคทั้งหมดไว้เบื้องหลัง และอนุญาตให้นักพัฒนาแค่ใส่แอปพลิเคชันลงไปในกล่อง พิมพ์ที่อยู่ปลายทาง แล้วจ่ายสแตมป์ (หรือบอกว่าจะให้ Kubernetes ดูแลการรันแอป) ทุกอย่างที่เหลือ Kubernetes จะจัดการให้

https://youtu.be/BE77h7dmoQU?t=472

Top comments (0)