#microk8sとは
小規模なKubernetes環境を作成するために作られたパッケージ.
###特徴
・Linuxのシステムであれば簡単にインストールできる
・細かな調整が不要でインストール後,すぐにKubernetes環境として利用できる
・Kubernetesとともに利用することが多いレジストリやストレージなどのツールが無いようされていて,簡単に有効化できる
・コンテナランタイムとしてcontainerd,runcをランタイムとして採用し,内包している
・動作にDockerが不要
・コマンドは「microk8s kubectl」のような名称でインストールされるが,kuectlなどの名称で使えるように別名(alias)が設定できる
#マシン環境
##Master(マスター)
VM名:microk8s-master
OS:Linux
vCPU:4
メモリ:32GB
ハードディスク:45GB
##worker(ワーカー)
VM名:microk8s-worker-1
VM名:microk8s-worker-2
OS:Linux
vCPU:4
メモリ:32GB
ハードディスク:40GB
#Master側での構築
(1)ユーザーをmicrok8sグループに追加
nogisora@microk8s-master:~$ sudo usermod -a -G microk8s nogisora
(2)kube配下のキャッシュディレクトリにアクセスできるように権限を変更
nogisora@microk8s-master:~$ sudo chown -f -R nogisora ~/.kube
(3)kubernetesが使えるかの確認
nogisora@microk8s-master:~$ sudo microk8s kubectl get nodes
NAME STATUS ROLES AGE VERSION
microk8s-master Ready <none> 118m v1.21.1-3+ba118484dd39df
※ワーカーノードのmicrok8s-Worker-1,microk8s-Worker-2でも上記を行う
(4)microk8s-master(マスターノード)を二つのワーカーノードに追加するためのコマンドを取得
nogisora@microk8s-master:~$ sudo microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 192.168.100.91:25000/e368a4d280b3b137b45ac03da4c31c54/5d41a4490d69 →ここの部分をコピー
If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 192.168.100.91:25000/e368a4d280b3b137b45ac03da4c31c54/5d41a4490d69
#Worker側での構築
(1)マスター側で行った(1)~(3)の作業を行う
※省略
(2)microk8s-worker-1,microk8s-worker-2にマスターを追加
nogisora@microk8s-worker-1:~$ microk8s join 192.168.100.91:25000/e368a4d280b3b137b45ac03da4c31c54/5d41a4490d69
Contacting cluster at 192.168.100.91
Waiting for this node to finish joining the cluster.
nogisora@microk8s-worker-2:~$ microk8s join 192.168.100.91:25000/e368a4d280b3b137b45ac03da4c31c54/5d41a4490d69
Contacting cluster at 192.168.100.91
Waiting for this node to finish joining the cluster.
(3)クラスター完成!
nogisora@microk8s-master:~$ sudo microk8s kubectl get nodes
NAME STATUS ROLES AGE VERSION
microk8s-worker-2 Ready <none> 9m8s v1.21.1-3+ba118484dd39df
microk8s-master Ready <none> 147m v1.21.1-3+ba118484dd39df
microk8s-worker-1 Ready <none> 10m v1.21.1-3+ba118484dd39df
#おまけ
microk8s kubectlだと長いのでaliasを使って短縮させる
nogisora@microk8s-master:~$ ls -a
. .. .bash_history .bash_logout .bashrc .cache .gnupg .kube .profile snap .sudo_as_admin_successful .viminfo
nogisora@microk8s-master:~$ vim .bashrc
.bashrcの一番下に以下のコードを書く
alias kubectl='microk8s kubectl '
alias k='microk8s kubectl'
・確認
nogisora@microk8s-master:~$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 172m
nogisora@microk8s-master:~$ k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 172m
#まとめ
今回はLinux環境をmicrok8sクラスタを作成した
kubernetes環境がとても簡単に使えるようになるのでぜひ試してほしいと思います
#参考文献
この記事は以下の情報を参考にして執筆しました。
Microk8sとは(OSSのデージ-ネット)