Am mai scris cum putem instala Kubernetes pe mașina proprie: am folosit fie mașini virtuale, fie minikube. În acest articol, voi prezenta o altă modalitate extrem de simplă cu ajutorul căreia putem avea propriul cluster Kubernetes pe sistemul nostru local în doar câteva minute - kubeadm-dind-cluster.
Nu voi insista pe ceea ce înseamnă Docker in Docker, ci doar pe inițializarea în doar câțiva pași a unui cluster K8s folosind DIND: în principiu, Docker in Docker înseamnă că un container Docker rulează propriul să daemon Docker.
Clusterul kubeadm-dind se bazează, după cum spune și numele, pe kubeadm și Docker. Deocamdată, kubeadm-dind-cluster nu rulează pe sisteme de fișiere btrfs.
Cerințe inițiale
Va trebui să avem instalat docker (recomandat o versiune mai mare de 1.12). În rândurile următoare voi prezenta cum se instalează docker în Fedora 29 (pentru celelalte distribuții folosiți depozitele software aferente).
Instalare Docker
În Fedora 29, Docker versiunea 1.13.1 se instalează foarte ușor, doar rulând comanda:
# dnf install docker
Porniți serviciul și verificați starea sa:
# systemctl enable --now docker
# systemctl status docker
Instalare kubeadm-dind-cluster
Proiectul oferă scripturi preconfigurate pentru versiunile Kubernetes de la 1.10 la 1.13.
Aceste scripturi sunt foarte ușor de folosit. De exemplu, vom instala Kubernetes 1.13 ca mai jos:
# wget https://github.com/kubernetes-sigs/kubeadm-dind-cluster/releases/download/v0.1.0/dind-cluster-v1.13.sh
# chmod +x dind-cluster-v1.13.sh
Pornirea clusterului se face cu comanda:
# ./dind-cluster-v1.13.sh up
La prima rularea durează aproximativ 5-7 minute până este inițializat clusterul. Următoarea pornire va fi aproape instant.
Se adaugă
# export PATH="$HOME/.kubeadm-dind-cluster:$PATH"
În acest moment, putem verifica nodurile existente:
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
kube-master Ready master 7m8s v1.13.0
kube-node-1 Ready <none> 6m40s v1.13.0
kube-node-2 Ready <none> 6m39s v1.13.0
Se pot ridica mai multe noduri (să spunem 3) dacă rulăm scriptul cu parametrul:
# NUM_NODES=3 ./dind-cluster-v1.8.sh up
Pentru a opri clusterul se rulează comanda:
# ./dind-cluster -v1.13.sh down
Din păcate, la viitoarea pornire a clusterului nu vor fi reconstituite aplicațiile instalate.
Dacă nu dorim să ridicăm clusterul o perioadă mai mare de timp, vom șterge toate resursele sale (următoarea pornire cu up va dura mai mult, la fel ca la prima inițializare):
# ./dind-cluster-v1.13.sh clean
Deși nu recomand, kubeadm-dind-cluster oferă și posibilitatea accesării și configurării clusterului K8s cu ajutorul unui dashboard. Astfel, la finalul secvenței de pornire (după rularea comenzii bash dind-cluster-v1.13.sh up), vi se spune și adresa la care poate fi accesat panoul de control:
Dashboard-ul arată astfel:
În imaginea gif de mai jos pot fi urmărite câteva comenzi simple date în cluster, precum și o instalare de HELM:
Acest tip de cluster Kubernetes ridicat cu doar câteva clickuri este folositor pentru a învăța diferite comenzi sau comportamente ale nodurilor, podurilor și ale celorlalte resurse K8s. Nu este indicat să lucrăm cu el dacă vrem să ne păstrăm munca pentru mai mult timp - pentru asta, clusterul ridicat cu mașini virtuale este ideal (dar durează mult mai mult configurarea sa).
Pentru mai multe informații și versiuni actualizate, se poate accesa pagina de pe Github a proiectului kubeadm-dind-cluster.
Lasă un răspuns