สมุดบันทึกการเรียน Kubernetes Part 2

Sivaroot Chuncharoen
2 min readJul 23, 2023

--

จากตอนที่ผ่านมาเราน่าจะรู้จัก Kubernetes และโครงสร้างของเค้าคร่าวๆ แล้ว
ตอนนี้เรามาลองสร้างหน่วยที่เล็กที่สุดที่จะมา Run application ของเรากัน นั้นก็คือ Pod

อธิบายเพิ่มเติมจากตอนที่แล้ว Pod เป็นเหมือนบ้านหลังหนึ่งที่มีของเพียงพอต่อการให้คน 1 คนหรือหลายคนมาอยู่ ที่เปรียบเสมือน Container โดยมี Container Runtime เพื่อให้สามารถ Run application ที่เป็น Container ได้
ซึ่งใน Pod 1 Pod จะประกอบไปด้วย

  1. Container ของ Application
  2. Volume หรือ Storage ที่เก็บข้อมูลของ Application
  3. IP Address ของ Pod
ขอบคุณภาพจาก https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-intro

ก่อนเราจะมา Run Application บน Kubernetes จะต้อง Install Docker Desktop สามารถ Download ได้ที่: https://www.docker.com/products/docker-desktop/ และ Enable Kubernetes ที่ Settings > Kubernetes

มาเริ่มกันเลย

  1. สร้าง Configuration file หรือที่เรียกกันว่า Manifest file ของ Kubernetes ที่เป็นประเภท Resource ของ Kubernetes ที่เป็น Pod

2. Run command ด้านล่างเพื่อทำการ Run Pod ขึ้นมา

kubectl apply -f pod-sample-app.yml

3. ตรวจสอบการ Run ของ Pod ได้ด้วย command

kubectl get pod
Result: kubectl get pod

ตอนนี้ Pod sample-app ได้ถูก Run ขึ้นมาแล้ว แต่ๆๆๆๆ ยังไม่สามารถเรียกใช้งานได้
ดังนั้นจะต้องทำการ Port Forward ออกมาบน host ก่อน​โดย Run command

kubectl port-forward pod/sample-app 4000:3000
Result: kubectl port-forward pod/sample-app 4000:3000

เป็นการ forward port บนเครื่องเราที่ 4000 ไปยัง port ใน pod ที่ 3000 ดังนั้นตอนนี้เราสามารถเข้า http://localhost:4000/ ได้ที่เครื่องเราแล้ว

Web brower: http://localhost:4000

สรุป

บนความนี้เป็นเพียงการนำ Application ตัวอย่างมา Run บน Pod เพื่อให้รู้จัก

  1. การใช้ manifest file และองค์ประกอบใน file เพื่อสร้าง Pod เบื้องต้น
  2. รู้จักการ Apply manifest file
  3. รู้จักการทำ Port Forward

หมายเหตุ

การ Deploy application จริงๆ เราจะไม่สร้าง Pod ขึ้นมาเดี่ยวๆ และ Port Forward ออกมาเพราะการสร้าง Pod ขึ้นมาเดี่ยวๆ ถ้า Pod นั้นตายหรือ exit เราก็จะไม่สามารถใช้งาน Application ได้เลย

และการทำ Port Forward ในบทความนี้เป็นการให้รู้จักการทำ Port Forward และไว้ใช้ทดสอบ Application เท่านั้น

ซึ่งในบทความถัดไปจะเป็นการเล่าประเภท Resource อีกประเภทหนึ่งของ Kubernetes ที่เกี่ยวข้องกับ Pod ที่เราสร้าง นั้นก็คือ Resource ประเภท ReplicaSet ที่ไว้รักษาให้มี Pod ทำงานตามจำนวนได้ตลอดเวลา

Go to Part 3 : ReplicaSet

--

--