ubuntu
MicroK8s
構成
マスタ: mk8s0(mk8s: ワーカー用コンテナのひな型)
ワーカー:mk8s1,mk8s2,mk8s3
LXD
インストール
$ sudo snap install lxd初期化
初期化はすべてデフォルト。
$ sudo lxd initウェブUI
$ snap set lxd ui.enable=true
$ snap restart --reload lxd$ sudo lxc config set core.https_address "[::]:8443"
詳細設定/localhost にアクセスする(安全ではありません)
- Generate certificate クリック
- Generate and download
- chrome://certificate-manager
- ユーザーの証明書
linuxからインポートした証明書を表示する/インポート - ダウンロードフォルダ内のlxd-ui-localhost.pfxを選択
パスワードは空→OK
ブラウザを閉じる
証明書の選択→OK
$ sudo lxc auth identity create tls/lxd-ui --group adminsトークンを貼り付ける
Connect
LXC
インストール
$ sudo apt-get install lxcMicroK8s
プロファイル作成
$ wget https://raw.githubusercontent.com/ubuntu/microk8s/master/tests/lxc/microk8s.profile -O microk8s.profile
$ sudo lxc profile create mk8s
$ cat microk8s.profile | sudo lxc profile edit mk8s
$ rm microk8s.profileコンテナ生成
$ sudo lxc launch -p default -p mk8s ubuntu:24.04 mk8s0
$ sudo lxc exec mk8s0 -- snap install microk8s --classic
$ sudo lxc exec mk8s0 -- microk8s status --wait-ready
アクセス権限
$ sudo lxc shell mk8s0
# usermod -a -G microk8s $USER
# cat /etc/group | grep microk8s
microk8s:x:1001:root# chown -f -R $USER ~/.kube# ll -l ~/ | grep kube
drwxr-x--- 3 root root 3 Jan 15 05:20 .kube/# exit
logout再度ログイン。
$ sudo lxc shell mk8s0
#kubectl
# snap alias microk8s.kubectl kubectl
Added:
- microk8s.kubectl as kubectlAppAromerプロファイルの適用
# cat > /etc/rc.local <<EOF
#!/bin/bash
apparmor_parser --replace /var/lib/snapd/apparmor/profiles/snap.microk8s.*
exit 0
EOF# chmod +x /etc/rc.local# exit
logoutイメージの保存
$ sudo lxc stop mk8s0
$ sudo lxc publish mk8s0 --alias mk8s
$ sudo lxc start mk8s0$ sudo lxc image edit mk8s
プロファイルの編集が始まるので最終行に以下を追記してmk8s用のプロファイルをデフォルトで適用するようにしておきます。
- mk8s$ sudo lxc launch mk8s mk8s1
Launching mk8s1$ sudo lxc exec mk8s1 -- microk8s status --wait-ready | head -n4
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
$ sudo lxc launch mk8s mk8s2
Launching mk8s2$ sudo lxc exec mk8s2 -- microk8s status --wait-ready | head -n4
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
$ sudo lxc launch mk8s mk8s3
Launching mk8s3$ sudo lxc exec mk8s3 -- microk8s status --wait-ready | head -n4
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
クラスタリング
$ sudo lxc exec mk8s0 -- microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.116.214.200:25000/5c1093b09cb55c249e93c8c756c85b25$ sudo lxc exec mk8s1 -- microk8s join 10.116.214.200:25000/5c1093b09cb55c249e93c8c756c85b25
Contacting cluster at 10.116.214.200
Waiting for this node to finish joining the cluster. .. .. .. ..
Successfully joined the cluster.
$ sudo lxc exec mk8s0 -- microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.218.5.72:25000/2501b3cfede8ef217e936761fae1112e/6a72d40c5862$ sudo lxc exec mk8s2 -- microk8s join 10.218.5.72:25000/2501b3cfede8ef217e936761fae1112e/6a72d40c5862
Contacting cluster at 10.218.5.72
Waiting for this node to finish joining the cluster. .. .. .. ..
Successfully joined the cluster.
$ sudo lxc exec mk8s0 -- microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.218.5.72:25000/d532338304793fca498377bfe58113a5/6a72d40c5862$ sudo lxc exec mk8s3 -- microk8s join 10.218.5.72:25000/d532338304793fca498377bfe58113a5/6a72d40c5862
Contacting cluster at 10.218.5.72
Waiting for this node to finish joining the cluster. .. .. .. ..
Successfully joined the cluster.
確認
$ sudo lxc exec mk8s0 -- kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
mk8s0 Ready <none> 51m v1.32.9 10.218.5.72 <none> Ubuntu 24.04.3 LTS 6.14.0-37-generic containerd://1.6.36
mk8s1 Ready <none> 13m v1.32.9 10.218.5.249 <none> Ubuntu 24.04.3 LTS 6.14.0-37-generic containerd://1.6.36
mk8s2 Ready <none> 5m51s v1.32.9 10.218.5.188 <none> Ubuntu 24.04.3 LTS 6.14.0-37-generic containerd://1.6.36
mk8s3 Ready <none> 61s v1.32.9 10.218.5.221 <none> Ubuntu 24.04.3 LTS 6.14.0-37-generic containerd://1.6.36$ sudo lxc shell mk8s0# microk8s status --wait-ready
microk8s is running
high-availability: yes
datastore master nodes: 10.218.5.72:19001 10.218.5.249:19001 10.218.5.188:19001
datastore standby nodes: 10.218.5.221:19001
...アドオン
(必要なアドオンのみenable)
$ sudo lxc shell mk8s0# microk8s enable dashboard
# microk8s enable dns
# microk8s enable ingress
# microk8s enable metallb
# microk8s enable metrics-server
# microk8s enable multus
# microk8s enable rbac
# microk8s enable registry
# microk8s enable storage
# microk8s status --wait-ready# exit