Noțiuni introductive cu Kubernetes: o introducere pentru începători

Kubernetes este cel mai popular software open-source care automatizează procesele de dezvoltare a containerelor.

Potrivit studiului anual al Cloud Native Computing Foundation (CNCF), 96% dintre organizații fie folosesc K8-uri, fie iau în considerare utilizarea lor. Dacă urmăriți îndeaproape, 5,8 milioane de dezvoltatori din întreaga lume folosesc Kubernetes, ceea ce reprezintă 31% dintre dezvoltatorii backend din întreaga lume.

Este preferat pentru capacitatea sa de a folosi tehnologia prin scalabilitate îmbunătățită, disponibilitate și timp scurt de implementare. În timp ce mulți dezvoltatori își pornesc traiectoria containerelor cu Docker (un instrument cuprinzător care se bazează pe CLI pentru a interacționa cu containerele, unul câte unul), K8s vă oferă abstracții la nivel înalt pentru a defini aplicațiile și infrastructura acestora prin scheme care poți colabora.

Dacă sunteți nou în Kubernetes, acest articol este special conceput pentru a vă ajuta să treceți prin elementele introductive și să vă împărtășiți informații pentru a începe. Veți afla cum K8s vă poate ajuta în calitate de dezvoltator în supraalimentarea produselor dvs. digitale.

Ce este Kubernetes și de ce aveți nevoie de el?

Kubernetes este un motor de coordonare open-source (cadru) utilizat în automatizarea implementării, scalarea și gestionarea aplicațiilor containerizate; aceasta include gestionarea predictibilității și disponibilității.

Mai simplu spus, să ne gândim la o aplicație pe care ați containerizat-o. Pentru a servi utilizatorilor aplicației, trebuie să rulați mai multe containere. Îngrijorarea apare atunci când trebuie să gestionați aceste containere. Este posibil ca containerele să nu fie neapărat pe aceeași mașină, ceea ce face mai complicat. Deci, care este soluția la această problemă?

Kubernetes îți vine în ajutor oferind o modalitate eficientă de a gestiona fără probleme toate aceste procese. Deși puteți compara K8-urile cu un motor de containere precum Docker, este un orchestrator de containere. În calitate de dezvoltator care începe, nu trebuie să vă faceți griji cu privire la modul în care K8s face orchestrarea. Probabil că nu veți configura un cluster K8s pentru aplicația dvs.; mai multe despre asta în scurt timp.

Cu toate acestea, veți interacționa cu clusterele pe care echipa dvs. de infrastructură le-a înființat. Este crucial să vă familiarizați cu obiectele cu care veți interacționa. Dar înainte de a face asta, veți avea nevoie de o înțelegere la nivel înalt a arhitecturii sale pentru a înțelege ce se întâmplă sub ea.

Caracteristicile Kubernetes

