„Kubernetes“ pamoka - išsamus „Kubernetes“ vadovas



Šiame tinklaraštyje, esančiame „Kubernetes“ mokymo programoje, bus pristatytos visos konteinerių orkestravimo sistemos koncepcijos su rankomis.

„Kubernetes“ yra platforma, pašalinanti rankinius procesus, susijusius su konteinerių programų diegimu. Šiame „Kubernetes Tutorial“ tinklaraštyje apžvelgsite visas sąvokas, susijusias su šiuo sudėtinių talpyklų valdymo sprendimu.

Šioje pamokoje bus aptariamos šios temos:





Dabar, prieš eidamas į priekį šiame tinklaraštyje, leiskite man greitai jums pranešti apie konteinerių gabenimą.

Taigi, prieš pradedant naudoti konteinerius, kūrėjai ir testuotojai visada turėjo tarpą. Paprastai tai atsitiko todėl, kad tai, kas veikė kūrėjo pusėje, neveikė bandymų pusėje. Abu jie egzistavo skirtingose ​​aplinkose. Dabar, siekiant išvengti tokių scenarijų, buvo pristatyti konteineriai, kad kūrėjai ir bandytojai būtų tame pačiame puslapyje.



Taip pat problema buvo kartu tvarkyti daugybę konteinerių. Kartais, eksploatuojant konteinerius, iš produkto pusės iškilo keletas problemų, kurių nebuvo kūrimo etape. Tokio pobūdžio scenarijai pristatė konteinerių orkestravimo sistemą.

Prieš gilindamasis į orkestravimo sistemą, leiskite man greitai surašyti iššūkius, su kuriais susiduriama be šios sistemos.



„Kubernetes“ pamoka: iššūkiai be konteinerių orkestravimo

Iššūkiai be konteinerių orkestravimo - „Kubernetes“ pamoka - „Edureka“

Kaip matote aukščiau pateiktoje diagramoje, kai konteinerių viduje veikia kelios paslaugos, galbūt norėsite pakeisti šiuos konteinerius. Didelio masto pramonėje tai padaryti tikrai sunku. Taip yra todėl, kad padidėtų paslaugų išlaikymo išlaidos ir sudėtingumas jas valdyti.

Norint išvengti paslaugų rankinio nustatymo ir įveikti iššūkius, reikėjo kažko didelio. Čia atsiranda „Container Orchestration Engine“.

Šis variklis leidžia mums organizuoti kelis konteinerius taip, kad visos pagrindinės mašinos būtų paleistos, konteineriai būtų sveiki ir paskirstyti grupuotoje aplinkoje. Šiuolaikiniame pasaulyje daugiausia yra du tokie varikliai: Valdytojai & Dockerio spiečius .

„Kubernetes“ pamoka: „Kubernetes“ ir „Docker Swarm“

Valdytojai ir Dockerio spiečius pirmauja konteinerių orkestravimo įrankiai šiandieninėje rinkoje. Taigi prieš naudodami juos prod, turėtumėte žinoti, kas jie tiksliai yra ir kaip jie veikia.

Toliau, tinklaraštyje, ketinu giliai pasinerti į „Kubernetes“, tačiau norėdami sužinoti apie „Docker“ galite spustelėti .

Kaip galite nurodyti pirmiau pateiktą vaizdą, „Kubernetes“, palyginti su „Docker Swarm“, turi puikią aktyvią bendruomenę ir suteikia galimybę automatiškai keisti mastelį daugelyje organizacijų. Panašiai „Docker Swarm“, palyginti su „Kubernetes“, yra lengvai paleidžiamas klasteris, tačiau jis apsiriboja „Docker API“ galimybėmis.

Na, žmonės, tai nėra vieninteliai šių svarbiausių įrankių skirtumai. Jei norite sužinoti išsamius abiejų šių sudėtinių rodinių orkestravimo įrankių skirtumus, galite spustelėti

Norite sužinoti daugiau apie „Kubernetes“?

Jei galėčiau pasirinkti savo pasirinkimą tarp dviejų, tada tai turėtų būti „Kubernetes“, nes konteinerius reikia valdyti ir prijungti prie išorinio pasaulio tokioms užduotims kaip planavimas, apkrovos balansavimas ir paskirstymas.

Bet, jei jūs manote logiškai, „Docker Swarm“ būtų geresnis pasirinkimas, nes jis veikia ant „Docker“ viršaus, tiesa? Jei būčiau tu, tikrai būčiau sumišęs, kokį įrankį naudoti. Tačiau ei, Kubernetes yra neginčijamas rinkos lyderis ir taip pat važiuoja ant geresnių funkcijų turinčių „Docker“ konteinerių.

Dabar, kai supratote, kad reikia „Kubernetes“, yra geras laikas, kurį jums sakau Kas yra Kubernetes?

„Kubernetes“ pamoka: Kas yra Kubernetes?

yra atviro kodo sistema, kuri tvarko konteinerių planavimo į skaičiavimo grupę darbą ir valdo darbo krūvius, kad užtikrintų, jog jie veikia taip, kaip ketina vartotojas. Būdama „Google“ idėja, ji siūlo puikią bendruomenę ir puikiai bendradarbiauja su visais debesų tiekėjais, kad taptų kelių konteinerių valdymo sprendimas.

„Kubernetes“ pamoka: „Kubernetes“ funkcijos

„Kubernetes“ funkcijos yra šios:

  • Automatinis planavimas: „Kubernetes“ teikia išplėstinį planavimo įrankį, kad būtų galima paleisti konteinerį ant sankaupos mazgų, atsižvelgiant į jų išteklių poreikius ir kitus apribojimus, neprarandant prieinamumo.
  • Savigydos galimybės: „Kubernetes“ leidžia pakeisti ir pertvarkyti konteinerius, kai mazgai miršta. Taip pat žudomi konteineriai, kurie neatsako į vartotojo nustatytą būklės patikrinimą, ir nereklamuojami jų klientams, kol jie nėra pasirengę tarnauti.
  • Automatinis išleidimas ir grąžinimas: „Kubernetes“ pristato programos ar jos konfigūracijos pakeitimus stebėdama programos būseną ir užtikrindama, kad ji neužmuštų visų jūsų egzempliorių vienu metu. Jei kažkas negerai, naudodami „Kubernetes“ galite atšaukti pakeitimus.
  • Horizontalus mastelio keitimas ir apkrovos balansavimas: „Kubernetes“ gali išplėsti ir sumažinti programą pagal reikalavimus, naudodama paprastą komandą, naudodama vartotojo sąsają arba automatiškai, remdamasi procesoriaus naudojimu.

„Kubernetes“ pamoka: „Kubernetes“ architektūra

„Kubernetes Architecture“ turi šiuos pagrindinius komponentus:

  • Meistras linkteli
  • Darbuotojo / vergo mazgai

Aš ketinu aptarti kiekvieną iš jų po vieną. Taigi, iš pradžių pradėkime nuo supratimo Pagrindinis mazgas .

Pagrindinis mazgas

Pagrindinis mazgas yra atsakingas už „Kubernetes“ sankaupos valdymą. Tai daugiausia visų administracinių užduočių vykdymo vieta. Klasteryje gali būti daugiau nei vienas pagrindinis mazgas, skirtas patikrinti gedimų toleranciją.

Kaip matote aukščiau pateiktoje diagramoje, pagrindiniame mazge yra įvairūs komponentai, pvz., API serveris, valdiklių tvarkytuvas, planuotojas ir ETCD.

  • API serveris: API serveris yra visų REST komandų, naudojamų klasteriui valdyti, įvesties taškas.
  • Valdiklio valdytojas: Yra demonas, reguliuojantis „Kubernetes“ sankaupą ir valdantis skirtingas nesibaigiančias valdymo kilpas.
  • Tvarkaraštis: Tvarkyklė suplanuoja užduotis pagal vergo mazgus. Čia saugoma kiekvieno vergo mazgo išteklių naudojimo informacija.
  • ETCD: ETCD yra paprasta, paskirstyta, nuosekli raktų vertės saugykla. Jis daugiausia naudojamas bendrai konfigūracijai ir paslaugų paieškai.

Darbuotojo / vergo mazgai

Darbuotojų mazguose yra visos reikalingos paslaugos, skirtos valdyti tarp konteinerių tinklą, bendrauti su pagrindiniu mazgu ir priskirti išteklius suplanuotiems konteineriams.

Kaip matote aukščiau pateiktoje diagramoje, darbiniame mazge yra įvairių komponentų, tokių kaip „Docker Container“, „Kubelet“, „Kube-proxy“ ir „Pods“.

  • „Docker“ konteineris: „Docker“ veikia kiekviename darbuotojo mazge ir paleidžia sukonfigūruotas dėžutes
  • Kubeletas: „Kubelet“ gauna „Pod“ konfigūraciją iš API serverio ir užtikrina, kad aprašytieji konteineriai veikia ir veikia.
  • Kubos įgaliotinis: „Kube-proxy“ veikia kaip tinklo tarpinis serveris ir apkrovos balansuotojas, teikiantis paslaugą viename darbuotojo mazge
  • Ankštys: Pod yra vienas ar daugiau konteinerių, kurie logiškai eina kartu ant mazgų.

Jei norite išsamiai paaiškinti visus „Kubernetes Architecture“ komponentus, galite kreiptis į mūsų dienoraštis

kas yra sas programavimo kalba
Norite gauti sertifikatą „Kubernetes“?

„Kubernetes“ pamoka: „Kubernetes“ atvejo tyrimas

Y aaa! Japonija yra interneto paslaugų teikėjas, kurio būstinė yra Sunnyvale, Kalifornijoje. Kadangi įmonė siekė virtualizuoti aparatinę įrangą, įmonė pradėjo ją naudoti „OpenStack“ Jų vidinė aplinka labai greitai pasikeitė. Tačiau dėl debesų ir konteinerių technologijos pažangos bendrovė norėjo kaposgalimybė paleisti paslaugas įvairiose platformose.

Problema: Kaip sukurti vaizdus visoms reikalingoms platformoms iš vieno programos kodo ir pritaikyti tuos vaizdus kiekvienoje platformoje?

Norėdami geriau suprasti, žiūrėkite žemiau esantį vaizdą. Kai kodas pakeičiamas kodų registre, tada plika metalo atvaizdai, „Docker“ konteineriai ir VM vaizdai sukuriami nepertraukiamo integravimo įrankiais, įstumiami į vaizdų registrą ir tada išdėstomi kiekvienoje infrastruktūros platformoje.


transformacijos informatikoje su pavyzdžiu

Dabar sutelkime dėmesį į konteinerių darbo eigą, kad suprastume, kaip jie naudojo „Kubernetes“ kaip diegimo platformą. Norėdami pažvelgti į platformos architektūrą, žiūrėkite žemiau esantį vaizdą.

„OpenStack“ egzemplioriai naudojami su „Docker“, „Kubernetes“, „Calico“ ir kt., Kad būtų galima atlikti įvairias operacijas, pvz., „Container Networking“, „Container Registry“ ir pan.

Kai turite daug grupių, tada sunku jas tinkamai valdyti?

Taigi, jie tiesiog norėjo sukurti paprastą, bazinį „OpenStack“ klasterį, kuris suteiktų pagrindinę „Kubernetes“ reikalingą funkciją ir palengvintų „OpenStack“ aplinkos valdymą.

Derindami vaizdų kūrimo darbo eigą ir „Kubernetes“, jie sukūrė žemiau esančią įrankių grandinę, kuri palengvina kodo diegimą ir diegimą.


Tokia įrankių grandinė užtikrino, kad būtų atsižvelgta į visus gamybos diegimo veiksnius, pvz., Daugiabučių nuomą, autentifikavimą, saugojimą, tinklų kūrimą, paslaugų atradimą.

Štai kaip žmonės, „Yahoo! Japonija sukūrė automatizavimo įrankių grandinę, skirtą „vieno paspaudimo“ kodui diegti „Kubernetes“, veikiančiam „OpenStack“, su pagalba iš „Google“ ir Solinea .

Valdytojų pamoka: rankos

Šiame „Hands-On“ aš jums parodysiu, kaip sukurti diegimą ir paslaugą. „Kubernetes“ naudoju „Amazon EC2“ egzempliorių. Na, „Amazon“ sugalvojo „Amazon Elastic Container Service“ dėl Valdytojai („Amazon EKS“) , leidžiančią jiems labai greitai ir lengvai debesyje sukurti „Kubernetes“ grupes. Jei norite sužinoti daugiau apie tai, galite apsilankyti tinklaraštyje

1 žingsnis: Pirmas sukurti aplanką kuriame sukursite savo dislokavimą ir paslaugą. Po to naudokite redaktorių ir atidarykite diegimo failą .

mkdir handsOn cd rankose On vi Deploy.yaml

2 žingsnis: Atidarę diegimo failą, paminėkite visas norimos diegti programos specifikacijas. Čia aš bandau dislokuoti httpd taikymas.

apiVersion: apps / v1 #Define API versijos rūšis: Deployment #Kinds parametras apibrėžia, kuris failas tai yra, čia yra Diegimo metaduomenys: vardas: dep1 #Saugo diegimo specifikacijos pavadinimą: # Pagal Specifikacijas jūs paminėjate visus Diegimo kopijų specifikacijos: 3 # Replikų skaičius būtų 3 selektorius: matchLabels: programa: httpd # Etiketės pavadinimas, kurio būtų ieškoma, yra httpd šablonas: metaduomenys: etiketės: programa: httpd # Šablono pavadinimas būtų httpd spec: # Pagal Specifikacijose paminėjate visas konteinerių talpyklų specifikacijas: - pavadinimas: httpd # Konteinerių pavadinimas būtų httpd vaizdas: httpd: naujausias # Atsisiųstinas vaizdas yra httpd: naujausi prievadai: - containerPort: 80 # Programa būtų atidengtas 80 uoste

3 žingsnis: Parašę diegimo failą, pritaikykite diegimą naudodami šią komandą.

kubectl taikyti -f Deploy.yaml

Čia -f yra vėliavos pavadinimas, naudojamastjis paduodavardas.

4 žingsnis: Kai pritaikysite diegimą, gaukite paleidžiamų ankščių sąrašą.

kubectl gauna ankštis-per platus

Čia naudojami -o wide, kad žinotumėte, kuriame mazge vykdomas diegimas.

5 žingsnis: Sukūrę diegimą, dabar turite sukurti paslaugą. Tam vėl naudokite redaktorių ir atidarykite tuščią vietą paslaugą. yaml failas .

vi tarnyba.yaml

6 žingsnis: Atidarę paslaugos failą, paminėkite visas paslaugos specifikacijas.

apiVersion: v1 # Nurodo API versijos rūšį: parametras „Service #Kinds“ apibrėžia, koks failas yra, čia yra paslaugos metaduomenys: vardas: netsvc #Saugo paslaugos specifikacijos pavadinimą: # Pagal Specifikacijas paminėjate visas specifikacijas paslaugos tipui: „NodePort“ selektorius: programa: httpd prievadai: -protokolas: TCP prievadas: 80 targetPort: 8084 #Tikslinės prievado numeris yra 8084

7 žingsnis: Parašę paslaugų failą, pritaikykite paslaugos failą naudodami šią komandą.

kubectl taikyti -f paslauga.yaml

8 žingsnis: Dabar, kai bus pritaikyta jūsų paslauga, patikrinkite, ar paslauga veikia, ar nenaudokite šios komandos.

kubectl gauti svc

9 žingsnis: Dabar, norėdami pamatyti paslaugos specifikacijas ir patikrinti, kokia ji yrasusietas, naudokite šią komandą.

kubectl apibūdinti svc

10 žingsnis: Kadangi mes naudojame „Amazon EC2“ egzempliorių, norėdami gauti tinklalapį ir patikrinti išvestį, naudokite šią komandą.

garbanoti IP adresą

Jei radote šį „Kubernetes Tutorial“ tinklaraštį aktualų, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje.

Turite mums klausimą? Prašau paminėti tai komentarų skiltyje “ „Kubernetes“ pamoka “Ir aš susisieksiu su jumis.