MicroK8s バージョン 1.13.4 と 1.14.0の違い

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

# 1. 事の発端

MicroK8s 押しの当Qiita執筆者は、いつものようにMicroK8sをインストールして使っておりました。
しかし、挙動のおかしいコンテナがあったので、MicroK8sでもDockerコマンドが使えたよな。。
Dockerコマンドで動かしてみるか。と思ったわけでございます。

しかし、microk8s.<タブ>といくら打っても出てこないのです。

```shell:bash
$ microk8s.
microk8s.config    microk8s.disable   microk8s.inspect   microk8s.kubectl   microk8s.start   
microk8s.stop      microk8s.ctr       microk8s.enable    microk8s.istioctl  microk8s.reset
microk8s.status  
```

# 2. どうも v1.14.0 にはmicrok8s.dockerコマンドがないらしい

「いやいや、あったよ、あったはずだよ。」
MicroK8sを使ってみる - Qiita
https://qiita.com/niiku-y/items/e5285af4f12b1318cf4e
には、以下のような記載があります。

```
commands:
  - microk8s.config
  - microk8s.disable
  - microk8s.docker
```
ってあった

`"microk8s.docker"` をググってみても以下のブログには出てきます。
microk8sをインストールしたときのログ | あっき帳@３ヶ月で独り立ち、実行中
https://akki.jp/posts/205
こちらのバージョンは、`v1.13.4` でした

# 3. MicroK8s v1.14 でなくなったらしい？？？

そこで、snap refreshで古いバージョンに切り替えてみました。

```shell:bash
$ sudo snap refresh --channel=1.13/stable microk8s
```

v1.13.4 の snap infoを取ってみます。

```shell:bash
$ sudo snap info microk8s
name:      microk8s
summary:   Kubernetes for workstations and appliances
publisher: Canonical✓
contact:   https://github.com/ubuntu/microk8s
license:   unset
description: |
  MicroK8s is a small, fast, secure, single node Kubernetes that installs on just about any Linux
  box. Use it for offline development, prototyping, testing, or use it on a VM as a small, cheap,
  reliable k8s for CI/CD. It's also a great k8s for appliances - develop your IoT apps for k8s and
  deploy them to MicroK8s on your boxes.
commands:
  - microk8s.config
  - microk8s.disable
  - microk8s.docker
  - microk8s.enable
  - microk8s.inspect
  - microk8s.istioctl
  - microk8s.kubectl
  - microk8s.reset
  - microk8s.start
  - microk8s.status
  - microk8s.stop
services:
  microk8s.daemon-apiserver:          simple, enabled, active
  microk8s.daemon-apiserver-kicker:   simple, enabled, active
  microk8s.daemon-controller-manager: simple, enabled, active
  microk8s.daemon-docker:             simple, enabled, active
  microk8s.daemon-etcd:               simple, enabled, active
  microk8s.daemon-kubelet:            simple, enabled, inactive
  microk8s.daemon-proxy:              simple, enabled, active
  microk8s.daemon-scheduler:          simple, enabled, active
snap-id:      EaXqgt1lyCaxKaQCU349mlodBkDCXRcg
tracking:     1.13/stable
refresh-date: today at 17:33 JST
channels:
<<中略>>
installed:        v1.13.4             (438) 229MB classic
```
microk8s.dockerがあります。
バージョン `v1.14.0` のsnap infoはこちらです。

```shell:bash
$ sudo snap info microk8s
name:      microk8s
summary:   Kubernetes for workstations and appliances
publisher: Canonical✓
contact:   https://github.com/ubuntu/microk8s
license:   unset
description: |
  MicroK8s is a small, fast, secure, single node Kubernetes that installs on just about any Linux
  box. Use it for offline development, prototyping, testing, or use it on a VM as a small, cheap,
  reliable k8s for CI/CD. It's also a great k8s for appliances - develop your IoT apps for k8s and
  deploy them to MicroK8s on your boxes.
commands:
  - microk8s.config
  - microk8s.ctr
  - microk8s.disable
  - microk8s.enable
  - microk8s.inspect
  - microk8s.istioctl
  - microk8s.kubectl
  - microk8s.reset
  - microk8s.start
  - microk8s.status
  - microk8s.stop
services:
  microk8s.daemon-apiserver:          simple, enabled, active
  microk8s.daemon-apiserver-kicker:   simple, enabled, active
  microk8s.daemon-containerd:         simple, enabled, active
  microk8s.daemon-controller-manager: simple, enabled, active
  microk8s.daemon-etcd:               simple, enabled, active
  microk8s.daemon-kubelet:            simple, enabled, active
  microk8s.daemon-proxy:              simple, enabled, active
  microk8s.daemon-scheduler:          simple, enabled, active
snap-id:      EaXqgt1lyCaxKaQCU349mlodBkDCXRcg
tracking:     stable
refresh-date: 7 days ago, at 16:05 JST
channels:
<<中略>>
installed:        v1.14.0             (492) 214MB classic
```
microk8s.dockerはありません。

diffしてみました。左がv1.13.4で、右がv1.14.0です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/15176/bfefbf10-377e-a48d-6d05-2d744836518a.png)

microk8s.dockerがなくなって、microk8s.ctrが追加されています。
サービスも同様です。(kubeletが起動していないのは無視してください)

# 4. Change logを探す

MicroK8sのChangelogとかないかと検索してみたのですが、以下のページが見つかりました。

Latest microk8s topics - Discuss Kubernetes
https://discuss.kubernetes.io/tags/microk8s

v1.14のリリースはこちらです。
MicroK8s v1.14 released! - Announcements - Discuss Kubernetes
https://discuss.kubernetes.io/t/microk8s-v1-14-released/5649

```
Containerd replaced dockerd. Thanks to waquidvp 3 for keeping up with 
the containerd and runc updates.
```
dockerdはリプレースされて、containerd と runc になったんですね。