Mac+Multipass+MicroK8s+Virtual Boxでネットワークブリッジを構成する
MacとUbuntuのMicroK8sノードからクラスタを作成する から該当箇所を抜き出す(頻繁に参照することになったため)。
1.Mac の multipass 内の MicroK8s-vm(Ubuntu) にネットワークブリッジを構成する
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:~$
Multipassの外側のMacから仮想マシンにアクセスできるのだが、この仮想マシンを外部のネットワークに参加させることができないので、Virtual Boxのブリッジネットワークを構成する。
2.multipass の local.driver を VirtualBoxに変更
Virtual Box でブリッジ接続を行うことで、Multipass内の仮想マシンをネットワークに外部参加させる
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 に ブリッジアダプターが生成されている!!
3.3 確認
外部PCから、接続を試みる。OK!
参考
- https://discourse.ubuntu.com/t/troubleshooting-networking-on-macos/12901#arp-problems
- https://hnakamur.github.io/blog/2020/05/25/change-macos-hypervisor.framework-vm-subnet-ip-address/
- https://microk8s.io/docs/high-availability https://askubuntu.com/questions/1263043/cannot-access-an-ubuntu-guest-vm-running-under-multipass-on-an-ubuntu-host-from https://qiita.com/ynott/items/be8810f83d1db6f4540b
- https://discourse.ubuntu.com/t/troubleshooting-networking-on-macos/12901
- https://tech.virtualtech.jp/entry/2019/10/25/150802
- https://www.virtualbox.org/manual/ch06.html#network_bridged