今回は、第3回で紹介できなかった以下の3つの学習用サービスを紹介します。
- MicroK8s
- k3s
- Katacoda
MicroK8sとk3sは軽量なKubernetes環境に位置付けられ、単なる学習用(下表No.3)としてだけではなく、IoT環境のように容量に制限がある環境など、さまざまなシーンでの活用が期待されています。
また、Katacodaはブラウザベースでクラウドネイティブ技術を学べる無料総合学習サイトで、Kubernetesを動作させることができるだけでなく、無料の学習コースも用意されています。
MicroK8s
MicroK8sは軽量なKubernetes環境です。Minikubeとは異なり、VirtualBoxを必要としないため、仮想サーバ上でも動作します。シングルノードで軽量に動作し、IstioやKnativeやKubeflowが動作するなど本格的な機能を備えているため、Kubernetesの学習をするにはうってつけです。
では早速、MicroK8sを使ってみましょう。公式サイトにアクセスし、「Get started」ボタンをクリックします。
ここでは「macOS」を選択し、「Download Multipass for macOS」ボタンをクリックしてインストーラをダウンロードします。
コンソールからmultipassを起動し、multipassに入ります。その後snapを使ってmicrok8sをインストールしましょう。
$multipass launch --name microk8s-vm --mem 4G --disk 40G
Launched: microk8s-vm
$multipass shell microk8s-vm
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-70-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Mon Nov 25 19:15:38 JST 2019
System load: 0.03 Processes: 103
Usage of /: 2.5% of 38.60GB Users logged in: 0
Memory usage: 3% IP address for enp0s2: 192.168.64.3
Swap usage: 0%
0 packages can be updated.
0 updates are security updates.
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.
multipass@microk8s-vm:~$ sudo snap install microk8s --classic
2019-11-25T19:33:10+09:00 INFO Waiting for restart...
microk8s v1.16.3 from Canonical✓ installed
MicroK8sの起動状況を確認します。
multipass@microk8s-vm:~$ sudo microk8s.status --wait-ready
mAicrok8s is running
addons:
cilium: disabled
dashboard: disabled
dns: disabled
fluentd: disabled
gpu: disabled
helm: disabled
ingress: disabled
istio: disabled
jaeger: disabled
juju: disabled
knative: disabled
kubeflow: disabled
linkerd: disabled
metrics-server: disabled
prometheus: disabled
rbac: disabled
registry: disabled
storage: disabled
標準的なサービスを起動し、セットアップは完了です。
multipass@microk8s-vm:~$ sudo microk8s.enable dns dashboard registry
Enabling DNS
Applying manifest
serviceaccount/coredns created
configmap/coredns created
deployment.apps/coredns created
service/kube-dns created
clusterrole.rbac.authorization.k8s.io/coredns created
clusterrolebinding.rbac.authorization.k8s.io/coredns created
〜中略〜
Applying registry manifest
namespace/container-registry created
persistentvolumeclaim/registry-claim created
deployment.apps/registry created
service/registry created
The registry is enabled
Minikubeと同様、kubectlを試してみます。以下では、「get nodes」や「get services」を実行しています。
multipass@microk8s-vm:~$ sudo microk8s.kubectl get nodes
NAME STATUS ROLES AGE VERSION
microk8s-vm Ready 4d19h v1.16.3
multipass@microk8s-vm:~$ sudo microk8s.kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 443/TCP 4d19h
MicroK8sを停止するには、「microk8s.stop」を実行します。
multipass@microk8s-vm:~$ sudo microk8s.stop
Stopped.
k3s
k3sは軽量なKubernetes環境であり、Kubernetesの公認ディストリビューションです。Rancher Labsにより開発され、40MB未満のバイナリで提供されています。軽量なことから、エッジコンピューティング、IoT、CIなどの用途に期待されています。
2019年11月18日にv1.0がリリースされ、2020年4月15日現在はv1.17.4+k3s1が最新バージョンとなっています。サポートされているOSはUbuntuやRaspbian Busterとなっており、Macでは動作しないのでご注意ください。
インストールは以下のコマンドを実行するのみで完了し、kubectlコマンドなどが利用可能な状態になります。
$curl -sfL https://get.k3s.io | sh -
[INFO] Finding latest release
[INFO] Using v1.17.4+k3s1 as release
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
$ sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-xx-xx-xx Ready master 112s v1.17.4+k3s1
Katacoda
KatacodaはKubernetesやDockerやTensorflowなどのクラウドネイティブ技術の総合無料学習サイトで、「Play with Kubernetes Classroom」のようにブラウザのみで学習することができます。
EKSやGKEのようなクラウド環境をお持ちでない方や、Minikubeなどのインストール作業をせずにすぐに試してみたい方にお勧めです。
例えば、「Kubernetes Introduction」の「Start Course」を選択してみてください。「Launch A Single Node Cluster」コースでは、左ペインに表示された手順に沿って、右ペインにてコマンドを打っていくだけで簡単に学習を進めることができます。
* * *
今回はMicroK8s、k3s、Katacodaを紹介しました。MicroK8sとk3sは非常に簡単に環境構築でき、かつ軽量に動作します。また、Katacodaについてはブラウザのみですぐに学習を開始することができるのが利点です。 「Kubernetesを使い始めたいけれど、ハードルが高い」と感じられている方は、ぜひ試してみてください。著者紹介
![]() |
正野 勇嗣 (SHONO Yuji ) -
NTTデータ
課長
2011年まで開発自動化技術のR&Dに従事。その後、開発プロジェクト支援やトラブルシューティング等に主戦場を移す。「ソースコード自動生成」に加えて、JenkinsやMaven等の「ビルド自動化」、JsTestDriverやSelenium等の「テスト自動化」を扱うようになり、多様化する開発自動化技術動向に興味。
最近は第四の自動化であるInfrastructure as Code等の「基盤自動化」の魅力に惹かれている。開発自動化技術に関する雑誌・記事執筆も行う。3児のパパ。