今天在逛Hacker News的時候降传,發(fā)現(xiàn)大家在熱烈討論一個叫K3S的東西撤防。
K8S天天接觸,但K3S就還真的頭一次聽說枣氧。本次好奇的內(nèi)心點開了鏈接剩胁,結(jié)果……
什么是K3S
K3S是一個輕量級的K8S集群昂利,它是Rancher Lab開發(fā)的一個新的產(chǎn)品, 目的是在資源有限的設(shè)備上面跑K8S缚陷。它的最大特點就是小适篙,二進制包只有40MB,只需要512MB的內(nèi)存就能跑起來蹬跃。K3S目的是在一些資源受限的設(shè)備上面把Kubernetes跑起來,主要的應(yīng)用場景包括Edge铆铆,IoT蝶缀,CI和ARM等等,比如在樹莓派上面就能跑薄货。
至于為什么叫K3S呢翁都,官方就一句話
k3s - 5 less than k8s
看了半天,楞是沒明白這個巴掌少在哪里谅猾。放棄……
K3S的工作原理
K3S其實可以看做一個剪裁版的K8S柄慰,例如它把所有alpha feature都去掉了,所有in-tree的storage driver税娜,plugin等等也去掉的坐搔,所以整個執(zhí)行文件編譯出來會非常小。
其中K3S有個非常有意思的的功能敬矩,就是可以使用SQLite3來代替ETCD概行。是的,你在也不用為了找機器來安裝ETCD而煩惱了弧岳!
引用官方的一副圖來簡單描述一下它的整個架構(gòu)
不難看出凳忙,K3S是一個麻雀雖小业踏,五臟俱全的東西,apiserver涧卵,scheduelr勤家,controller-manager,kubelet這些K8S的組件一個都沒有少柳恐。K3S在這些組件之上伐脖,提供了K3S Server 和 K3S Agent這兩個可執(zhí)行文件。有空再實踐一下這個server和agent是怎么玩的胎撤。:-)
思考
我覺得平時的K3S對日常的測試場景還是挺實用的晓殊,大家都可以在自己的環(huán)境里面搭個K8S來測試鏡像。而且這個k8s是可以不依賴etcd的伤提,所有資源信息都保存在sqllite3里面巫俺。沒有ETCD的話,會進一步降低部署的復(fù)雜度肿男。
可能有人會說介汹,測試環(huán)境為什么不用minikube這種all-in-one的K8S來setup啊舶沛? minukube主要的不足是很耗資源嘹承,minikube起來后基本上整臺機器就沒剩多少CPU和內(nèi)存了,更別說測試鏡像了如庭。