Kubernetes opetusohjelma aloittelijoille

โšก ร„lykรคs yhteenveto

Kubernetes on avoimen lรคhdekoodin kontinhallintajรคrjestelmรค, jonka on kehittรคnyt Google joka automatisoi konttisovellusten kรคyttรถรถnoton, skaalauksen ja kรคytรถn fyysisten, virtuaalisten ja pilvipalvelimien klustereissa, tarjoten itsekorjaavia ominaisuuksia, automatisoituja kรคyttรถรถnottoja, kuormituksen tasapainotusta ja yhdenmukaisia โ€‹โ€‹ympรคristรถjรค sovellusten luotettavaa toimitusta varten.

  • โ˜ธ๏ธ Kubernetes mรครคriteltynรค: Avoimen lรคhdekoodin kontinhallintajรคrjestelmรค Google klusteroituja sovelluksia varten.
  • ๐Ÿ“ฆ Miksi kontit: Kontit sisรคltรคvรคt kaiken, mitรค sovellus tarvitsee, mahdollistaen pรคivitykset ja yllรคpidon ilman kรคyttรถkatkoksia.
  • โš™๏ธ Tรคrkeimmรคt ominaisuudet: Automaattinen aikataulutus, itsekorjaus, kรคyttรถรถnotot/palautukset, vaakasuora skaalaus ja kuormituksen tasapainotus.
  • ๐Ÿงฑ Ydinkomponentit: Cluster, pรครคsolmu (API-palvelin, ajoitus jne.), tyรถsolmut ja podit.
  • ๐Ÿ†š vs. Docker Swarm: Kubernetes tarjoaa automaattisen skaalauksen ja sisรครคnrakennetun valvonnan; Swarm on yksinkertaisempi ja nopeampi asentaa.
  • โœ… Edut ja haitat: Toimii missรค tahansa pilvessรค, jossa on suuri yhteisรถ, mutta sillรค on monimutkainen kojelauta ja asennus.

Kubernetes opetusohjelma aloittelijoille

Ennen kuin aloitamme tรคmรคn Kubernetes-opetusohjelman, opimme:

Mikรค on Kubernetes?

Kubernetes on kontinhallintajรคrjestelmรค, joka on kehitetty Google alusta. Kubernetes auttaa hallitsemaan konttisovelluksia erilaisissa fyysisissรค, virtuaalisissa ja pilviympรคristรถissรค. Google Kubernetes on erittรคin joustava sรคilรถtyรถkalu, joka mahdollistaa monimutkaisten sovellusten johdonmukaisen toimittamisen satojen tai tuhansien yksittรคisten palvelimien klustereissa.

Miksi tarvitset kontteja?

Nykypรคivรคn internetin kรคyttรคjรค ei koskaan hyvรคksy seisokkeja. Siksi kehittรคjien on lรถydettรคvรค tapa suorittaa yllรคpito ja pรคivitys keskeyttรคmรคttรค palveluitaan.

Siksi sรคiliรถ on eristetty ympรคristรถ. Se sisรคltรครค kaiken tarvittavan sovelluksen toimintaan. Sen avulla kehittรคjรคn on helppo muokata ja ottaa sovelluksia kรคyttรถรถn. Lisรคksi sรคiliรถstรค on tullut suosituin menetelmรค verkkosovellusten pakkaamiseen, kรคyttรถรถnottoon ja pรคivittรคmiseen.

Mitรค tehtรคviรค Kubernetes suorittaa?

Kubernetes on Linux-ydin, jota kรคytetรครคn hajautetuissa jรคrjestelmissรค. Se auttaa sinua olemaan abstracsolmujen (palvelimien) taustalla olevaa laitteistoa ja tarjoaa yhtenรคisen rajapinnan sovelluksille, jotka kรคyttรคvรคt jaettua resurssipoolia.

Miksi kรคyttรครค Kubernetesia?

Kubernetes auttaa hallitsemaan pilvisovellusten ja mikropalvelujen resurssien allokointia ja liikenteen hallintaa. Se auttaa myรถs yksinkertaistamaan palvelukeskeisen infrastruktuurin eri puolia. Kubernetesin avulla voit varmistaa, missรค ja milloin sรคilรถtyt sovellukset toimivat, ja auttaa sinua lรถytรคmรครคn resursseja ja tyรถkaluja, joiden kanssa haluat tyรถskennellรค.

