■ はじめに
https://dk521123.hatenablog.com/entry/2024/01/02/005053
で、MinikubeによるKubeneticsの環境構築した。 今回は、MicroK8s ってのがあるらしいので Windows/WSL環境で、試してみた。 ちなみに、MicroK8s を知ったきっかけだが、 以下のWSLを起動したときのメッセージで知った。 こういったメッセージは普段うっとおしいが 今回は、いいきっかけになった。 # なお、うっとおしい場合、"touch /home/user/.hushlogin" で消せる
WSLを起動したときのメッセージ
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.146.1-microsoft-standard-WSL2 x86_64) ・・・ ↓★このメッセージで知った★ * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge This message is shown once a day. To disable it please create the /home/user/.hushlogin file.
目次
【1】MicroK8s 【2】Minikubeとの違い 【3】構築手順 1)WSLインストール / Ubuntuインストール 2)systemd の有効化 3)MicroK8s インストール 4)構築状況確認 5)ダッシュボード表示 【4】任意設定 1)kubectlでのエイリアス設定 2)sudo なし実行
【1】MicroK8s
* ローカル環境で実行するように設計された 軽量Kubernetesディストリビューション * マイクロ ケー エイト エス
【2】Minikubeとの違い
項目 | Minikube | microk8s |
---|---|---|
初期起動 | minikube startが必要 | はインストールすると自動的にシングルクラスターが立ち上がる |
【3】構築手順
* 以下のサイトを参考にした
https://microk8s.io/docs/install-wsl2
1)WSLインストール / Ubuntuインストール
* 以下の関連記事を参照
WSL2 ~ Docker-CE / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/14/224428
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
# Update WSL wsl --update wsl --set-default-version 2
2)systemd の有効化
# systemd 有効 echo -e "[boot]\nsystemd=true" | sudo tee /etc/wsl.conf # WSL再起動 wsl --shutdown wsl
3)MicroK8s インストール
$ sudo apt update # snapがなければ、snapインストール # $ sudo apt install snapd # MicroK8s インストール $ sudo snap install microk8s --classic # 特定のVersionをインストールしたい場合 # sudo snap install microk8s --channel=1.25/stable --classic
4)構築状況確認
# クラスタにインストールされているアドオンの状態を表示 $ sudo microk8s status --wait-ready microk8s is running high-availability: no datastore master nodes: 127.0.0.1:19001 datastore standby nodes: none addons: ・・・ sudo microk8s kubectl get node -o wide
5)ダッシュボード表示
# Add-on を有効化 sudo microk8s enable dns sudo microk8s enable storage sudo microk8s enable dashboard $ sudo microk8s dashboard-proxy ... Waiting for secret token (attempt 0) Dashboard will be available at https://127.0.0.1:10443 Use the following token to login: xxxxxxxxx... # ブラウザで以下にアクセスし、 # 表示されているTokenを使ってログインする
6)Nginx起動
sudo microk8s kubectl create deploy --image nginx --replicas 2 nginx sudo microk8s kubectl get deploy,svc,pod
【4】任意設定
「sudo microk8s kubectl get deploy,svc,pod」だと、 本番運用に使えないし、何より長いので、 「kubectl get deploy,svc,pod」で実行できるようにする
1)kubectlでのエイリアス設定
「microk8s kubectl」⇒「kubectl」で実行できるように エイリアス設定する
設定例
https://stackoverflow.com/questions/73157526/microk8s-kubectl-alias
# Yeah, there is a way to create an alias for kubectl in microk8s, run this command # and you will be able to use kubectl directly. $ sudo snap alias microk8s.kubectl kubectl Added: - microk8s.kubectl as kubectl # To confirm $ sudo kubectl get deploy,svc,pod
2)sudo なし実行
ついでに、sudo なし実行でいるようにする やり方だが、例えば、 sudoなしで「kubectl get deploy,svc,pod」を実行すると 丁寧にやりかたを教えてくれる
sudoなしで実行した場合
$ kubectl get deploy,svc,pod Insufficient permissions to access MicroK8s. You can either try again with sudo or add the user user to the 'microk8s' group: sudo usermod -a -G microk8s user sudo chown -R user ~/.kube After this, reload the user groups either via a reboot or by running 'newgrp microk8s'.
設定例
とはいえ、やったことは、以下の関連記事でやった感じでできる
https://dk521123.hatenablog.com/entry/2023/11/22/000000
# Step1: ユーザーアカウントの情報を変更 (user部分は、使用ユーザ) $ sudo usermod -a -G microk8s user # [補足] # usermod コマンド: ユーザーアカウントの情報を変更する # -a (--append) : 「-G」オプションで指定したグループをセカンダリーグループに追加する # -G (--groups): GROUP セカンダリーグループを変更する # Step2: 隠しディレクトリ「.kube」の権限を使用ユーザに変更 sudo chown -R user ~/.kube # Step3: 自分のグループを一時的にmicrok8sへ変更する $ newgrp microk8s # To confirm $ kubectl get deploy,svc,pod
参考文献
https://devops-blog.virtualtech.jp/entry/20221222/1671677112
関連記事
Kubernetes ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2024/01/02/005053
Kubernetes ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/05/01/000000
Kubernetes ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/27/224624
Kubernetes ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/04/013529
Kubernetes ~ Kubernetes Dashboard ~
https://dk521123.hatenablog.com/entry/2023/05/27/144144
Kubernetes ~ 基本編 / minikube ~
https://dk521123.hatenablog.com/entry/2023/05/07/214515
Kubernetes ~ 基本編 / kubectlコマンド ~
https://dk521123.hatenablog.com/entry/2022/01/12/110555
WSL2 ~ Docker-CE / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/14/224428
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
WSL2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/01/29/000000
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000