Creation cluster K3s avec multipass
Si vous voulez tester kubernetes sur votre machine je vais vous montrer comment faire.
Si vous n avez pas forcément 3 serveurs ou machines pour faire votre cluster multipass va permettre de jouer ce rôle 😊😉👍.
Il faut installer multipass:
sudo snap install multipass --classic multipass 1.2.0 par Canonical✓ installé
- Multipass va nous permettre de créer 3VM de 1Go ( en ubuntu 18.04LTS) sur notre ubuntu desktop:
- Création des 3vm nécessaires à notre cluster
~$ multipass launch -n node1
Launched: node1
~$ multipass exec node1 --- lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
~$ multipass list
Name State IPv4 Image
node1 Running 10.183.97.24 Ubuntu 18.04 LTS
multipass launch -n node2
Launched: node2
multipass launch -n node3
Launched: node3
multipass list
Name State IPv4 Image
node1 Running 10.183.97.24 Ubuntu 18.04 LTS
node2 Running 10.183.97.244 Ubuntu 18.04 LTS
node3 Running 10.183.97.33 Ubuntu 18.04 LTS
-
Installation de k3s kubernetes Light sur le 1er noeud:
multipass exec node1 --- bash -c “curl -sfL https://get.k3s.io | sh -”
[INFO] Finding release for channel stable
[INFO] Using v1.17.4+k3s1 as release
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
-
Récupération du token et de l ip sur le noeud master :
TOKEN=$(multipass exec node1 sudo cat /var/lib/rancher/k3s/server/node-token)
IP=$(multipass info node1 | grep IPv4 | awk ‘{print $2}’)
-
Installation sur le 2ème noeud:
multipass exec node2 --- bash -c “curl -sfL https://get.k3s.io | K3S_URL=\”https://$IP:6443\” K3S_TOKEN=\”$TOKEN\” sh -”
[INFO] Finding release for channel stable
[INFO] Using v1.17.4+k3s1 as release
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO] systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO] systemd: Starting k3s-agent
-
Installation sur le 3eme noeud:
multipass exec node3 --- bash -c “curl -sfL https://get.k3s.io | K3S_URL=\”https://$IP:6443\” K3S_TOKEN=\”$TOKEN\” sh -”
[INFO] Finding release for channel stable
[INFO] Using v1.17.4+k3s1 as release
[INFO] Downloading hash https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/rancher/k3s/releases/download/v1.17.4+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO] systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO] systemd: Starting k3s-agent
-
Statut de notre cluster:
multipass exec node1 --- sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready master 2m2s v1.17.4+k3s1
node2 Ready <none> 39s v1.17.4+k3s1
node3 Ready <none> 0s v1.17.4+k3s1
-
Récupération d un fichier yaml avec le certificat afin de pouvoir se connecter à partir d’un autre host
multipass exec node1 sudo cat /etc/rancher/k3s/k3s.yaml > k3s.yaml
cat k3s.yaml
apiVersion: v1
clusters:
-- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJWekNCL3FBREFnRUNBZ0VBTUFvR0NDcUdTTTQ5QkFNQ01DTXhJVEFmQmdOVkJBTU1HR3N6Y3kxelpYSjIKWlhJdFkyRkFNVFU0T1RFeU56Y3dPVEFlRncweU1EQTFNVEF4TmpJeE5EbGFGdzB6TURBMU1EZ3hOakl4TkRsYQpNQ014SVRBZkJnTlZCQU1NR0dzemN5MXpaWEoyWlhJdFkyRkFNVFU0T1RFeU56Y3dPVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkdKUy9HSFZaZTZLQ3RqMlVSVTA3SkJMMXZaSlB5SnovVGE5MzNBYUk2ZHQKVUNIeWY2WkNFOTluMm5HaWFwbmdNL1Vwb2I1c3phVVR0T2VIMmNZY0FSdWpJekFoTUE0R0ExVWREd0VCL3dRRQpBd0lDcERBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUNrOHRqNG15Ui9VCjIrdEJSa3N1OFNEZm9wSS9yazBiY0gxU3BBUG1zZVVVQWlFQXVqZnNQWnlhNTY1WC9RclpsUTJzUG56c0MrZzYKbTJIUnBxZDh2cmVmeXhNPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
server: https://127.0.0.1:6443
name: default
contexts:
-- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
-- name: default
user:
password: bf775c7257f3ac985ed3c2bc9749b51a
username: admin
-
Changement de l ip localhost par l ip du master:
ruben@thinserv1:~$ cat k3s.yaml
apiVersion: v1
clusters:
-- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJWekNCL3FBREFnRUNBZ0VBTUFvR0NDcUdTTTQ5QkFNQ01DTXhJVEFmQmdOVkJBTU1HR3N6Y3kxelpYSjIKWlhJdFkyRkFNVFU0T1RFeU56Y3dPVEFlRncweU1EQTFNVEF4TmpJeE5EbGFGdzB6TURBMU1EZ3hOakl4TkRsYQpNQ014SVRBZkJnTlZCQU1NR0dzemN5MXpaWEoyWlhJdFkyRkFNVFU0T1RFeU56Y3dPVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkdKUy9HSFZaZTZLQ3RqMlVSVTA3SkJMMXZaSlB5SnovVGE5MzNBYUk2ZHQKVUNIeWY2WkNFOTluMm5HaWFwbmdNL1Vwb2I1c3phVVR0T2VIMmNZY0FSdWpJekFoTUE0R0ExVWREd0VCL3dRRQpBd0lDcERBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUNrOHRqNG15Ui9VCjIrdEJSa3N1OFNEZm9wSS9yazBiY0gxU3BBUG1zZVVVQWlFQXVqZnNQWnlhNTY1WC9RclpsUTJzUG56c0MrZzYKbTJIUnBxZDh2cmVmeXhNPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
server: https://10.183.97.24:6443
name: default
contexts:
-- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
-- name: default
user:
password: bf775c7257f3ac985ed3c2bc9749b51a
username: admin
-
Nous pouvons maintenant exécuter les commandes kube à partir de notre host grâce à l export ci-dessous:
snap install kubectl --classic
kubectl 1.18.2 par Canonical✓ installé
export KUBECONFIG=$PWD/k3s.yaml
kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready master 5m37s v1.17.4+k3s1
node2 Ready <none> 4m14s v1.17.4+k3s1
node3 Ready <none> 3m35s v1.17.4+k3s1
-
Si jamais vous voulez aller plus vite je vous ai mis le script à disposition sur mon gitlab:
https://gitlab.mondeunix.com/scripts/public/-/blob/master/k3s-script-with-multipass-local.sh
Vous devez vous connecter pour laisser un commentaire.