Kubernetes Tutorial - Un ghid cuprinzător pentru Kubernetes



Acest blog pe Kubernetes Tutorial vă va prezenta prin toate conceptele de sistem de orchestrare a containerelor cu un hands-on.

Kubernetes este o platformă care elimină procesele manuale implicate în implementarea aplicațiilor containerizate. În acest blog pe Kubernetes Tutorial, veți parcurge toate conceptele legate de această soluție de gestionare a mai multor containere.

Următoarele subiecte vor fi tratate în acest tutorial:





Acum, înainte de a merge mai departe în acest blog, permiteți-mi să vă informez rapid despre containerizare.

Deci, înainte ca containerele să existe, dezvoltatorii și testerii au avut întotdeauna un tiff între ei. De obicei, acest lucru s-a întâmplat deoarece ceea ce a funcționat pe partea dev, nu ar funcționa pe partea de testare. Ambele au existat în medii diferite. Acum, pentru a evita astfel de scenarii, au fost introduse containere, astfel încât dezvoltatorii și testerii să se afle pe aceeași pagină.



Manipularea unui număr mare de containere toate împreună a fost, de asemenea, o problemă. Uneori, în timpul rulării containerelor, din partea produsului, au fost ridicate câteva probleme, care nu erau prezente în etapa de dezvoltare. Acest tip de scenarii au introdus Container Orchestration System.

Înainte să mă scufund adânc în sistemul de orchestrație, permiteți-mi să enumăr rapid provocările cu care se confruntă fără acest sistem.



Tutorial Kubernetes: Provocări fără orchestrarea containerelor

Provocări fără orchestrarea containerelor - Tutorial Kubernetes - Edureka

tablou cum să creați un set

După cum puteți vedea în diagrama de mai sus când mai multe servicii rulează în containere, poate doriți să scalați aceste containere. În industriile pe scară largă, acest lucru este foarte greu de realizat. Acest lucru se datorează faptului că ar crește costul pentru întreținerea serviciilor și complexitatea de a le rula unul lângă altul.

Acum, pentru a evita configurarea manuală a serviciilor și pentru a depăși provocările, era nevoie de ceva mare. Aici intră în imagine Container Orchestration Engine.

Acest motor ne permite să organizăm mai multe containere, astfel încât să fie lansate toate mașinile de bază, containerele să fie sănătoase și distribuite într-un mediu grupat. În lumea de astăzi, există în principal două astfel de motoare: Guvernatori & Docker Swarm .

Tutorial Kubernetes: Kubernetes vs Docker Swarm

Guvernatori și Docker Swarm sunt instrumente de orchestrare a containerelor pe piața de astăzi. Așadar, înainte de a le folosi în produs, trebuie să știți exact ce sunt și cum funcționează.

Mai departe, în blog, voi face o scufundare profundă în Kubernetes, dar pentru a afla despre Docker puteți face clic .

După cum puteți face referire la imaginea de mai sus, Kubernetes, în comparație cu Docker Swarm, deține o comunitate activă excelentă și împuternicește scalarea automată în multe organizații. În mod similar, Docker Swarm are un cluster ușor de pornit în comparație cu Kubernetes, dar este limitat la capacitățile API-ului Docker.

Ei bine, oameni buni, acestea nu sunt singurele diferențe dintre aceste instrumente de top. Dacă doriți să cunoașteți diferențele detaliate dintre ambele instrumente de orchestrare a containerelor, puteți face clic

Vrei să afli mai multe despre Kubernetes?

Dacă aș putea alege alegerea mea între cele două, atunci ar trebui să fie Kubernetes, deoarece containerele trebuie gestionate și conectate la lumea exterioară pentru sarcini precum planificarea, echilibrarea încărcării și distribuția.

Dar, dacă vă gândiți logic, Docker Swarm ar face o opțiune mai bună, deoarece rulează deasupra Docker, nu? Dacă aș fi în locul tău, m-aș fi confundat cu siguranță cu privire la instrumentul de utilizat. Dar hei, Kubernetes este un lider incontestabil pe piață și, de asemenea, rulează pe containerele Docker cu funcționalități mai bune.

Acum, că ați înțeles necesitatea Kubernetes, este un moment bun, pe care vi-l spun Ce este Kubernetes?

Tutorial Kubernetes: Ce este Kubernetes?

este un open-source sistem care se ocupă de programarea containerelor pe un cluster de calcul și gestionează încărcările de lucru pentru a se asigura că acestea rulează după cum intenționează utilizatorul. Fiind creat de Google, oferă o comunitate excelentă și lucrează strălucit cu toți furnizorii de cloud pentru a deveni un soluție de gestionare a mai multor containere.

Tutorial Kubernetes: Caracteristici Kubernetes

