MacとUbuntuのMicroK8sノードからクラスタを作成する

 

 

1.MicroK8sでクラスタを構築したい

Mac と Ubuntu マシンに MicroK8sをそれぞれインストール

https://microk8s.io/

して、クラスタを構成したい。

https://microk8s.io/docs/clustering

のだが、手順通りに素直ににやるもエラー

お互いのMicroK8sが通信できていない。

2.理由はUbuntu側のMicoroK8sからMacのMicroK8sが見えていない

MacのMicroK8sは、multipass に管理された、hyperkt にインストールされたUbuntuに構成される。

multipassは、仮想マシン管理ツール

$ multipass ls
Name                    State             IPv4             Image
microk8s-vm             Running           192.168.64.2     Ubuntu 18.04 LTS

こんな感じで、multipass に管理された仮想マシンに、Ubuntuがインストールされて、いることがわかる。

multipass の shellコマンドでmicorok8s-vmインスタンスにログインできる

$ multipass shell microk8s-vm
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-122-generic x86_64)
   :
ubuntu@microk8s-vm:~$ 

で、Macの中のMicroK8sと別マシンのUbuntuのMicoroK8sでクラスタを作るには、Hostにしたい側で、microk8s add-node コマンドを叩いて、表示された、joinコマンドを参加させたい側で実行するようなのだが、このMacの中の microk8s-vm 仮想マシンに外部のUbuntuマシンからアクセスできなくお互い通信できないのでタイムアウトなどjoinが失敗する。

 

ブリッジネットワークが構成できれば良いのだろうご思うのだが、できない。。。

2、3日いろいろ手を尽くすしてみるが無理

ブリッジネットワークの構成が主題でなはいので諦める。

3.multipass の local.driver を VirtualBoxに変更

いろいろ調べているうちに、multipass のドライバをhyper kit から、VirtualBoxに変更できるようだが、

Virtual Box でブリッジ接続は、昔からやっている のでなんとかなるだろう。

こちらの手順に切り替え

https://multipass.run/docs/using-virtualbox-in-multipass-macos

brew で Virtual Boxをインストール

$ brew cask install virtualbox

3.1 multipass のドライバを切り替え

現在のドライバを確認

$ sudo multipass get local.driver
hyperkit

現在のVMを削除

$ multipass delete microk8s-vm
$ multipass purge

Virtual Boxに切替え、MicoroK8sの再インストール

$ sudo multipass set local.driver=virtualbox
$ microk8s install
$ sudo VBoxManage list vms
Password:
"microk8s-vm" {d90718db-3795-4116-825f-cffe4a2f0fea}

3.2 ネットワークブリッジを生成

$ VBoxManage list bridgedifs | grep ^Name:
Name:            en0: Wi-Fi (AirPort)
Name:            en1: Thunderbolt 1
Name:            bridge0
Name:            p2p0
Name:            awdl0
Name:            llw0

$ sudo VBoxManage modifyvm microk8s-vm --nic2 bridged --bridgeadapter2 en0

インスタンスを立ち上げて新しいNICの名前(enp0s8)を取得

$ multipass exec microk8s-vm -- ip link | grep DOWN
3: enp0s8:  mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000

enp0s8に設定、反映する。

$ multipass exec microk8s-vm -- sudo bash -c "cat > /etc/netplan/60-bridge.yaml" <<EOF
network:
  ethernets:
    enp0s8:                  # this is the interface name from above
      dhcp4: true
      dhcp4-overrides:       # this is needed so the default gateway
        route-metric: 200    # remains with the first interface
  version: 2
EOF

$ multipass exec microk8s-vm -- sudo netplan apply

IPアドレスを確認

$ multipass exec microk8s-vm -- ip address show dev enp0s8 up 
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:3a:92:dd brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.40/24 brd 192.168.0.255 scope global dynamic enp0s8
       valid_lft 86331sec preferred_lft 86331sec
    inet6 2402:6b00:3666:5800:a00:27ff:fe3a:92dd/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 266sec preferred_lft 266sec
    inet6 fe80::a00:27ff:fe3a:92dd/64 scope link 
       valid_lft forever preferred_lft forever

 

$ sudo VirtualBox で起動。microk8s-vm に ブリッジアダプターが生成されている!!

Virtualbox bridge

3.3 確認

お互いにpingが通った!

コミュニケーションできるノードがadd-nodeに表示された。

Success add node

4.クラスタの作成

4.1 ノード接続コマンドの確認

$ microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.0.2.15:25000/136ac2967078d5490de2d1a2d3a8bf52

If the node you are adding is not reachable through the default interface you can use one of the following:
 microk8s join 10.0.2.15:25000/136ac2967078d5490de2d1a2d3a8bf52
 microk8s join 192.168.0.40:25000/136ac2967078d5490de2d1a2d3a8bf52

4.2 join!!

$ microk8s join 192.168.0.47:25000/1c3d59551648b6da13ccbca9cf1a0fad
Contacting cluster at 192.168.0.47
Waiting for this node to finish joining the cluster. .. 
delhi:~ hirotoyagi$ kubectl get node
NAME          STATUS   ROLES    AGE     VERSION
jinmu         Ready       3d16h   v1.19.3-34+a56971609ff35a
microk8s-vm   Ready       17s     v1.19.3-34+9e8b6537ec8b6f

ようやくクラスタ作成できた!!! ながかった。

Cluster created

参考

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です