วันนี้ไปเจอ Kubernetes distribution หนึ่ง ชื่อ k3s ซึ่งพยายามทำให้เล็กเหมาะกับงานพวก Edge IoT CI และ ARM โดย binary ขนาดเล็กกว่า 40 MB. และใช้ Memory แค่ 512 MB 😍😍😍
สิ่งที่ตัดออกก็ได้แก่
- พวก legacy และ alpha feature และ feature ที่ไม่ใช่ default feature
- สิ่งที่เรียกว่า in-tree plugins ต่างๆเช่น cloud providers integration และ cloud storage plugins
- ใช้ sqlite3 แทน etcd โดย etcd ยังมีอยู่แต่ไม่ได้ถูกนำมาใช้เป็นค่าตั้งต้น (ดูจากเอกสารแล้วขณะเขียนเรื่องนี้ etcd ยังอยู่ในสถานะ broken ยังใช้ไม่ได้)
- พยายามไม่ทำให้มี dependency กับ OS โดย dependency ของ k3s คือ containerd Flannel CoreDNS CNI และ host utilities ต่างๆเช่น iptables socat ฯลฯ
- ใช้ hyperkube wrapper เพื่อลดความซับซ้อนในการบริหารจัดการ kubernetes cluster
Hyperkube
Kubernetes ปกติจะประกอบด้วยชุดของ binary ดังนี้
- kube-apiproxy (master api)
- kube-scheduler (resource manager)
- kubelet (start/stop containers, sync configuration)
- kube-control-manager (monitor replication controller และ maintain the desired state)
- kube-proxy (expose services ในแต่ละ node)
hyperkube เป็น wrapper ที่รวม binary เหล่านี้เข้าด้วยกันเป็น binary ไฟล์เดียวซึ่งช่วยลด dependencies และขั้นตอนในการสร้าง production Kubernetes cluster นอกจากนั้นยังทำให้การติดตั้งและ upgrade kubernetes ทำได้ง่าย ซึ่งทำได้เพียง copy ไฟล์ ไฟล์เดียว นอกจากนั้น TLS certificates จะถูกสร้างโดยอัตโนมัติเพื่อให้การสื่อสารระหว่าง component ปลอดภัยและง่ายต่อการบริหารจัดการ
เมื่อใช้ kyperkube การ deploy kubernetes cluster จะใช้แค่ hyperkube เพียงอย่างเดียวไม่ต้องแยก deploy แต่ละ binary ของ kubernetes อีกต่อไป ยกตัวอย่างการเรียกใช้งานแต่ละ binary จาก hyperkube เช่นการสั่งใช้งาน kubelet จะมีลักษณะดังนี้
hyperkube kubelet \
--api-servers=http://localhost:8080 \
--v=2 \
--address=0.0.0.0 \
--enable-server \
--hostname-override=127.0.0.1 \
--config=/etc/kubernetes/manifests-multi \
--cluster-dns=10.0.0.10 \
--cluster-domain=cluster.local
Minimum System Requirements
- Linux 3.10+
- Memory 512 MB ต่อ server (master)
- 75 MB of ram per node
- Disk space 200 MB
- ทำงานได้บนสถาปัตยกรรม x86_64, ARMv7, ARM64
สำหรับเอกสารสามารถติดตามอ่านได้จากที่นี่
0 Comments