Kubernetesをわずか40MBのシングルバイナリとして軽量かつシンプルにした新ディストリビューション「k3s」登場。Rancher Labsがオープンソースで公開

2019年3月1日

Rancher Labsは、Kubernetesの標準機能を保ちつつ徹底的にスリムダウンし、わずか40MBのシングルバイナリに納めたKubernetesの新しいディストリビューション「k3s」をオープンソースで公開しました。

fig1

k3sはシングルバイナリの中に、Kubernetesクラスタの実行に必要なものはすべて組み込んでいると、次のように紹介されています

k3s is packaged as a single binary which is about 40 megabytes in size. Bundled in that single binary is everything needed to run Kubernetes, including the container runtime and any important host utilities like iptables, socat, and du. The only OS dependencies are the Linux kernel itself and a proper dev, proc, and sysfs mounts (this is done automatically on all modern distros).

k3sは約40MBのサイズのシングルバイナリにパッケージされています。このシングルバイナリにKubernetesの実行に必要なもの、コンテナランタイム、iptables、socat、duといったあらゆる重要なホストユーティリティなどがすべてバンドルされています。唯一OSに依存するものは、Linuxカーネルおよびdev、proc、sysfs mountsなどです(これらはモダンなディストリビューションにはすべて自動的に収容されています)。

k3s bundles the Kubernetes components (kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, kube-proxy) into combined processes that are presented as a simple server and agent model.

また、k3sはKubernetesのコンポーネント(kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, kube-proxy)などをシンプルなサーバおよびエージェントモデルとなるコンバインドプロセスとしてバンドルしています。

k3sは「k3s server」でKubernetesサーバが立ち上がり、「k3s agent オプション群」でノードが追加できるなど、実行と運用もシンプルに実現できるようになっています。

軽量でシンプルな特徴を備えたうえで、Cloud Native Computing FoundationのKubernetes認証プログラムである「Certified Kubernetes」を取得。標準のKubernetesとしての機能を備えています。

k3sは、エッジの環境やIoT、開発環境などに最適とされ、対応するCPUもx86に加えてARM64とARMv7が用意されています。

古いコードや開発中のコードを削除、etcdの代わりにSQLiteを採用

k3sは、Kuberenetesをスリムダウンする手段として、まず非推奨(depricated)になったAPIのコードや、デフォルトになっていないストレージのドライバといった非標準的なコードを削除。

またコンテナランタイムのDockerをcontainerdに置き換えることで、Dockerに付随するSwarmやlibnetwork、Dockerのストレージドライバなども削除。

さらに、標準の分散データベースとして採用されているetcdの代わりにSQLiteを採用するなどしています。

特に古いコードやまだアルファ版状態など開発中のコードを削除したことでコードのサイズが劇的に小さくなったとのことです。

そのうえで実行時のメモリ消費量も抑えるためにKubernetesの複数のサーバを単一プロセスに統合。さらにワーカーノードで実行されるKubelet、kubeproxy、flannelエージェントなどのプロセスも単一プロセスに統合しています。

こうしたことで実行用のバイナリは約40MBのシングルバイナリとなり、実行時に消費するメモリもオリジナルのKubernetesが約1GBなのに対して、260MB程度と約4分の1になったとしています。

関連記事

Rancher Labsはこのk3sを組み込んだ軽量なLinuxディストリビューションの「k3OS」も発表しています。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本