WSL2にMicroK8sをインストール
Introduction
Ubuntu22.04 (WSL2) on Windows10の環境に、MicroK8sをインストールして、ローカル環境にKubernetes実行環境を構築します。
準備
Ubuntu 22.04(WSL2)にDockerがインストールされているものとします。インストールがまだの場合は、下記の記事を参考にしてください。
また、別の記事ではminikubeのインストール手順をまとめています
手順
Ubuntuですので、公式ガイド( https://microk8s.io )にしたがっていけば、さくさくインストールが可能です。
microk8sインストール
以下のコマンドでMicroK8sの安定最新版がインストールされます。
$ sudo snap install microk8s --classic
また、以前のバージョンをインストールする場合は、以下の通りになります。
$ sudo snap install microk8s --classic --channel=1.22/stable
なお、アップデートは以下のコマンドです。
$ sudo snap refresh microk8s
microk8sをsudo無しで実行する
microk8sコマンドをsudo無しで実行できるようにするために、以下のコマンドをを実行します。
$ sudo usermod -a -G microk8s $USER
$ sudo chown -f -R $USER ~/.kube
$ newgrp microk8s
microk8s動作確認
microk8sの動作確認を行います。
$ microk8s status --wait-ready
microk8s is running
...(略)...
なお、microk8sの停止と開始は以下のコマンドです。
$ microk8s stop ← microk8sを停止
Stopped.
$ microk8s start ← microk8sを開始
Started.
Add-onの有効化
microk8sのAdd-onとして、dashboard機能などを有効にしてみます。
$ microk8s enable dashboard registry ingress rbac
Kubernetesコマンド
kubernetesコマンドは、以下のように実行します。
$ microk8s kubectl get all --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/calico-node-244n6 1/1 Running 0 3h16m
kube-system pod/calico-kube-controllers-6679759fd9-tz82d 1/1 Running 0 3h16m
kube-system pod/metrics-server-5f8f64cb86-cr686 1/1 Running 0 3h2m
kube-system pod/kubernetes-dashboard-765646474b-5c2pj 1/1 Running 0 3h1m
kube-system pod/dashboard-metrics-scraper-6b6f796c8d-7s98s 1/1 Running 0 3h1m
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 3h16m
kube-system service/metrics-server ClusterIP 10.152.183.202 <none> 443/TCP 3h2m
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.218 <none> 443/TCP 3h2m
kube-system service/dashboard-metrics-scraper ClusterIP 10.152.183.26 <none> 8000/TCP 3h2m
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/calico-node 1 1 1 1 1 kubernetes.io/os=linux 3h16m
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/calico-kube-controllers 1/1 1 1 3h16m
kube-system deployment.apps/metrics-server 1/1 1 1 3h2m
kube-system deployment.apps/kubernetes-dashboard 1/1 1 1 3h2m
kube-system deployment.apps/dashboard-metrics-scraper 1/1 1 1 3h2m
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/calico-kube-controllers-9969d55bb 0 0 0 3h16m
kube-system replicaset.apps/calico-kube-controllers-6679759fd9 1 1 1 3h16m
kube-system replicaset.apps/metrics-server-5f8f64cb86 1 1 1 3h2m
kube-system replicaset.apps/kubernetes-dashboard-765646474b 1 1 1 3h1m
kube-system replicaset.apps/dashboard-metrics-scraper-6b6f796c8d 1 1 1 3h1m
ダッシュボードの実行
MicroK8sのダッシュボードAdd-onを実行してみます。終了するときはコンソール上でCtrl+Cを押してください。
$ microk8s dashboard-proxy
Checking if Dashboard is running.
Infer repository core for addon dashboard
Waiting for Dashboard to come up.
Create token for accessing the dashboard
secret/microk8s-dashboard-proxy-token created
Waiting for secret token (attempt 0)
Dashboard will be available at https://127.0.0.1:10443
Use the following token to login:
hogehoge
実際には、最後のhogehogeの部分にはログイン用のトークン文字列が表示されます。
ブラウザで https:// 127.0.0.1:10443 にアクセスしたらログイン画面が表示されますので、トークン欄にこの文字列を貼り付けてください。
docker側の設定変更
dockerに、MicroK8sのprivate repositoryを信頼できるレジストリとして登録します。
以下のファイルを作成または編集します。
別記事の手順でdockerをインストールしている場合は、daemon.jsonに"bip"と"fixed-cidr"の設定がしてあるので、その後ろに"insecure-registries"を追加します(fixed-cidrの最後の","を忘れずに)。"bip", "fixed-cidr"の設定が無い場合は、"insecure-registries"の行だけ追加します。
$ sudo nano /etc/docker/daemon.json
{
"bip": "192.168.96.254/24",
"fixed-cidr": "192.96.128.0/24",
"insecure-registries" : ["localhost:32000"]
}
この設定を有効にするために、dockerを再起動します。
$ sudo systemctl restart docker
Discussion