MicroK8s(LXD)

マルチモードで構成。

LXD インストール

マルチノード作成

プロファイル作成

$ lxc profile create myProfile
$ wget https://raw.githubusercontent.com/ubuntu/microk8s/master/tests/lxc/microk8s-zfs.profile -O microk8s.profile
$ cat microk8s.profile | lxc profile edit myProfile
$ rm microk8s.profile

masterノード作成

$ lxc launch -p default -p myProfile ubuntu:20.04 master
$ lxc exec master -- snap install microk8s --classic
$ lxc exec master -- snap alias microk8s.kubectl kubectl

AppArmor profiles

$ lxc shell master
$ 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
$ lxc list master

workerノード用のイメージを保存する

workerノードのイメージはmasterノードのイメージと基本一緒なので、ひな形を作成しておく。

$ lxc stop master
$ lxc publish master --alias myProfile
$ lxc start master
$ sudo lxc image edit myProfile

最後に追記
– myProfile

workerノード作成

$ lxc launch myProfile worker01
$ lxc launch myProfile worker02

ノード追加

マスターノードでmicrok8s add-node。
表示されたmicrok8s join … を、ワーカーノードで貼り付け。

worker01

$ lxc exec master -- microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.12.160.6:25000/7e79e070bd9169f57b8e5c9cc108286f/9b795b17b8e6

Use the '--worker' flag to join a node as a worker not running the control plane, eg:
microk8s join 10.12.160.6:25000/7e79e070bd9169f57b8e5c9cc108286f/9b795b17b8e6 --worker

If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 10.12.160.6:25000/7e79e070bd9169f57b8e5c9cc108286f/9b795b17b8e6
microk8s join fd42:abfe:1775:df51:216:3eff:fe30:2c47:25000/7e79e070bd9169f57b8e5c9cc108286f/9b795b17b8e6

$ lxc shell worker01
# microk8s join 10.12.160.6:25000/7e79e070bd9169f57b8e5c9cc108286f/9b795b17b8e6 --worker
# exit

worker02

$ lxc exec master -- microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.12.160.6:25000/c2fd470dcf7ee8c6fe93ea73acc5eb56/9b795b17b8e6

Use the '--worker' flag to join a node as a worker not running the control plane, eg:
microk8s join 10.12.160.6:25000/c2fd470dcf7ee8c6fe93ea73acc5eb56/9b795b17b8e6 --worker

If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 10.12.160.6:25000/c2fd470dcf7ee8c6fe93ea73acc5eb56/9b795b17b8e6
microk8s join fd42:abfe:1775:df51:216:3eff:fe30:2c47:25000/c2fd470dcf7ee8c6fe93ea73acc5eb56/9b795b17b8e6

$ lxc shell worker02
# microk8s join 10.12.160.6:25000/c2fd470dcf7ee8c6fe93ea73acc5eb56/9b795b17b8e6 --worker
# exit

正常終了コメント

The node has joined the cluster and will appear in the nodes list in a few seconds.

This worker node gets automatically configured with the API server endpoints.
If the API servers are behind a loadbalancer please set the '--refresh-interval' to '0s' in:
    /var/snap/microk8s/current/args/apiserver-proxy
and replace the API server endpoints with the one provided by the loadbalancer in:
    /var/snap/microk8s/current/args/traefik/provider.yaml

確認

$ lxc exec master -- kubectl get nodes -o wide
NAME       STATUS   ROLES    AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
worker01   Ready    <none>   15m     v1.27.5   10.12.160.238   <none>        Ubuntu 20.04.6 LTS   6.2.0-33-generic   containerd://1.6.15
master     Ready    <none>   40m     v1.27.5   10.12.160.6     <none>        Ubuntu 20.04.6 LTS   6.2.0-33-generic   containerd://1.6.15
worker02   Ready    <none>   7m6s    v1.27.5   10.12.160.100   <none>        Ubuntu 20.04.6 LTS   6.2.0-33-generic   containerd://1.6.15

Helm 3

$ lxc shell master
# snap install helm --classic
# exit

公開鍵・秘密鍵 作成

$ ssh-keygen
$ cat .ssh/id_rsa.pub # 公開鍵をコピー
$ lxc shell master
# nano .ssh/authorized_keys
行末に貼り付け

Visual Studio Codeインストール

multipass

Host: multipass
HostName:

$ multipass list master

User: ubuntu

LXD

Host: lxd
HostName:

$ lxc list master

User: root

タイトルとURLをコピーしました