To install multipass in macOS, you can follow my tutorial here: https://blog.emka.web.id/2022/03/how-to-install-multipass-on-macos.html.
for this little experiment, you will create a minimal setup of Docker Swarm, as per my understanding one manager and two worker nodes will be sufficient along with one server for NFS shared storage.
$ multipass launch -n manager $ multipass launch -n worker1 $ multipass launch -n worker2 $ multipass launch -n nfsserverrunning above commands with defaults, created required VMs for this POC.
$ multipass list Name State IPv4 Image manager Running 10.100.1.5 Ubuntu 20.04 LTS nfsserver Running 10.100.1.4 Ubuntu 20.04 LTS worker1 Running 10.100.1.6 Ubuntu 20.04 LTS worker2 Running 10.100.1.7 Ubuntu 20.04 LTSInstall Docker CE in manager and worker nodes is pretty straight forward, run below scripts as root user
$ apt-get update && apt-get upgrade -y $ apt-get remove docker docker-engine -y $ apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common python-setuptools -y $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" $ apt-get update $ apt-get install docker-ce -y $ systemctl enable docker $ systemctl restart docker $ apt install python3-pip -y $ pip install docker-compose $ usermod -aG docker ubuntuLogin to manager, worker1 and worker2 shell and verify if docker is properly installed, by executing below command from each VM.
docker --version Docker version 20.10.8, build 3967b7d Initialize docker manager instance $ docker swarm init --advertise-addr 10.100.1.5 run join command from each worker VM $ docker swarm join --tokenenjoy it!10.100.1.5:2377 check if the setup is working as expected $ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION jklhgjfturtaiuskghmv * manager Ready Active Leader 20.10.8 jkhgutyikjhgmnjghmvn worker1 Ready Active 20.10.8 cfgrtdyfhgvncfghggvh worker2 Ready Active 20.10.8 try installing an nginx web server in this cluster and verify if container deployment is working as expected $ docker service create --name my-web --publish 8080:80 --replicas 2 nginx $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS s9eabxqjgu98 my-web replicated 2/2 nginx:latest *:8080->80/tcp above command deploys nginx webserver with 2 replicas, check where these 2 containers are deployed to ubuntu@manager:~$ docker service ps my-web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS jghasgghjda my-web.1 nginx:latest worker2 Running Running 48 seconds ago fdreytfghca my-web.2 nginx:latest manager Running Running 56 seconds ago
0 comments:
Post a Comment