TSUBOCK★LABO-ツボックラボ-

とあるセキュリティエンジニアの技術メモブログ

MENU

Vagrantで立てたUbuntu20.04にmicrok8sをインストールして触ってみた

CKADの練習環境としてmikrok8sをUbuntu 20.04にインストールして触ってみました。

microk8sのインストール

snapを使ってインストールをします。

$ sudo snap install microk8s --classic --channel=1.19
microk8s (1.19/stable) v1.19.8 from Canonical✓ installed

インストールが完了したら、グループにアカウントを追加します

$ sudo usermod -a -G microk8s $USER
$ sudo chown -f -R $USER ~/.kube

MicroK8sには、ステータスを表示するコマンドが組み込まれています。インストール中に、--wait-readyフラグを使用してKubernetesサービスが初期化されるのを待つことができます。

$ microk8s status --wait-ready

microk8sはkubectlを実行するときのprefixにmicrok8sをつけないと行けないのですが、もしマシン上にkubernetesをインストールしない場合は、aliasでkubectlで実行できるように変更すると便利になります。

$ touch ~/.bash_aliases
$ echo "alias kubectl='microk8s kubectl'" > ~/.bash_aliases
$ su - $USER

これでkubectlコマンドのように実行ができます。

Kubectlを試す

ノードを確認してみます。kubernetesではkubectl get nodesで確認できます。

$ kubectl get nodes
NAME      STATUS   ROLES    AGE     VERSION
vagrant   Ready    <none>   6m30s   v1.19.8-34+811e9feeade1d3

ちなみにmicrok8sをつけても動きます。

$ microk8s kubectl get nodes
NAME      STATUS   ROLES    AGE     VERSION
vagrant   Ready    <none>   8m32s   v1.19.8-34+811e9feeade1d3

実行中のサービスを確認する場合はkubectl get servicesを使用します。

$ kubectl get services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.152.183.1   <none>        443/TCP   6m47s

こちらも通常通りmicrok8sをつけても動きます。

$ microk8s kubectl get services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.152.183.1   <none>        443/TCP   33m

kubectlコマンドが遜色なく使えそうなので、この環境でCKADの対策をしてみたいと思います。

参考サイト

Introduction to MicroK8s