Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Cluster Kubernetes bazat pe kubeadm și docker-in-docker

17 ianuarie 2019 By Bobses Lasă un comentariu

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ă calea către kubectl în PATH (eventual, puteți adăuga și în fișierul .bash_profile):

# 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:

kubeadm-dind-cluster-adresa-dashboard

Dashboard-ul arată astfel:

kubeadm-dind-cluster-dashboard

În imaginea gif de mai jos pot fi urmărite câteva comenzi simple date în cluster, precum și o instalare de HELM:

kubeadm-dind-cluster

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.

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Click to share on Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Tutoriale Etichete: docker, helm, k8s, kubernetes

Lasă un răspunsAnulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2025 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii {vendor_count} Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}