科技新知

以下流程,假設各位已經

  • 在Ubuntu Server中開設了virtual bridge 供Multipass設定Static IP,並且network interface定為 localbr
  • 使用Packer template制成docker.img , 並存放於當前資料夾內

使用docker.img 起三個node,並使用network interface localbr,各有一個指定的mac address

multipass launch file://$PWD/docker.img --name node21 --network name=localbr,mode=manual,mac="52:54:00:4b:ab:21"
multipass launch file://$PWD/docker.img --name node22 --network name=localbr,mode=manual,mac="52:54:00:4b:ab:22"
multipass launch file://$PWD/docker.img --name node23 --network name=localbr,mode=manual,mac="52:54:00:4b:ab:23"

對運行中的三個node,為它們設定static ip

multipass exec -n node21 -- sudo bash -c 'cat << EOF > /etc/netplan/10-custom.yaml
network:
    version: 2
    ethernets:
        extra0:
            dhcp4: no
            match:
                macaddress: "52:54:00:4b:ab:21"
            addresses: [10.13.31.21/24]
EOF'

multipass exec -n node22 -- sudo bash -c 'cat << EOF > /etc/netplan/10-custom.yaml
network:
    version: 2
    ethernets:
        extra0:
            dhcp4: no
            match:
                macaddress: "52:54:00:4b:ab:22"
            addresses: [10.13.31.22/24]
EOF'

multipass exec -n node23 -- sudo bash -c 'cat << EOF > /etc/netplan/10-custom.yaml
network:
    version: 2
    ethernets:
        extra0:
            dhcp4: no
            match:
                macaddress: "52:54:00:4b:ab:23"
            addresses: [10.13.31.23/24]
EOF'

multipass exec -n node21 -- sudo netplan apply
multipass exec -n node22 -- sudo netplan apply
multipass exec -n node23 -- sudo netplan apply

使用node21作為Leader (Manager),與其他兩個node一起組成Cluster

multipass exec -n node21 -- sudo docker swarm init --advertise-addr 10.13.31.21
multipass exec -n node21 -- sudo docker swarm join-token manager

managerToken=$(multipass exec -n node21 -- sudo docker swarm join-token manager -q)
multipass exec -n node22 -- sudo docker swarm join --token $managerToken 10.13.31.21:2377
multipass exec -n node23 -- sudo docker swarm join --token $managerToken 10.13.31.21:2377

Cluster就建立完成。

若想刪掉重來

multipass delete node21
multipass delete node22
multipass delete node23
multipass purge

備註

在直正使用時,大部份時間還需要做port forwarding。multipass沒有自己的port forward,可以用ssh tunnel來模擬。

例如把Ubuntu Server的8080指向node21的8080,可以這樣

sudo ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa -L 0.0.0.0:8080:10.13.31.21:8080 ubuntu@10.13.31.21

完整的script可以參考initDockerCluster.sh

沒有Bare Metal Ubuntu或者沒有static ip也可以參考initDockerClusterWithoutStaticIp.sh。只是因為network brandwidth問題,我就不會在每次更新時都測試。

馬交野


PUI PUI 天竺鼠車車 電影版 MOLMAX
4DX  職業特工隊:最終清算
4DX  死神來了:血脈
MX4D 劇場版 世界計畫 崩壞的世界與無法歌唱的初音未來 初音透明卡特典場
MX4D 職業特工隊:最終清算
IMAX with Laser 職業特工隊:最終清算
ATEEZ WORLD TOUR TOWARDS THE LIGHT : WILL TO POWER IN CINEMAS
怪獸 8 號: Mission Recon
4DX  ATEEZ WORLD TOUR TOWARDS THE LIGHT : WILL TO POWER IN CINEMAS
向陽·花
獵狐行動
獵狐.行動
關於我和鬼變成家人的那封利是
職業特工隊:最終清算
怪獸8號:Mission Recon
死神來了:血脈
300呎窒息倒數
鐵拳驅魔
獵金•遊戲
送院途中
水餃皇后
雷霆特攻隊*
Until Dawn 死亡輪迴
虎毒不
OMG! 阿媽有喜
劇場版忍者亂太郎 毒菇忍者隊最強之軍師
破.地獄 加長版
英語版  MINECRAFT:我的世界大電影
MINECRAFT :我的世界大電影
PUI PUI 天竺鼠車車 電影版 MOLMAX
4DX  職業特工隊:最終清算