blog.kuepper.nrw

Multipass K3S VM mit Cloud-init

Rüdiger Küpper Kubernetesk3sHomeLabmultipassCloud-init

k3s k9s

Multipass installieren

❯ brew install multipass

Cloud-Init Yaml erstellen

cloud-init.yaml

packages:
# - traceroute
# - frr

runcmd:
- export HOME='/home/ubuntu'
- export USER='ubuntu'
- cd $HOME
- curl -sfL https://get.k3s.io | sh -s - server --cluster-init --disable=servicelb --tls-san=192.168.64.251 --disable=traefik
- echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" > /root/.bashrc
- wget https://github.com/derailed/k9s/releases/download/v0.32.7/k9s_Linux_arm64.tar.gz; tar xzf k9s_Linux_arm64.tar.gz; mv k9s /usr/local/bin/;
- curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3; chmod 700 get_helm.sh; ./get_helm.sh

VM erstellen

❯ multipass launch -c 1 -m 1G --disk 10G --network en0 --name controlplane-test --cloud-init cloud-init.yaml

❯ multipass list
Name                    State             IPv4             Image
cloud-init-test         Running           192.168.64.45    Ubuntu 24.04 LTS
                                        10.0.2.109
                                        10.42.0.0
                                        10.42.0.1

In VM einloggen

❯ multipass shell controlplane-test
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic aarch64)

Last login: Mon Feb  3 20:26:31 2025 from 192.168.64.1
ubuntu@controlplane-test:~$ sudo su - 
root@controlplane-test:~# kubectl get nodes
NAME              STATUS   ROLES                       AGE   VERSION
controlplane-test Ready    control-plane,etcd,master   7m    v1.31.5+k3s1
root@controlplane-test:~# kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS        AGE
kube-system   coredns-ccb96694c-knm8m                   1/1     Running   0               6m58s
kube-system   local-path-provisioner-5cf85fd84d-h9rjg   1/1     Running   2 (6m49s ago)   6m58s
kube-system   metrics-server-5985cbc9d7-cv25j           1/1     Running   2 (6m49s ago)   6m58s
root@controlplane-test:~#

VM löschen

❯ multipass delete controlplane-test
❯ multipass purge 
Rüdiger Küpper
DevOps Engineer & CISO @ Mogenius