Kubernetes are mai multe caracteristici cu o gamă largă de capabilități pentru rularea containerelor și a altor infrastructuri asociate. Iată o listă:

  • Lansări automate, scalare și rollback – K8s robotizează crearea numărului specificat de replici, distribuirea acestora pe hardware-ul adecvat (cel mai potrivit) și reprogramarea containerelor dacă un nod este în timp de nefuncționare. Vă puteți scala instantaneu replicile în funcție de cerere sau de nevoile în schimbare, cum ar fi utilizarea procesorului.
  • Descoperirea serviciilor, stabilizarea încărcării și intrarea în rețea – Kubernetes oferă o soluție unică de rețea, inclusiv descoperirea serviciilor interne și expunerea containerelor publice.
  • Aplicații cu și fără stare – În primele zile, K8-urile s-au concentrat în principal pe containerele fără stat. Pe măsură ce tehnologia evoluează pe mai multe fronturi, acum găzduiește obiecte încorporate care reprezintă aplicații cu stare. Ratificată, orice aplicație poate rula pe Kubernetes.
  • Reglementarea stocării – Indiferent dacă vă aflați într-un sistem de fișiere local, în rețea partajată sau în cloud, Kubernetes oferă (rezumate) stocare persistentă aplicațiilor care rulează pe containere. Iar abstractizarea vă permite să definiți cerințele de stocare, indiferent de infrastructura de bază. Deși acest lucru depășește scopul acestui articol, funcționează prin principii precum volumul persistent (PV), revendicarea volumului persistent (PVC), clasele de stocare și pluginurile de volum.
  • Stare declarativă – K8s utilizează fișiere Yet Ain’t Markup Language (YAML), numite manifeste obiect, pentru a specifica stările dorite pentru clusterul dvs. Manifestele dictează cum arată clusterul dvs., inclusiv, dar fără a se limita la, instanțe de aplicație și reguli de rețea dorite, printre alte configurații. Când aplicați manifeste, K8s se ocupă automat de toate tranzițiile de stare – nu ar trebui să scrieți scripturile pentru a face acest lucru.
  • Medii de lucru multiple – Nu sunteți limitat la utilizarea Kubernetes în cloud sau la stația de lucru pentru dezvoltatori. Aproape fiecare distribuție este disponibilă pentru a se potrivi cu cazul dvs. de utilizare specific. Căutați furnizorii importanți de tehnologie cloud precum Amazon Web Services, Google Cloud și Microsoft Azure. Veți realiza că toate oferă servicii Kubernetes gestionate, în timp ce distribuțiile cu un singur nod, cum ar fi Minikube și K3s, sunt disponibile pentru uz local.
  • Super Extensivitate – K8s este o colecție de multe funcționalități. De parcă nu ar fi suficient, îi puteți accelera capacitățile cu extensii. Puteți crea tipuri de obiecte personalizate, operatori și controlere pentru a vă simplifica sarcinile de lucru.
  •   Psihologia culorilor în marketing: o perspectivă descriptivă

    Arhitectura Kubernetes

    La bază, arhitectura Kubernetes cuprinde un singur nod principal și două noduri de lucru. Nodul principal face apeluri în cluster, în timp ce nodurile de lucru (slave) rulează aplicațiile așa cum a decis de către master.

    Sursa: kubernetes.io

    Iată o defalcare suplimentară.

    Nodul(ele) principal

    Nodul Master dictează stările clusterului și decide acțiunile fiecărui nod particular. Sunt necesare mai multe procese pentru a configura nodul principal.

  • Server API
    Toate comunicările cluster se bazează aici. Este poarta de acces care permite tuturor componentelor clusterului să facă schimb de informații. Acesta expune API-ul Kubernetes. Sunt două roluri principale jucate aici. Primul este un punct de intrare care permite utilizatorilor să interacționeze cu clusterul. De exemplu, trimiterea de cereri atunci când utilizați Kubectl. În al doilea rând, gatekeeping pentru autentificarea și validarea cererilor. În acest caz, numai anumiți utilizatori pot executa cereri.
  • Programator
    Planificatorul atribuie aplicații sau obiecte de sarcină de lucru Kubernetes nodului de lucru. Aici, planificatorul plasează pod-uri pe noduri pe baza cerințelor de resurse. Și când vorbiți de pod-uri, este doar o mică unitate de implementare în Kubernetes.
  • Manager de controler
    Această unitate menține clustere precum eșecurile nodurilor pentru a menține numărul corect de poduri. Detectează modificările stării clusterului, cum ar fi moartea podurilor și încearcă să restabilească podul la starea inițială. De exemplu, dacă un pod moare accidental, managerul controlerului solicită planificatorului să ratifice care nod învârte un nou pod ca înlocuitor, iar kubelet învârte un nou pod.
  • etcd
    Este denumit și creierul cluster. Unitatea este un magazin de valori cheie pentru configurația clusterului. Înseamnă că toate modificările clusterului sunt făcute aici. Puteți face copii de rezervă pentru un cluster salvând magazinul distribuit cu valori cheie. Cu toate acestea, vă rugăm să rețineți că aici sunt stocate doar datele privind starea clusterului, nu și datele aplicației. Această unitate este special pentru deținerea informațiilor despre starea clusterului și pentru a le folosi pentru procesele anterioare care activează conștientizarea acestora despre cluster.
  • Nodul(ele) sclav

    Fiecare nod slave este instalat cu trei procese de noduri care permit K8-urilor să interacționeze cu el și să rotească separat pod-uri în fiecare nod. Procesele necesare sunt:

  • Kubelet
    Acesta este serviciul principal Kubernetes care rulează execuția pentru stratul de execuție al containerului. Dacă scoateți această unitate, Kubernetes nu este altceva decât un API REST aprobat cu un magazin cheie-valoare. În mod implicit, K8s execută aplicația container. Containerele sunt întotdeauna izolate unul de celălalt și de sistemul gazdă subiacent. Acest lucru s-a dovedit analitic pentru a decupla managementul aplicațiilor individuale unul de celălalt și infrastructura fizică sau virtuală.
      Care este parola implicită Wisenet DVR?

    În timp ce controlul de admitere API poate respinge pod-urile sau adăuga constrângeri suplimentare, kubelet este ratificatorul final al ce pod-uri rulează pe un anumit nod, nu programatori sau Daemonsets. Pentru a rezuma, kubeleturile interacționează cu nodul și containerul. De asemenea, preia fișiere de configurare și învârte pod-uri folosind timpul de rulare al containerului.

  • Durata de rulare a containerului
    Această secțiune rulează containere. De exemplu, puteți folosi Docker, rkt sau conatinered puțin mai mult despre modul în care funcționează containerele.
  • Kube-proxy
    Această unitate furnizează un strat de abstractizare pentru grupurile de pod de noduri în conformitate cu politici comune, cum ar fi cazul echilibrării sarcinii. Toate nodurile aplică Kube-proxy pentru a oferi o adresă IP virtuală clienților care accesează pod-uri dinamice. Această structură este soluția pentru echilibrarea sarcinii, păstrând în același timp o supraîncărcare de performanță scăzută.
  • Cum funcționează containerizarea

    Containerizarea presupune virtualizarea tuturor componentelor necesare ale unei aplicații software într-o singură unitate. Sub containere se află o colecție de biblioteci, binare și toate configurațiile necesare pentru aplicații. Dar nu includ resurse de kernel sau hardware virtualizat.

    În cele din urmă, executați timpi de execuție a containerului „de sus” care descriu resursele. Deoarece containerele includ doar componentele de bază și dependențele aplicațiilor, acestea sunt ușoare și, prin urmare, mai rapide, spre deosebire de alte mașini virtuale.

    Citește și: Containers vs. Virtual Machines: Explicarea diferențelor

    Cum se instalează și se configurează Kubernetes

    Am petrecut atât de mult timp fiind teoretic; secțiunea în cascadă va fi tactică și va implica o experiență practică în containere. Acest tutorial acoperă în special instalarea pe sistemul de operare Windows.

    Există mai multe moduri de a face instalări atunci când utilizați Windows; puteți opta pentru linia de comandă sau interfața grafică cu utilizatorul. Cu toate acestea, trebuie să vă asigurați că îndepliniți următoarele specificații obligatorii.

    Hardware-ul dvs. are nevoie de un nod master cu cel puțin 2 GB de memorie și 700 MB pentru nodul de lucru. Pentru cerințele software, Hype-v, Docker pentru desktop, adresă unică Mac și un UUID unic de produs pentru fiecare nod. Iată abordarea pas cu pas.

    Instalarea și configurarea Hyper-V

    Hyper-V este software-ul de virtualizare implicit al Windows. În esență, este un VirtalBox pe steroizi. Vă permite să gestionați mașinile virtuale fie pe GUI Microsoft, fie pe linia de comandă. Pentru a activa Hyper-V, urmați acești pași.

  • Deschide Panoul de control.
  • Faceți clic pe programe din panoul din stânga.
  • Sub pagina program și funcții, faceți clic pe „Activați sau dezactivați funcțiile Windows”.
  • Selectați caracteristicile Hyper-V și Hypervisor pentru Windows.
  • Apoi, selectați ok la acest pas; aparatul dvs. ar trebui să repornească pentru a activa noile setări.
  • Ocazional, computerul poate reporni separat pentru a se asigura că totul este configurat corect. Puteți verifica succesul instalării introducând următoarea comandă în Power Shell.

    Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

    Confirmați că ecranul dvs. este populat cu o stare „activată”.

    Instalarea Docker

    După cum ați învățat, K8s este un instrument de orchestrare a containerelor construit pe deasupra containerelor; în acest caz, Docker este o alegere bună. K8s comunică cu Docker și gestionează totul la nivel de întreprindere. Mișcă-te descărcând Docker pentru Windows. Dacă vă întrebați de ce este necesar să utilizați Docker Desktop, acesta este preferat pentru simplificarea dezvoltării, expedierii și rulării aplicațiilor dockerizate (containerizate).

      Cum să adăugați o casetă de selectare la un document Google

    Este, de asemenea, cea mai rapidă modalitate de a construi aplicații Docker pe Windows folosind Hyper-V și rețele. După instalarea cu succes, Docker este întotdeauna accesibil pe orice terminal atâta timp cât rulează. Pentru un ghid detaliat despre instalare, puteți consulta documentația oficială Docker. Dacă întâmpinați probleme, cum ar fi pictogramele ascunse după instalare, problema poate fi rezolvată prin repornirea mașinii.

    Instalarea Kubernetes

    Interfața grafică Docker vă permite să configurați setările, să instalați și să activați Kubernetes. Pentru a instala K8s, urmați acești pași.

  • Faceți clic dreapta pe pictograma barei Docker și selectați proprietăți.
  • Selectați „Setări” din meniul drop-down după ce faceți clic pe „Proprietăți”.
  • În panoul din stânga, alegeți „Kubernetes” și faceți clic pe „Aplicați”.
  • Docker va instala apoi câteva pachete și dependențe suplimentare. Procesul durează aproximativ cinci până la zece minute, în funcție de viteza dvs. de internet. Puteți folosi aplicația Docker pentru a afirma că totul funcționează corect.

    Deoarece aplicațiile Kubernetes pot fi implementate folosind CLI, poate fi necesar să instalați tabloul de bord K8s, deoarece nu este instalat implicit. Instalați tabloul de bord urmând pașii următori.

  • Descărcați configurația YAML.
  • Implementați aplicația folosind acest cod: . Kubectl aplică -f .recommended.yaml.
  • Confirmați că totul este setat bine de: kubectl.exe get -f .recommended.yaml.txt.
  • Pentru a accesa tabloul de bord, rulați următoarea comandă pe Power Shell (nu CMD)

  • Rulați următorul cod ((kubectl -n kube-system describe secret default | select-string „token:”) – împărțiți „+”)[1]
    • Copiați simbolul generat și rulați proxy kubectl.
  • În browser, deschideți acest link.
  • Faceți clic pe `Token` și inserați token-ul aici.
  • Conectare.
  • Dacă ați ajuns aici, bravo, ecranul dvs. ar trebui să fie populat cu tabloul de bord K8s. Acum vă puteți gestiona aplicațiile fără a face munca grea folosind CLI.

    Citește și: Cum se instalează Kubernetes pe Ubuntu 18

    Cum să creați și să gestionați clusterul Kubernetes

    Dacă ați urmărit aici, ar trebui să fi instalat cu succes Kubernetes pe gazda dvs. Apoi, urmați acești pași pentru a crea și a efectua o gestionare simplă a clusterului dvs.:

  • Configurați rețeaua – Aici trebuie să configurați rețeaua între nodurile de cluster; le permite să comunice între ei.
  • Configurați autentificarea clusterului – Creați mecanisme de autentificare și autorizare pentru accesul la cluster.
  • Configurați componentele principale; implică serverul API, planificatorul și managerul de controler.
  • Alăturați nodurile de lucru – Conectați nodurile de lucru la cluster folosind fișierele de configurare furnizate de procesul de configurare a clusterului.
  • Implementați suplimente – Puteți instala extensii pentru a îmbunătăți funcționalitatea clusterului.
  • Gestionați sarcinile de lucru – Este timpul să vă implementați aplicațiile.
  • Deși aceasta este doar o prezentare generală a procesului de creare a clusterului, aceasta implică mulți pași care implică mai multe comenzi. Iată ghidul de documentație oficial despre cum să creați clustere înainte de implementare. Ar trebui să fie mâna ta călăuzitoare.

    Cum să implementați prima aplicație folosind Kubernetes

    Cea mai comună comandă atunci când utilizați K8s este resursa de acțiune kubectl, care vă permite să efectuați acțiuni specifice, cum ar fi crearea sau ștergerea unei resurse specificate.

    Dacă sunteți blocat, puteți utiliza –help după o anumită subcomandă pentru a obține informații suplimentare.

    De exemplu, Kubernetes obține noduri – ajutor. Implementați prima aplicație K8s folosind comanda kubectl create deployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1.

    Cuvinte finale

    Acest ghid a fost un punct de intrare în tehnologia Kubernetes. Ați învățat beneficiile, caracteristicile și arhitectura Kubernetes. Din fericire, este posibil să fi trebuit să consultați câteva indicații (resurse externe) pentru a începe; a explicat cum funcționează lucrurile sub capotă.

    Deși poate părea copleșitor să înțelegi întreaga stivă tehnologică ca un începător, această postare a fost un ghid simplu pentru a vă ajuta să începeți cu K8s. Veți avea nevoie de puțină practică pentru a avea încredere în utilizarea acestei tehnologii, așa că vă trimit la documentația oficială Kubernetes ca referință alăturată. Cu cât ai mai multă practică, cu atât mai repede vei deveni un expert în K8-uri.

    Apoi, consultați tutorialele Kubernetes pentru începători.