Rancher Labsは2019年2月26日(米国時間)、IoTなど、コンピューティングリソースへの制限が厳しい環境で動かすためのKubernetesディストリビューションを開発するオープンソースプロジェクト、「k3s」を開始した。
Rancher Labsは2019年2月26日(米国時間)、IoTなど、コンピューティングリソースへの制限が厳しい環境で動かすためのKubernetesディストリビューションを開発するオープンソースプロジェクト、「k3s」を開始した。
k3sは、Rancher Labsが進めてきた「Rio」という、サーバレスやサービスメッシュに焦点を当てたコンテナツールの開発過程で生まれたものという。RioはKubernetesのフルクラスタ上で動くものとなっていたが、メモリ消費量の多さが気に入らなかったため、Kubernetesからなくても良いコンポーネントを除くことで、軽量化を図ってきたという。
「その過程で、3つのことに気づいた。第1に、Rioの機能が全く不要であっても、Rioは私たちの知っているあらゆるKubernetesクラスタの稼働方法の中で、最もシンプルなものになっていた。第2にKubernetesをエッジで動かしたいというリクエストをますます多くの顧客から受けるようになった。(中略)第3に、私たちがこれをオープンに開発してきたため、Rioのこのコンポーネントを見つけた人たちが、軽量Kubernetes、そしてARMでも動かせるようなものとして非常に興味を持つに至った」(k3sの開始を説明したRancher Labsのブログポストより。以下同)
そこでRancher Labsでは、Rioの基盤としてではなく、完全準拠の軽量Kubernetesディストリビューションを開発することにし、古い機能やアルファ段階の機能などを削る取り組みを進めた。結果として、素のKubernetesと比較してメモリ消費量を4分の1に減らすことに成功したという。
「Dockerを使った単一ノードのKubernetes v1.13.3クラスタは1GBを少し超える程度のメモリを使う。k3sの同一構成では260MBを少し超える程度で、これにはアップストリームのクラスタに含まれないingressコントローラーやサービスロードバランサーが含まれている」
「k3sはサイズが約40MBの単一バイナリとしてパッケージされており、この単一バイナリには、コンテナランタイム、iptables、socat、duといった重要なホストユーティリティなど、Kubernetesを動かすために必要なものが全て含まれている。OSに依存するものはLinuxカーネルそのもの、および適切なdev、proc、sysfsのマウント(これは最近のあらゆるディストリビューションで自動実行される)に限られる」
Copyright © ITmedia, Inc. All Rights Reserved.