Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

มาใช้งาน Docker Compose บน Kubernetes กัน

$
0
0

สำหรับชาว Docker และ Kubernetes ทาง Docker ได้เปิดและ open source project Docker Compose บน Kubernetes ให้ใช้งานกันแล้ว แน่นอนว่า project นี้พัฒนาด้วยภาษา Go นะครับ ลองไปศึกษา code ได้เลย ทำให้สามารถ deploy ระบบงานบน Kubernetes ด้วย Docker compose ได้ แถมยังช่วยลดงานที่ต้องทำผ่าน kubectl ไปได้เยอะเลย เนื่องจาก Kubernetes นั้นมี object เยอะมาก ๆ เช่น Pods, Service, Deployment, Config และ ResourceQuota เป็นต้น มาใช้งานกัน
ปล. ก่อนหน้านี้ ใช้ได้เฉพาะ Docker Enterprise และ Mac เท่านั้น ตอนนี้ทุกคนสามารถใช้ได้หมด พร้อมเปิดเป็น open source อีกด้วย

การเปิดใช้งานก็ไม่ยาก

เพียงติดตั้ง Docker Desktop หรือ Docker Enterprise ที่ใช้งานกัน จากนั้นก็ไปเปิดใช้งาน Kubernetes ใน Docker ซะ ตรวจสอบว่า พร้อมหรือไม่ด้วยคำสั่ง [code] $kubectl api-versions | grep compose compose.docker.com/v1beta1 compose.docker.com/v1beta2 [/code]

อะไรคือ v1beta1 และ v1beta2 ?

v1beta1 คือ API ที่ผู้ใช้งานต้องส่ง Docker compose file เข้ามาเท่านั้น ซึ่งเป็น API ที่ถูกใช้มาตั้งแต่เริ่มต้นของ project นี้ ในอนาคตอันใกล้ ตัวนี้อาจจะถูก deprecate และอาจจะเลิกใช้งานไป v1beta2 คือ API ที่ผู้ใช้งานจะทำการ parse ข้อมูลใน Docker compose file ให้อยู่ในรูปแบบที่กำหนด ก่อนส่งไปยัง API โดยใน version นี้จะเป็นค่า default ของ Docker CLI อยู่แล้ว

Architecture ของ Docker compose on Kubernetes เป็นดังนี้

เป็นการทำงานแบบ client-server ปกติ โดยทาง Docker ได้ทำการ custom API server ของ Kubernetes ผ่าน API server aggregation ตัวที่สำคัญคือ Compose Controller ทำการแปลงค่าจาก Docker compose เพื่อไปสร้าง object/component ต่าง ๆ บน Kubernetes อีกที ตาม mapping ที่กำหนดไว้ ส่วนเรื่องของ compatability สามารถดูได้เช่นกันจาก Natively support Compose files on Kubernetes

การ deploy ยังใช้รูปแบบเดียวกันกับ Docker Swarm

นั่นคือการ deploy stack ด้วย Docker compose file เช่นเดิม แต่ว่าให้กำหนดค่าของ orchestrator=kubernetes ไป มาดูตัวอย่างการ deploy กัน เอาง่าย ๆ คือ deploy nginx นี่แหละ ให้ expose port ออกมาคือ 8080 ไฟล์ docker-compose.yml แบบกาก ๆ [gist id="a89269a47f45613b37abe5bca19de9bd" file="docker-compose.yml"] มา deploy กัน [gist id="a89269a47f45613b37abe5bca19de9bd" file="1.txt"] มาดูว่า ทำการสร้างอะไรบน Kubernetes บ้าง มีทั้ง Pods, Service, ReplicaSetและ Deployment กันเลย ง่ายไหมละ !! [gist id="a89269a47f45613b37abe5bca19de9bd" file="2.txt"] ลองใช้กันดูนะครับ Reference Websites https://blog.docker.com/2018/12/simplifying-kubernetes-with-docker-compose-and-friends/

Viewing all articles
Browse latest Browse all 1997

Trending Articles