Kubernetesin ominaisuudet

Tรคssรค ovat Kubernetesin keskeiset ominaisuudet:

  • Automaattinen ajoitus
  • Itseparantumisominaisuudet
  • Automaattiset julkaisut ja palautukset
  • Vaakasuora skaalaus ja kuormituksen tasapainotus
  • Tarjoaa ympรคristรถn johdonmukaisuuden kehitystรค, testausta ja tuotantoa varten
  • Infrastruktuuri on lรถyhรคsti kytketty jokaiseen komponenttiin voi toimia erillisenรค yksikkรถnรค
  • Tarjoaa suuremman resurssien kรคytรถn tiheyden
  • Tarjoaa yritysvalmiita ominaisuuksia
  • Sovelluskeskeinen hallinta
  • Automaattisesti skaalautuva infrastruktuuri
  • Voit luoda ennakoitavan infrastruktuurin

Kubernetesin perusteet

Nyt tรคssรค Kubernetes-opetusohjelmassa opimme joitain tรคrkeitรค Kubernetesin perusteita:

Cluster

Se on kokoelma isรคntiรค (palvelimia), joka auttaa sinua yhdistรคmรครคn niiden kรคytettรคvissรค olevat resurssit. Se sisรคltรครค RAM-muistin, suorittimen, RAM-muistin, levyn ja niiden laitteet kรคyttรถkelpoiseen pooliin.

Master

Master on kokoelma komponentteja, jotka muodostavat Kubernetesin ohjauspaneelin. Nรคitรค komponentteja kรคytetรครคn kaikissa klusteripรครคtรถksissรค. Se sisรคltรครค sekรค ajoituksen ettรค vastaamisen klusteritapahtumiin.

Solmu

Se on yksi isรคntรค, joka pystyy toimimaan fyysisellรค tai virtuaalikone. Solmun tulee suorittaa sekรค kube-proxy, minikube ettรค kubelet, joita pidetรครคn klusterin osana.

nimiavaruus

Se on looginen klusteri tai ympรคristรถ. Se on laajalti kรคytetty menetelmรค, jota kรคytetรครคn sco:ssa.ping klusterin kรคyttรถ tai jakaminen.

Kubernetes Archirakenne

Alla on yksityiskohtainen Kubernetes-arkkitehtuurikaavio:

Kubernetes Architecture Kaavio
Kubernetes Architecture Kaavio

Master-solmu

Pรครคsolmu on ensimmรคinen ja elintรคrkein komponentti, joka vastaa Kubernetes-klusterin hallinnasta. Se on lรคhtรถpiste kaikenlaisille hallinnollisille tehtรคville. Klusterissa voi olla useampi kuin yksi pรครคsolmu vikasietoisuuden tarkistamiseksi.

Pรครคsolmussa on useita komponentteja, kuten API-palvelin, ohjaimen hallinta, ajoitus ja ETCD. Katsotaanpa niitรค kaikkia.

API-palvelin: API-palvelin toimii syรถttรถpisteenรค kaikille REST-komentoille, joita kรคytetรครคn klusterin ohjaamiseen.

Scheduler

Ajastin ajoittaa tehtรคvรคt orjasolmulle. Se tallentaa jokaisen orjasolmun resurssien kรคyttรถtiedot. Se vastaa tyรถtaakan jakamisesta.

Se auttaa myรถs sinua track miten klusterisolmujen tyรถkuormaa kรคytetรครคn. Se auttaa sinua kohdistamaan tyรถkuorman kรคytettรคvissรค oleviin resursseihin, jotka hyvรคksyvรคt tyรถkuorman.

jne

etcd-komponentit tallentavat mรครคritystiedot ja wright-arvot. Se kommunikoi useimpien komponenttien kanssa vastaanottaakseen komentoja ja toimiakseen. Se hallitsee myรถs verkkosรครคntรถjรค ja portin edelleenlรคhetystoimintaa.

Tyรถntekijรค-/orjasolmut