Caracteristicile Kubernetes sunt următoarele:

  • Programare automată: Kubernetes oferă programator avansat pentru a lansa containerul pe nodurile cluster pe baza cerințelor lor de resurse și a altor constrângeri, fără a sacrifica disponibilitatea.
  • Capacități de auto-vindecare: Kubernetes permite înlocuirea și reprogramarea containerelor atunci când nodurile mor. De asemenea, ucide containerele care nu răspund la verificările de sănătate definite de utilizator și nu le promovează clienților până când nu sunt gata de servire.
  • Lansări și reveniri automate: Kubernetes lansează modificări ale aplicației sau ale configurației acesteia, în timp ce monitorizează starea de sănătate a aplicației pentru a se asigura că nu vă ucide toate instanțele în același timp. Dacă ceva nu merge bine, cu Kubernetes puteți anula modificarea.
  • Scalare orizontală și echilibrare a sarcinii: Kubernetes poate mări și micșora aplicația conform cerințelor cu o comandă simplă, utilizând o interfață de utilizare sau automat pe baza procesorului.

Tutorial Kubernetes: Arhitectura Kubernetes

Kubernetes Architecture are următoarele componente principale:

  • Noduri principale
  • Noduri muncitor / sclav

Voi discuta pe fiecare dintre ele unul câte unul. Deci, inițial, să începem prin a înțelege Nod Maestru .

Nod Maestru

Nodul master este responsabil pentru gestionarea clusterului Kubernetes. Este în principal punctul de intrare pentru toate sarcinile administrative. Pot fi mai multe noduri master în cluster pentru a verifica toleranța la erori.

După cum puteți vedea în diagrama de mai sus, nodul master are diferite componente, cum ar fi API Server, Controller Manager, Scheduler și ETCD.

  • Server API: Serverul API este punctul de intrare pentru toate comenzile REST utilizate pentru a controla clusterul.
  • Manager controler: Este un daemon care reglează clusterul Kubernetes și gestionează diferite bucle de control care nu se termină.
  • Programator: Planificatorul programează sarcinile către nodurile slave. Stochează informațiile de utilizare a resurselor pentru fiecare nod sclav.
  • ETCD: ETCD este un magazin cheie-valoare simplu, distribuit, consistent. Este utilizat în principal pentru configurarea partajată și descoperirea serviciilor.

Noduri muncitor / sclav

Nodurile de lucru conțin toate serviciile necesare pentru a gestiona rețeaua dintre containere, pentru a comunica cu nodul principal și pentru a aloca resurse containerelor programate.

După cum puteți vedea în diagrama de mai sus, nodul lucrător are diferite componente, cum ar fi Docker Container, Kubelet, Kube-proxy și Pods.

  • Container Docker: Docker rulează pe fiecare dintre nodurile lucrătorului și rulează pod-urile configurate
  • Kubelet: Kubelet primește configurația unui Pod de pe serverul API și se asigură că containerele descrise sunt în funcțiune.
  • Proxy Cuba: Kube-proxy acționează ca un proxy de rețea și un echilibru de sarcină pentru un serviciu pe un singur nod lucrător
  • Pădițe: Un pod este unul sau mai multe containere care rulează logic împreună pe noduri.

Dacă doriți o explicație detaliată a tuturor componentelor Arhitecturii Kubernetes, vă puteți referi la blog pe

Doriți să obțineți certificarea în Kubernetes?

Tutorial Kubernetes: Studiu de caz Kubernetes

Da ahoo! JAPONIA este un furnizor de servicii web cu sediul în Sunnyvale, California. Întrucât compania își propunea să virtualizeze hardware-ul, compania a început să folosească OpenStack în 2012. Mediul lor intern s-a schimbat foarte repede. Cu toate acestea, datorită progresului tehnologiei cloud și a containerelor, compania a dorit capacitateaposibilitatea de a lansa servicii pe diferite platforme.

Problemă: Cum să creați imagini pentru toate platformele necesare dintr-un cod de aplicație și să implementați aceste imagini pe fiecare platformă?

Pentru o mai bună înțelegere, consultați imaginea de mai jos. Când codul este modificat în registrul de coduri, atunci imaginile metalice goale, containerele Docker și imaginile VM sunt create de instrumente de integrare continuă, împinse în registrul de imagini și apoi sunt implementate pe fiecare platformă de infrastructură.


Acum, permiteți-ne să ne concentrăm asupra fluxului de lucru al containerelor pentru a înțelege modul în care au folosit Kubernetes ca platformă de implementare. Consultați imaginea de mai jos pentru a vă arunca o privire în arhitectura platformei.

Se utilizează instanțe OpenStack, cu Docker, Kubernetes, Calico, etcd pentru a efectua diverse operațiuni precum rețeaua de containere, Registrul de containere și așa mai departe.

