Despre Linux

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

Cum se folosește Helm în Kubernetes

29 aprilie 2018 By Bobses 2 comentarii

După ce am construit propriul cluster Kubernetes, a venit timpul să lansăm containere cu aplicații. Pe lângă modalitatea clasică de a lansa un deployment, în ultimul timp a apărut și ceva care, probabil, va deveni parte din Kubernetes: HELM. Helm și Kubernetes reprezintă viitorul containerizării: cu Helm, clusterul Kubernetes poate fi folosit într-un mod mult mai rapid.

Ce este Helm?

Gândiți-vă la Helm ca la un manager de pachete: pacman în Arch Linux, apt-get în Ubuntu sau yum/dnf în Red Hat/Fedora. Helm este dezvoltat de cei de la Deis și ne ajută să gestionăm aplicațiile K8s. Cu Helm Charts a devenit o joacă lansarea, menținerea, actualizarea, revenirea la o versiune anterioară sau ștergerea aplicațiilor în Kubernetes.

Un chart este usor de creat, menținut, distribuit. Chart-urile sunt pachete de resurse Kubernetes preconfigurate.

Ultima versiune Helm este menținută de Cloud Native Computing Foundation (CNCF), în colaborare cu Microsoft, Google, Bitnami și comunitatea contributorilor Helm.

Helm este folosit pentru:

  • căutarea și utilizarea software-ului popular împachetat sub forma Kubernetes charts
  • distribuirea propriilor aplicații sub forma Kubernetes charts
  • gestionarea inteligentă a fișierelor manifest Kubernetes
  • gestionarea versiunilor pachetelor Helm

Din ce este compus Helm

Helm este compus din două părți: clientul (helm) și un server (tiller).

Serverul tiller rulează în interiorul clusterului K8s și gestionează instalările chart-urilor.

Chart-urile sunt pachete Helm care conțin cel puțin 2 lucruri:

  • o descriere a pachetului (chart.yaml)
  • unul sau mai multe template-uri care conțin fișierele manifest Kubernetes

Chart-urile pot fi stocate pe disc sau aduse din depozite chart (exact cum procedează Debian, Ubuntu sau Red Hat).

Instalarea Helm

Pentru a instala Helm trebuie:

  • să avem acces la un cluster Kubernetes
  • să decidem ce fel de configurări de securitate aplicăm instalării noastre (sau dacă este cazul să aplicăm astfel de setări)
  • să instalăm și să configurăm cele 2 componente: Helm și Tiller.

Dacă vom instala Helm pe un cluster asupra căruai avem control complet (de exemplu, minikube sau un cluster contruit într-o rețea privată în care partajarea nu este o problemă), instalarea default, în care nu trebuie să ne facem griji asupra securității, este cea mai simplă.

Așadar, voi continua cu instalarea default, fără configurarea unor pași adiționali de securitate. Presupunem că avem un cluster configurat ca aici. Sunt mai multe modalități de instalare Helm, dar eu am ales-o pe cea care instalează Helm local, cu ajutorul unui script: vom descărca acest script, apoi îl vom rula.

$ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Instalare Tiller

Tiller, partea de server din Helm, se instalează, de regulă, în interiorul clusterului Kubernetes. Dar , uneori, pentru dezvoltare, poate fi instalat și rulal local, apoi configurat să comunice remote cu un cluster Kubernetes.

Noi îl vom instala pe cluster. Cea mai simplă cale de a instala tiller pe cluster este să rulăm comanda helm init. Această comandă va valida mediul local în care este instalat Helm și va face configurările necesare: se va conecta la clusterul la care se conectează comanda kubectl (rulați comanda kubectl config view), apoi va instala tiller în namespace-ul kube-system.

Așadar, după cum ni se sugerează la finalul instalării Helm, să rulăm comanda de inițializare și care instalează Tiller:

$ helm init

După rularea acestei comenzi, vom putea rula kubectl get pods --namespace kube-system și să vizualizăm podul Tiller:

Acum, rularea comenzii helm version ne va arăta la ce versiune se află Helm și Tiller (pentru a nu apărea necazuri ulterioare, este recomandat ca cele două să fie la aceeași versiune).

