ออกมาแล้วสำหรับ
Kubernetes บน Docker for Mac 17.12 CE Edge
ประกอบไปด้วย standalone Kubernetes server และ client
ทำให้สามารถ run Kubernetes server บน Docker instance ได้เลย
แต่เป็นแบบ local หรือ single node cluster นะ
ดังนั้นมาลองใช้งานดูกันหน่อย
เริ่มด้วยการเปิด Kubernetes บน Docker for Mac
ถ้าใช้งาน minikube อยู่แล้ว จะต้องเปลี่ยน context และ namespace ก่อนนะ
มิเช่นนั้นจะใช้ไม่ได้ !!
จากค่า default คือ minikube เป็น
docker-for-desktop ดังนี้
[code]
$kubectl config use-context docker-for-desktop
[/code]
สิ่งหนึ่งที่แตกต่างกันระหว่าง Docker Swarm กับ Kubernetes คือ
Kubernetes จะสนับสนุน namespace
โดยค่า default จะมี namespace ชื่อว่า system
จากนั้นดู container ที่ run อยู่ ด้วยคำสั่ง
[code]
$kubectl get all --all-namespaces
[/code]
แสดงผลการทำงาน
ซึ่งมี service ต่าง ๆ ทำงานอยู่เยอะมาก ๆ
[gist id="021189bc878dc143b2e983f2c60558e1" file="1.txt"]
ส่วน version ของ Kubernetes คือ 1.8 ซึ่งไม่ใช่ version ล่าสุด !!
สามารถดูด้วยคำสั่ง
[code]
$kubectl version
[/code]
มาดูการใช้งานกันหน่อย
Docker นั้นพยายามทำให้ Kubernetes ใช้งานง่าย ๆ
ในมุมมองของคนใช้ Docker Swarm มาก่อน
นั่นคือ ไม่ต้องเปลี่ยนแนวคิด หรือ คำสั่งมากนัก
ด้วยการ integrate ระหว่าง Docker stack ใน Docker Swarm
กับ Kubernetes native service/deployment เข้าด้วยกัน
ผ่าน
CRD (Custom Resource Definition)
ดังนั้นสามารถใช้งานผ่านคำสั่ง
[gist id="021189bc878dc143b2e983f2c60558e1" file="2.txt"]
จากนั้นทำการ deploy stack ตัวอย่างนิดหน่อย
ใช้ตัวอย่างจาก
web ของ Docker
ซึ่งสามารถใช้ไฟล์ docker-compose.yml เหมือนเดิมได้เลย
มาดูหน้าตาของไฟล์ docker-compose.yml กัน
[gist id="021189bc878dc143b2e983f2c60558e1" file="docker-compose.yml"]
ทำการสร้าง stack ด้วยคำสั่ง
[code]
$docker stack deploy demo -c ./docker-compose.yml
[/code]
ผลการทำงาน
[gist id="021189bc878dc143b2e983f2c60558e1" file="3.txt"]
ต่อมาทำการตรวจผลการทำงาน ทั้งการสร้าง stack ใหม่ และ pods ต่าง ๆ
[gist id="021189bc878dc143b2e983f2c60558e1" file="4.txt"]
สุดท้ายเข้าใช้งานระบบตัวอย่างผ่าน http://localhost
เพียงเท่านี้ก็ใช้งานได้แล้ว ง่ายไหมละ !!
โดยที่แนวคิดและแนวทางของคนที่ใช้ Docker Swarm มาก่อนแล้ว
ไม่ต้องเปลี่ยนเยอะ
ทั้งความเรียบง่าย
ทั้งความเร็ว
ดังนั้นมาลองใช้กันดูครับ