Help us understand the problem. What is going on with this article?

k3s と MicroK8s の違いを考える

More than 1 year has passed since last update.

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

タイトルは釣りです。 タイトルを見てきていただいた方には大変申し訳ありませんが、k3sとMicroK8sは簡単に言うとトラックとバイクぐらいの違いがあります。
Kubernetesとの比較も考えると以下のような感じです。

image.png

バイクとトラックは用途も違いますし、特性も当然違います。違いを考えるのも変なのですが、Kubernetesライクな環境でとても特徴がある2つのプロダクトを比べてみたいと思ったので記事を書きました。

0. 前置き

軽量なKubernetesとして話題になっているRancher社が開発しているk3sというのがありますが、Canonical社もMicroK8sという軽量?Kubernetesを開発しています(Microとついているのだから通常のKubernetesよりは軽量であると判断しています)。どちらも、Minikubeのような仮想マシンを利用せずにKubernetesを動かすことができるものです。

どういう機能があり、どのように違うか比較してみました(検証途中であり間違いもあるかもしれませんが、お気づきの点がありましたらご指摘いただければと思います)

1. 用途

k3s

k3s - Lightweight Kubernetes | k3s
https://k3s.io/

k3sは、Rancher Labs社で開発されています。IoTなどのスモールデバイス向きとRancher社はしています。バイナリーサイズは、40MBとRaspberry Piのようにリソースの少ないデバイスでも動くところがポイントだと思います。Rancher社もEgdeコンピューティングやARMバイナリーで動くところを売りにしています。様々な機能が削られていますが、MasterとNodeで稼働し、本来のKubernetesとしての分散管理というところについてはしっかり残されています。

MicroK8s

MicroK8s - Fast, Light, Upstream Developer Kubernetes
https://microk8s.io/

microK8s は、Canonical社で開発されています。開発者の開発環境向きとCanonical社はしています。バイナリーサイズは小さくありません。k3sのようにリソースの削減というところには注力しておらず、ワンコマンドでKubernetesが実行環境を作ることができることを売りにしているようです。MasterとNodeという分散動作はせず、分散環境などの冗長性はありません。開発向けのシングルKubernetesを動かすことに特化していて、簡単にItsioやjaegerを有効にすることができます。そういう意味で、CI/CD用途であったり、簡単にデプロイできるところを狙っているようです。

用途 k3s MicroK8s
IoT、エッジ
簡単インストール
開発環境向き

2. 稼働プラットフォーム

k3s

amd64とarmバイナリーが用意されています。

image.png
https://github.com/rancher/k3s/releases/tag/v0.2.0

MicroK8s

amd64とARMとppc64elバイナリーが用意されています。
(ただし、ppc64elはVersion 1.11.1まで)

image.png

https://snapcraft.io/microk8s

OSは、K3sについてはシングルバイナリーで、Ubuntu、RancherOS、CentOS等で動くことと思われます。MicroK8sは、Snapに対応しているOSであれば、Ubuntu、CentOSで動くと思います。

対応CPUアーキテクチャ k3s MicroK8s
amd64
arm64
ppc64el

3. 機能

どういう機能があるかについてもリストアップしてみます。
※注:このリストは最初に述べたとおり、そもそもk3sとMicroK8sの用途が違うものをリストアップしているので✕なのが良くないということではなく、それぞれに向き不向きがあり、どの分野に適しているかということを示していると思って下さい。

機能 k3s MicroK8s
Docker組み込み(※1)
Kubernetes Master-Node分散
traefik組み込み
GPU対応
Kubernetesバージョン切り替え機能
ダッシュボード
Itsio組み込み
jaeger組み込み
fluentd組み込み
storage組み込み
fluentd組み込み
registry組み込み
ingress組み込み
dns組み込み
metrics-server組み込み
prometheus組み込み
registry組み込み
データストア sqlite3(etcdも可) etcd(シングル)

※1
この記述はあまり正確ではありません。k3sについてはDockerが組み込まれているというよりは、containerdが利用されているとした方がよいでしょう。MicroK8sは挙動を見ているとDockerが動いているように見えます。

★両方の組み込みDockerコマンドでどういうことまでできるか(例えばビルドする等)については追って調査したいと思っています

4. まとめ

k3sとMicroK8sは全く違うコンセプトであることがよく分かりました。
k3sは、現時点ではIoTやエッジコンピューティングの用途に向いていると思います。また、Rancherと連携が今後のキーポイントです。
MicroK8sは、様々なオプションをコマンド一つでオンオフできるので開発者環境として使うのに向いていると思います。Raspberry Piでも動くことは動くと思いますが、単体で動いてもあまり面白みはなさそうです。

5. 感想

Rancher Labs社もCanonical社もどちらも好きな会社です。
どちらのプロダクトにもDockerが組み込んであり、DockerのインストールやVirtualboxを必要としないなどコンテナーシステムにおける新しい地平線を見せてくれているように思います。

k3sは非常に面白いコンセプトで楽しいですが、MicroK8sも盛り上がってほしいですね。

6. リンク集

k3s も MicroK8sもあまり日本語の情報がないのでリンク集を作っておきます。
こんなところにも取り上げられているとか、こういう記述がある、等ありましたらお教え下さい。

k3s

Kubernetesをわずか40MBのシングルバイナリとして軽量かつシンプルにした新ディストリビューション「k3s」登場。Rancher Labsがオープンソースで公開 - Publickey
https://www.publickey1.jp/blog/19/kubernetes40mbk3srancher_labs.html

Rancher Labs、エッジ向けKubernetes軽量ディストリビューションOSSプロジェクト「k3s」を開始:「サイズ約40MBの単一バイナリ」 - @IT
https://www.atmarkit.co.jp/ait/articles/1902/27/news062.html

k3s カテゴリーの記事一覧 - 仮想化通信
https://tech.virtualtech.jp/archive/category/k3s

「k3s」の検索結果 - Qiita
https://qiita.com/search?q=k3s

IoT向けの軽量なKubernetes(?) k3sとはなにか - Qiita
https://qiita.com/inductor/items/1463cefb72296369b49f

k3s動かしてみた (1台構成) - Qiita
https://qiita.com/tukiyo3/items/2ba865042f270dd2b945

MicroK8s

MicroK8sを使ってみる - Qiita
https://qiita.com/niiku-y/items/e5285af4f12b1318cf4e

Kubernetes道場 2日目 - Kubernetesのローカル環境について - Toku's Blog
https://cstoku.io/posts/2018/k8sdojo-02/

microk8s を使って3分でローカル Kubernetes 環境を構築する – mhiro2 – Medium
https://medium.com/mhiro2/try-k8s-in-3minutes-with-microk8s-921d1e3ec6dc

第560回 microk8sでお手軽Kubernetes環境構築:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0560?page=1

stylez
WEB・業務システム、インフラ構築・運用監視まで、幅広い開発実績と経験豊富なエンジニアによる自社開発体制で、スピーディかつ高クオリティのシステム開発を手掛けています。AWSをはじめ各種クラウドやベンダーパートナーとして総合的なITサービスや、独自移行ツールを使ったマイグレーション、サーバーレスなシステム構築、コンテナを利用したDevOpsコンサルティングなどを提供しています。
https://www.stylez.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away