Când aveți mai multe clustere, atunci devine greu să le gestionați, nu?

Deci, au vrut doar să creeze un cluster OpenStack simplu, de bază, pentru a oferi funcționalitatea de bază necesară Kubernetes și pentru a face mediul OpenStack mai ușor de gestionat.

Prin combinația fluxului de lucru de creare a imaginii și Kubernetes, au construit lanțul de instrumente de mai jos, ceea ce îl face ușor de la introducerea codului până la implementare.


Acest tip de lanț de instrumente s-a asigurat că au fost luați în considerare toți factorii pentru implementarea producției, cum ar fi închirierea multiplă, autentificarea, stocarea, rețeaua, descoperirea serviciilor.

clasă vs interfață în java

Așa oamenii, Yahoo! JAPONIA a construit un lanț de instrumente de automatizare pentru implementarea codului „cu un singur clic” în Kubernetes care rulează pe OpenStack, cu ajutorul Google și Solinea .

Tutorial Guvernatori: Hands-On

În acest Hands-On, vă voi arăta cum să creați o implementare și un serviciu. Folosesc o instanță Amazon EC2, pentru a utiliza Kubernetes. Ei bine, Amazon a venit cu Serviciul Amazon Elastic Container pentru Guvernatori (Amazon EKS) , care le permite să creeze clustere Kubernetes în cloud foarte rapid și ușor. Dacă doriți să aflați mai multe despre aceasta, puteți consulta blogul

Pasul 1: Primul creați un folder în interiorul căruia vă veți crea implementarea și serviciul. După aceea, utilizați un editor și deschideți un fișier de implementare .

mkdir handsOn cd handsOn vi Deploy.yaml

Pasul 2: După ce deschideți fișierul de implementare, menționați toate specificațiile pentru aplicația pe care doriți să o implementați. Aici încerc să implementez un httpd cerere.

apiVersion: apps / v1 # Definește tipul versiunii API: parametrul Deployment #Kinds definește ce fel de fișier este, aici este metadatele de implementare: nume: dep1 # Stochează numele specificațiilor de implementare: # Sub Specificații, menționezi toate specificațiile pentru replicile de implementare: 3 # Numărul de replici ar fi 3 selector: matchLabels: app: httpd # Numele etichetei care ar fi căutat este șablonul httpd: metadate: etichete: app: httpd # Numele modelului ar fi specificația httpd: # Sub Specificații, menționați toate specificațiile pentru containerele de containere: - nume: httpd # Numele containerelor ar fi httpd imagine: httpd: ultima # Imaginea care trebuie descărcată este httpd: ultimele porturi: - containerPort: 80 # Aplicația ar fi expus pe portul 80

Pasul 3: După ce scrieți fișierul de implementare, aplicați implementarea utilizând următoarea comandă.

kubectl apply -f Deploy.yaml

Aici -f este un nume de pavilion folosittel depuneNume.

Pasul 4: Acum, odată ce implementarea este aplicată, obțineți lista podurilor care rulează.

kubectl obține păstăi - prea largi

Aici, -o wide sunt folosite pentru a ști pe ce nod rulează implementarea.

Pasul 5: După ce ați creat o implementare, acum trebuie să creați un serviciu. Pentru asta, utilizați din nou un editor și deschideți un gol serviciu. fișier yaml .

vi service.yaml

Pasul 6: După ce deschideți un fișier de service, menționați toate specificațiile pentru serviciu.

apiVersion: v1 # Definește tipul versiunii API: Serviciul # Parametrul tip definește ce fel de fișier este, aici este metadatele serviciului: nume: netsvc # Stochează numele specificației serviciului: # Sub Specificații, menționați toate specificațiile pentru tipul de serviciu: Selector NodePort: aplicație: porturi httpd: -protocol: port TCP: 80 targetPort: 8084 # Numărul portului țintă este 8084

Pasul 7: După ce vă scrieți fișierul de service, aplicați fișierul de service folosind următoarea comandă.

kubectl apply -f service.yaml

Pasul 8: Acum, odată ce serviciul este aplicat pentru a verifica dacă serviciul rulează sau nu, utilizați următoarea comandă.

kubectl obține svc

Pasul 9: Acum, pentru a vedea specificațiile serviciului și pentru a verifica ce punct final estelegat de, utilizați următoarea comandă.

kubectl descrie svc

Pasul 10: Acum, deoarece folosim instanța amazon ec2, pentru a prelua pagina web și a verifica rezultatul, utilizați următoarea comandă.

curl adresa IP

Dacă ați găsit relevant acest blog Tutorial Kubernetes, consultați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii din ” Tutorial Kubernetes ”Și mă voi întoarce la tine.