In this quick entry I’m just going to play with Multipass and K3s on my Debian box because I read a couple of articles about multipass and I want to give it a try.
First of all what is Multipass? According to this page it is a tool to launch and manage VMs on Windows, Mac and Linux that simulates a cloud environment with support for cloud-init. Get Ubuntu on-demand with clean integration to your IDE and version control on your native platform.
And what is K3s: certified Kubernetes distribution built for IoT & Edge computing.
Installing multipass
# apt install snapd
$ snap version
snap 2.42.5
snapd 2.42.5
series 16
debian -
kernel 5.4.0-3-amd64
# mkdir -p /snap/bin
# export PATH=$PATH:/snap/bin
# snap install multipass --classic
multipass 1.0.2 from Canonical✓ installed
# snap list
Name Version Rev Tracking Publisher Notes
core18 20200124 1668 stable canonical✓ base
multipass 1.0.2 1597 stable canonical✓ classic
snapd 2.42.5 5754 stable canonical✓ snapd
# multipass launch --name foo
Launched: foo
# multipass list
Name State IPv4 Image
foo Running 10.83.169.147 Ubuntu 18.04 LTS
# multipass exec foo -- uname -a
Linux foo 4.15.0-76-generic #86-Ubuntu SMP Fri Jan 17 17:24:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
# multipass version
multipass 1.0.2
multipassd 1.0.2
# multipass stop foo
# multipass remove foo
# multipass shell
Launched: primary
Mounted '/root' into 'primary:Home'
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-76-generic x86_64)
...
ubuntu@primary:~$
# multipass list
Name State IPv4 Image
primary Running 10.83.169.197 Ubuntu 18.04 LTS
foo Deleted -- Not Available
Copying your ~/.ssh/id_rsa.pub to the end of root/.ssh/authorized_keys you could access through SSH using IP 10.83.169.197
# ssh-keygen -t rsa
# cat ~/.ssh/id_rsa.pub
ssh-rsa
...
root@fisher3
# multipass shell
ubuntu@primary:~$ echo "ssh-rsa
...
root@fisher3" >> .ssh/authorized_keys
# ssh ubuntu@10.83.169.197
ubuntu@primary:~$
Installing K3s
root@primary:~# curl -sfL https://get.k3s.io | sh -
root@primary:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
primary Ready master 110s v1.17.2+k3s1
# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-58fb86bdfd-lfnp9 1/1 Running 0 4m
kube-system metrics-server-6d684c7b5-zp82z 1/1 Running 0 4m
kube-system helm-install-traefik-zqpm5 0/1 Completed 1 4m1s
kube-system svclb-traefik-t578j 2/2 Running 0 3m21s
kube-system coredns-d798c9dd-flt78 1/1 Running 0 4m
kube-system traefik-6787cddb4b-r7qfh 1/1 Running 0 3m22s
Let’s add a node to our K3s cluster, but first we should recover our foo instance:
# multipass recover foo
# multipass start foo
# multipass exec foo -- bash
ubuntu@foo:~$ $ echo "ssh-rsa ... root@fisher3" >> .ssh/authorized_keys
root@primary:~# cat /var/lib/rancher/k3s/server/node-token
K102f847900ed92babf01bdabce7f57da40bc0eae6574e7152015cbf5d68288115d::server:3c33f458047cacf402ae3fc4a5f6d521
root@foo:~# curl -sfL https://get.k3s.io | K3S_URL=https://10.83.169.197:6443 K3S_TOKEN=K102f847900ed92babf01bdabce7f57da40bc0eae6574e7152015cbf5d68288115d::server:3c33f458047cacf402ae3fc4a5f6d521 sh -
root@primary:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
primary Ready master 54m v1.17.2+k3s1
foo Ready <none> 13m v1.17.2+k3s1
root@foo:~# mkdir ~/.kube
root@primary:~# scp /etc/rancher/k3s/k3s.yaml 10.83.169.147:~/.kube/config
root@foo:~/.kube# sed -i.bak -e 's/127.0.0.1/10.83.169.197/g' config
root@foo:~/.kube# grep server config
server: https://10.83.169.197:6443
root@foo:~# chmod 644 ~/.kube/config
root@foo:~/.kube# kubectl get pods --all-namespaces --insecure-skip-tls-verify
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system local-path-provisioner-58fb86bdfd-lfnp9 1/1 Running 0 61m
kube-system metrics-server-6d684c7b5-zp82z 1/1 Running 0 61m
kube-system helm-install-traefik-zqpm5 0/1 Completed 1 61m
kube-system svclb-traefik-t578j 2/2 Running 0 61m
kube-system coredns-d798c9dd-flt78 1/1 Running 0 61m
kube-system traefik-6787cddb4b-r7qfh 1/1 Running 0 61m
kube-system svclb-traefik-ccn9g 2/2 Running 0 20m
As you can see this is a quick way to have a K3s cluster up and running.
Removing snapd
# apt remove snapd && apt purge snapd
Reference links:
- https://snapcraft.io/install/multipass/debian
- https://www.freshbrewed.science/ubuntu-multipass-better-than-docker/index.html
That’s all folks!!
Excellent article. I’m dealing with a few of these issues as
well..
I’m glad that this entry help you to deal with your issues, thanks for your comment!
alot of info thank u alot
Thank you for your comment!