Tyรถntekijรคsolmut ovat toinen olennainen komponentti, joka sisรคltรครค kaikki tarvittavat palvelut sรคilรถjen vรคlisen verkottumisen hallintaan, kommunikointiin pรครคsolmun kanssa, jonka avulla voit mรครคrittรครค resursseja ajoitetuille sรคilรถille.

  • Kubelet: hakee Pod-kokoonpanon API-palvelimelta ja varmistaa, ettรค kuvatut sรคilรถt ovat kรคytรถssรค.
  • Docker-sรคiliรถ: Satamatyรถlรคinen sรคilรถ toimii kussakin tyรถntekijรคsolmussa, joka suorittaa mรครคritetyt podit
  • Kube-vรคlityspalvelin: Kube-vรคlityspalvelin toimii kuormituksen tasaajana ja verkon vรคlityspalvelimena palvelun suorittamiseksi yksittรคisessรค tyรถntekijรคsolmussa
  • Podit: Pod on yhdistelmรค yksittรคisiรค tai useita sรคiliรถitรค, jotka loogisesti kulkevat yhdessรค solmuissa

Muut keskeiset terminologiat

Replikoinnin ohjaimet

Replikointiohjain on objekti, joka mรครคrittรครค pod-mallin. Se myรถs ohjaa parametreja identtisten Pod-kopioiden skaalaamiseksi vaakasuunnassa lisรครคmรคllรค tai vรคhentรคmรคllรค kรคynnissรค olevien kopioiden mรครคrรครค.

Replikointisarjat

Replikointijoukot ovat vuorovaikutus replikointiohjaimen suunnittelussa, jossa on joustavuutta siinรค, kuinka ohjain tunnistaa ryhmรคt, joita sen on tarkoitus hallita. Se korvaa replikointiohjaimet niiden paremman replikointivalinnan ansiosta.

kรคyttรถรถnottoja

Kรคyttรถรถnotto on yleinen tyรถtaakka, joka voidaan luoda ja hallita suoraan. Kรคyttรถรถnotto kรคyttรครค replikointijoukkoa rakennuspalikkana, joka lisรครค elinkaarihallinnan ominaisuuden.

Tilalliset joukot

Se on erikoistunut pod-ohjain, joka tarjoaa jรคrjestystรค ja ainutlaatuisuutta. Sitรค kรคytetรครคn pรครคasiassa hienorakeiseen hallintaan, jota tarvitset erityisesti kรคyttรถรถnottojรคrjestyksen, vakaan verkottumisen ja pysyvien tietojen suhteen.

Daemon-sarjat

Daemon-sarjat ovat toinen pod-ohjaimen erikoistunut muoto, joka suorittaa podin kopion jokaisessa klusterin solmussa. Tรคmรคntyyppinen pod-ohjain on tehokas tapa ottaa kรคyttรถรถn podeja, jonka avulla voit suorittaa yllรคpitoa ja tarjota palveluja itse solmuille.

Kubernetes vs. Docker Swarm

Tรคssรค on tรคrkeitรค eroja Kubernetes vs Docker.

Parametri Docker-parvi Kubernetes
Skaalaus Ei automaattista skaalausta Automaattinen skaalaus
Kuormituksen tasapainoittaminen Tekee automaattisen kuorman tasauksen Mรครคritรค kuormituksen tasapainotusasetukset manuaalisesti
Tallennustilan jakaminen Jakaa tallennustilavuudet minkรค tahansa muun kontin kanssa Jakaa tallennustilavuudet useiden saman kotelon sisรคllรค olevien sรคiliรถiden kesken
Kirjautumis- ja seurantatyรถkalun kรคyttรถ Kรคytรค 3iard juhlatyรถkalu, kuten ELK Tarjoa sisรครคnrakennettu tyรถkalu kirjaamiseen ja seurantaan.
Asennus Helppoa & nopeaa Monimutkaista ja aikaa vievรครค
GUI GUI ei ole saatavilla GUI on saatavilla
skaalautuvuus Skaalaus on nopeampaa kuin K8S, mutta klusterin vahvuus ei ole yhtรค vahva Skaalaus on hidasta Swarmiin verrattuna, mutta takaa vahvemman klusterin tilan Kuormituksen tasapainotus vaatii manuaalisen huoltomรครคrityksen
Kuormituksen tasapainoittaminen Tarjoaa sisรครคnrakennetun kuormituksen tasaustekniikan Prosessin ajoitus palvelujen yllรคpitรคmiseksi pรคivityksen aikana
Pรคivitykset ja palautukset Tietomรครคrien kirjaaminen ja seuranta Progressiiviset pรคivitykset ja palvelun kunnon seuranta. Jaettu vain saman Podin sisรครคnrakennettujen loki- ja seurantatyรถkalujen sรคiliรถiden kanssa.