Pentru upgrade-ul Tiller, vom rula:

$ helm init --upgrade

Pentru a șterge Tiller (și opțional configurarea locală care, default, se află în ~/.helm):

$ helm reset

Instalarea unui chart

Helm are mai multe moduri de a instala un chart, dar cea mai simplă este cea din depozitul oficial Helm stable.

$ helm repo update   # această comandă se sigură că s-a actualizat cu întreaga listă de chart-uri
$ helm search              # această comandă va afișa toate chart-urile din depozitul stable
$ helm inspect stable/mariadb
   # această comandă ne arată capabilitățile și modul de configurare a unui chart
$ helm install stable/mariadb

În exemplul de mai sus am instalat/lansat chart-ul mysql. Output-ul este de forma:

$ helm install stable/mysql
NAME: exhaling-donkey
LASTE DEPLOYED: ....
NAMESPACE: default
STATUS: DEPLOYED
...

După cum veți vedea în imaginea de mai jos, după instalare ni se oferă câteva informații valoroare: numele deploymentului, statusul său, namespace-ul unde a fost instalat, resurse, dar și note de configurare:

Pentru a revedea ulterior aceste informații, trebuie să rulați comanda helm status urmată de numele deploymentului:

$ helm status exhaling-donkey

Numele oferit de Helm este tot timpul de acest gen: exhaling-donkey, smiling-penguin, etc. Dar la instalarea unui chart putem să optăm pentru orice nume dorim:

$ helm install stable/mariadb --name numele_ales_de_noi

Putem să instalăm un chart de câte ori dorim în interiorul aceluiași cluster.

Informații despre aplicații

Pentru a vizualiza aplicațiile (chart-urile) instalate prin helm:

$ helm list

sau

$ helm ls

Ștergerea unei aplicații

Pentru a șterge un chart instalat cu Helm, nu trebuie decât să rulăm comanda helm delete (putem să-i adăugăm și parametrul --purge pentru a putea refolosi ulterior numele chart-ului):

$ helm delete /stable/mariadb --purge

Adăugare și ștergere repository

Pe lângă depozitul default stable, putem adăuga și alte repositories cu comanda:

$ helm repo add nume-repo https://adresa_IP_repo/charts

Cu comanda de mai jos vizualizăm depozitele curente:

$ helm repo list

Pentru a șterge un repo:

$ helm repo remove nume-repo https://adresa_IP_repo/charts

Obținerea ajutorului

Pentru a învăța mai multe despre comanda helm, folosim helm help sau comanda care ne interesează urmată de flagul -h sau de --help:

$ helm help
$ helm delete -h  # informații despre cum poate fi folosită comanda helm delete
$ helm init -h       # informații despre cum poate fi folosită comanda helm init
$ helm get -h       # informații despre cum poate fi folosită comanda helm get

Articolul de față nu prezintă decât partea de suprafață a tot ceea ce se poate face cu Helm în Kubernetes - domeniul este mult prea vast și complex pentru a putea fi cuprins în doar câteva rânduri. Sper să fi reușit să va fi trezit interesul pentru Helm și să căutați să învățați mai mult.

Pentru a vedea informații complete despre Helm (inclusiv securizarea sa), consultați pagina oficială https://docs.helm.sh/.

Documentație Helm pe GitHub: https://github.com/kubernetes/helm/tree/master/docs

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide în fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide în fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide în fereastră nouă)

Similare

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

Trackbacks

  1. Minikube, cel mai simplu mod de a rula local Kubernetes | Despre Linux spune:
    30 iunie 2018 la 17:09

    […] Helm așa cum am descris aici. Dacă aveți probleme la funcționarea cu Minikube, este posibil să trebuiască să instalați […]

    Răspunde
  2. Kubernetes la DigitalOcean: un nou serviciu pus la dispoziție de platforma cloud | Despre Linux spune:
    5 mai 2018 la 11:43

    […] Mi-ar plăcea să văd că vor oferi suport și pentru Helm. […]

    Răspunde

Lasă un răspuns Anulează răspunsul

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

Copyright © 2021 · Bobses