Kubernetesin edut

  • Helppo palvelun organisointi pussien avulla
  • Sen on kehittรคnyt Google, jotka tuovat mukanaan vuosien arvokasta kokemusta alalta
  • Suurin yhteisรถ kontin orkestrointityรถkalujen joukossa
  • Tarjoaa erilaisia โ€‹โ€‹tallennusvaihtoehtoja, mukaan lukien paikalliset, SAN-verkot ja julkiset pilvet
  • Noudattaa muuttumattoman infrastruktuurin periaatteita
  • Kubernetes voi kรคyttรครค paikan pรครคllรค paljasmetallia, OpenStackia ja julkisia pilviรค Google, Azure, AWS, Jne
  • Auttaa vรคlttรคmรครคn toimittajan lukitusongelmia, koska se voi kรคyttรครค mitรค tahansa toimittajakohtaisia โ€‹โ€‹API-rajapintoja tai palveluita, paitsi jos Kubernetes tarjoaa lukitusmahdollisuuden.tractio, esim. kuormituksen tasaaja ja tallennustila.
  • Sรคiliรถinti kubernetesin avulla mahdollistaa pakettiohjelmiston palvelevan nรคitรค tavoitteita. Se mahdollistaa sovellukset, jotka on julkaistava ja pรคivitettรคvรค ilman seisokkeja.
  • Kubernetes antaa sinun varmistaa, ettรค konttisovellukset toimivat missรค ja milloin haluat, ja auttaa sinua lรถytรคmรครคn resursseja ja tyรถkaluja, joita haluat tyรถskennellรค.

Kubernetesin haitat

  • Kubenetes-kojelauta ei ole niin hyรถdyllinen kuin sen pitรคisi olla
  • Kubernetes on hieman monimutkainen ja tarpeeton ympรคristรถissรค, joissa kaikki kehitys tehdรครคn paikallisesti.
  • Turvallisuus ei ole kovin tehokasta.

UKK

Pod on Kubernetesin pienin kรคyttรถรถnotettava yksikkรถ. Se ryhmittelee yhden tai useamman sรคilรถn, jotka jakavat tallennustilaa, verkkoa ja suoritustavan mรครคrityksen, ja ne on ajoitettu yhdessรค solmulle.

Docker on konttien ajonaikainen ympรคristรถ, joka rakentaa ja suorittaa kontteja, kun taas Kubernetes on orkestrointijรคrjestelmรค, joka hallitsee, skaalaa ja aikatauluttaa kontteja klustereiden vรคlillรค. Niitรค kรคytetรครคn usein yhdessรค.

Kyllรค. Kubernetes on avoimen lรคhdekoodin ja ilmainen Apache 2.0 -lisenssillรค. Sen kรคyttรคminen hallituissa pilvipalveluissa, kuten GKE, EKS tai AKS, voi kuitenkin aiheuttaa infrastruktuuri- ja palvelukustannuksia.

Tekoรคly auttaa Kubernetesia ennustamalla resurssitarpeita, skaalaamalla tyรถkuormia automaattisesti, havaitsemalla poikkeamia ja optimoimalla aikataulutusta. AIOps-tyรถkalut analysoivat klusterin mittareita ja lokeja parantaakseen luotettavuutta ja vรคhentรครคkseen manuaalisia toimintoja.

Kyllรค. Tekoรคlyavustajat voivat luoda YAML-manifesteja, vianmรครคrittรครค virheellisiรค podeja, suositella oikeaa kokoa ja selittรครค klusteritapahtumia.ping tiimit kรคyttรคvรคt Kubernetesia tehokkaammin vรคhemmรคllรค manuaalisella tyรถllรค.

Tiivistรค tรคmรค viesti seuraavasti: