Vodič za Kubernetes - sveobuhvatan vodič za Kubernetes



Ovaj blog na vodiču Kubernetes vodit će vas kroz sve koncepte sustava orkestracije spremnika s praktičnim priručnikom.

Kubernetes je platforma koja eliminira ručne procese uključene u postavljanje kontejneriziranih aplikacija. U ovom blogu na Kubernetesovom vodiču proći ćete kroz sve koncepte povezane s ovim rješenjem za upravljanje više spremnika.

Sljedeće teme bit će obrađene u ovom vodiču:





Prije nego što krenem naprijed na ovom blogu, dopustite mi da vas na brzinu obavijestim o kontejnerizaciji.

Dakle, prije nego što su kontejneri nastali, programeri i ispitivači uvijek su imali razlike između njih. To se obično događalo jer ono što je djelovalo na razvojnoj strani, ne bi radilo na testnoj strani. Oboje su postojali u različitim okruženjima. Da bi se izbjegli takvi scenariji, kontejneri su uvedeni tako da su i programeri i testeri bili na istoj stranici.



Problem je bilo i rukovanje velikim brojem kontejnera zajedno. Ponekad se prilikom pokretanja kontejnera na strani proizvoda pokretalo nekoliko problema koji nisu bili prisutni u fazi razvoja. Ovakvi scenariji predstavili su sustav orkestracije spremnika.

Prije nego što dublje zaronim u sustav orkestracije, samo brzo nabrojim izazove s kojima se suočio bez ovog sustava.



Vodič za Kubernetesa: Izazovi bez orkestracije kontejnera

Izazovi bez orkestracije kontejnera - Vodič za Kubernetes - Edureka

Kao što možete vidjeti na gornjem dijagramu kada se više spremnika izvodi unutar spremnika, možda ćete ih htjeti prilagoditi. U velikim je industrijama to zaista teško učiniti. To je zato što bi to povećalo troškove održavanja usluga i složenost njihovog izvođenja.

Da bi se izbjeglo ručno postavljanje usluga i prevladali izazovi, bilo je potrebno nešto veliko. Ovo je mjesto gdje Container Orchestration Engine dolazi u sliku.

Ovaj motor omogućuje nam organiziranje više kontejnera na takav način da se pokreću svi temeljni strojevi, da su spremnici zdravi i raspoređeni u klasteriziranom okruženju. U današnjem svijetu postoje uglavnom dva takva motora: Namjesnici & Docker Roj .

Vodič za Kubernetes: Kubernetes vs Docker Swarm

Namjesnici i Docker Roj vodeći su alati za orkestriranje kontejnera na današnjem tržištu. Dakle, prije nego što ih upotrijebite u proizvodu, trebali biste znati što su točno i kako rade.

Dalje, na blogu ću duboko zaroniti u Kubernetes, ali da biste saznali više o Dockeru, možete kliknuti .

Kao što se možete pozvati na gornju sliku, Kubernetes, u usporedbi s Docker Swarmom, posjeduje sjajnu aktivnu zajednicu i omogućuje automatsko skaliranje u mnogim organizacijama. Slično tome, Docker Swarm ima klaster koji je lako pokrenuti u usporedbi s Kubernetesom, ali ograničen je na mogućnosti Docker API-ja.

postavljanje Java classpath u linux

Pa, ljudi, to nisu jedine razlike između ovih vrhunskih alata. Ako želite saznati detaljne razlike između oba alata za orkestraciju spremnika, možete kliknuti

Zainteresirani da znate više o Kubernetesu?

Da mogu birati između njih dvoje, to bi morao biti Kubernetes, jer kontejnerima treba upravljati i povezati ih s vanjskim svijetom za zadatke poput raspoređivanja, uravnoteženja tereta i distribucije.

Ali, ako logično razmišljate, Docker Swarm bi bio bolja opcija, jer radi na vrhu Dockera, zar ne? Da sam na vašem mjestu, definitivno bih se zbunio oko toga koji alat koristiti. Ali hej, Kubernetes je neprikosnoveni lider na tržištu, a također trči na vrhu Dockerovih spremnika s boljim funkcionalnostima.

Sad, kad ste shvatili potrebu za Kubernetesom, pravo je vrijeme, kažem vam Što je Kubernetes?

Vodič za Kubernetes: Što je Kubernetes?

je open source sustav koji obrađuje posao raspoređivanja spremnika na računski klaster i upravlja radnim opterećenjima kako bi osigurao da se izvode onako kako korisnik namjerava. Budući da je Googleova zamisao, nudi izvrsnu zajednicu i sjajno surađuje sa svim pružateljima usluga u oblaku kako bi to postao rješenje za upravljanje više spremnika.

Vodič za Kubernetes: Značajke Kubernetesa

Značajke Kubernetesa su sljedeće:

  • Automatsko raspoređivanje: Kubernetes nudi napredni planer za pokretanje spremnika na čvorovima klastera na temelju zahtjeva za resursima i drugih ograničenja, a pritom ne žrtvuje dostupnost.
  • Mogućnosti samoiscjeljenja: Kubernetes omogućuje zamjenu i reprogramiranje spremnika kada čvorovi umru. Također ubija spremnike koji ne reagiraju na korisnički definiranu zdravstvenu provjeru i ne oglašava ih klijentima dok nisu spremni za posluživanje.
  • Automatizirano predstavljanje i vraćanje: Kubernetes izvodi promjene na aplikaciji ili njezinoj konfiguraciji, dok nadgleda zdravlje aplikacije kako bi osigurao da ne uništi sve vaše instance istovremeno. Ako nešto krene po zlu, s Kubernetesom možete vratiti promjenu.
  • Horizontalno skaliranje i uravnoteženje opterećenja: Kubernetes može povećati i smanjiti aplikaciju prema zahtjevima jednostavnom naredbom, pomoću korisničkog sučelja ili automatski na temelju upotrebe CPU-a.

Vodič za Kubernetes: Kubernetes Arhitektura

Kubernetes Architecture ima sljedeće glavne komponente:

  • Glavni čvorovi
  • Radnički / podređeni čvorovi

Razgovarat ću o svakom od njih jedan po jedan. U početku, krenimo od razumijevanja Glavni čvor .

Glavni čvor

Glavni čvor odgovoran je za upravljanje Kubernetes klasterom. To je uglavnom polazna točka za sve administrativne zadatke. U klasteru može biti više od jednog glavnog čvora za provjeru tolerancije na kvarove.

Kao što možete vidjeti na gornjem dijagramu, glavni čvor ima razne komponente kao što su API poslužitelj, Upravitelj kontrolera, Planer i ETCD.

  • API poslužitelj: API poslužitelj je ulazna točka za sve naredbe REST koje se koriste za kontrolu klastera.
  • Upravitelj kontrolera: Je demon koji regulira Kubernetesov klaster i upravlja različitim ne-završnim upravljačkim petljama.
  • Planer: Planer raspoređuje zadatke na slave čvorove. Pohranjuje informacije o korištenju resursa za svaki slave čvor.
  • ETCD: ETCD je jednostavno, distribuirano, dosljedno spremište ključ / vrijednost. Uglavnom se koristi za zajedničku konfiguraciju i otkrivanje usluga.

Radnički / podređeni čvorovi

Radni čvorovi sadrže sve potrebne usluge za upravljanje umrežavanjem između spremnika, komunikaciju s glavnim čvorom i dodjeljivanje resursa zakazanim spremnicima.

Kao što možete vidjeti na gornjem dijagramu, radni čvor ima razne komponente kao što su Docker Container, Kubelet, Kube-proxy i Pods.

  • Docker spremnik: Docker se izvodi na svakom radničkom čvoru i izvodi konfigurirane pods
  • Kubelet: Kubelet dobiva konfiguraciju Pod-a s API poslužitelja i osigurava da opisani spremnici rade i rade.
  • Kubi proxy: Kube-proxy djeluje kao mrežni proxy i uravnoteživač opterećenja za uslugu na jednom radničkom čvoru
  • Mahune: Pod je jedan ili više spremnika koji se logično izvode zajedno na čvorovima.

Ako želite detaljno objašnjenje svih komponenti Kubernetes Architecture, možete se obratiti našem blog na

Želite li dobiti certifikat u Kubernetesu?

Vodič za Kubernetes: Studija slučaja Kubernetes

Y ahoo! JAPAN je pružatelj web usluga sa sjedištem u Sunnyvaleu u Kaliforniji. Kako je tvrtka imala za cilj virtualizirati hardver, tvrtka je počela koristiti OpenStack 2012. Njihovo se unutarnje okruženje vrlo brzo promijenilo. Međutim, zbog napretka tehnologije oblaka i kontejnera, tvrtka je željela capamogućnost pokretanja usluga na raznim platformama.

Problem: Kako iz jednog programskog koda stvoriti slike za sve potrebne platforme i rasporediti te slike na svaku platformu?

Za vaše bolje razumijevanje pogledajte donju sliku. Kada se kod promijeni u registru koda, slike bez metala, Dockerovi spremnici i VM slike stvaraju se alatima za kontinuiranu integraciju, guraju u registar slika i zatim raspoređuju na svaku infrastrukturnu platformu.


Sada se usredotočimo na tijek rada spremnika kako bismo razumjeli kako su Kubernetes koristili kao platformu za implementaciju. Pogledajte donju sliku kako biste se zaviriti u arhitekturu platforme.

Primjeri OpenStacka koriste se, uz Docker, Kubernetes, Calico itd., Za izvršavanje raznih operacija poput umrežavanja kontejnera, registra kontejnera itd.

Kada imate brojne klastere, tada postaje teško njima upravljati, zar ne?

Dakle, oni su samo željeli stvoriti jednostavan, osnovni OpenStack klaster koji će pružiti osnovnu funkcionalnost potrebnu za Kubernetes i olakšati upravljanje okolinom OpenStack.

Kombinacijom tijeka izrade slike i Kubernetesa izgradili su donji alatni lanac koji olakšava od guranja koda do implementacije.


Ova vrsta lanca alata pobrinula se da se uzmu u obzir svi čimbenici za implementaciju proizvodnje, kao što je višestanarsko vlasništvo, provjera autentičnosti, pohrana, umrežavanje, otkrivanje usluga.

Tako ljudi, Yahoo! JAPAN izgradio automatizacijski lanac alata za implementaciju koda 'jednim klikom' na Kubernetes koji se izvodi na OpenStacku, uz pomoć Google i Solinea .

Vodič za guvernere: Praktično

U ovom praktičnom prikazu pokazat ću vam kako stvoriti implementaciju i uslugu. Koristim instancu Amazon EC2 da bih koristio Kubernetes. Pa, Amazon je smislio Amazon Elastic Container Service za Guverneri (Amazon EKS) , što im omogućuje da vrlo brzo i jednostavno kreiraju klastere Kubernetes u oblaku. Ako želite saznati više o tome, možete se obratiti blogu

Korak 1: Prvi stvoriti mapu unutar koje ćete stvoriti svoju implementaciju i uslugu. Nakon toga upotrijebite editor i otvorite datoteku za implementaciju .

mkdir handsOn cd handsOn vi Deploy.yaml

Korak 2: Jednom kada otvorite datoteku za implementaciju, spomenite sve specifikacije za aplikaciju koju želite implementirati. Ovdje pokušavam rasporediti httpd primjena.

apiVersion: apps / v1 #Definira vrstu verzije API-ja: parametar Deployment #Kinds definira o kojoj se datoteci radi, ovdje je to Metapodaci implementacije: name: dep1 # Pohranjuje naziv specifikacije implementacije: # Pod Specifikacije spominjete sve specifikacije za implementacijske replike: 3 # Broj replika bio bi 3 selektor: matchLabels: app: httpd # Naziv oznake koji bi se pretraživao je httpd predložak: metapodaci: oznake: aplikacija: httpd # Naziv predloška bio bi httpd spec: # Ispod Specifikacije, spominjete sve specifikacije za spremnike spremnika: - naziv: httpd #Naziv spremnika bio bi httpd slika: httpd: najnovije # Slika koju treba preuzeti je httpd: najnoviji priključci: - containerPort: 80 # Aplikacija bio bi izložen na luci 80

Korak 3: Nakon što napišete datoteku za implementaciju, primijenite implementaciju pomoću sljedeće naredbe.

kubectl primijeniti -f Razmjestiti.yaml

pronađi maksimalan broj u nizu java

Ovdje je -f naziv zastave koji se koristi zaton podnosiIme.

Korak 4: Sada, nakon primjene implementacije, nabavite popis pokrova koji se izvode.

kubectl dobiti mahune -o široke

Ovdje se koristi -o wide da bi se znalo na kojem se čvoru izvršava implementacija.

Korak 5: Nakon što ste kreirali implementaciju, sada morate stvoriti uslugu. Za to opet upotrijebite editor i otvorite prazno mjesto servis. yaml datoteku .

vi usluga.yaml

Korak 6: Nakon što otvorite datoteku usluge, spomenite sve specifikacije usluge.

apiVersion: v1 # Definira vrstu verzije API-ja: parametar Service #Kinds definira o kojoj se vrsti datoteke radi, ovdje je riječ o metapodacima usluge: name: netsvc # Pohranjuje naziv specifikacije usluge: # Pod Specifikacije spominjete sve specifikacije za vrstu usluge: NodePort selektor: app: httpd ports: -protocol: TCP port: 80 targetPort: 8084 # Broj ciljanog porta je 8084

Korak 7: Nakon što napišete datoteku usluge, primijenite datoteku usluge pomoću sljedeće naredbe.

kubectl primijeniti -f usluge.yaml

Korak 8: Sada, nakon što se primijeni vaša usluga da biste provjerili radi li usluga ili ne, koristite sljedeću naredbu.

kubectl dobiti svc

9. korak: Sada, da biste vidjeli specifikacije usluge i provjerili koja je to krajnja točkavezan za, upotrijebi sljedeću naredbu.

kubectl opisati svc

10. korak: Budući da koristimo instancu amazon ec2, za dohvaćanje web stranice i provjeru rezultata, upotrijebite sljedeću naredbu.

uvijte ip-adresu

Ako vam se učini da je ovaj blog s vodičima Kubernetes relevantan, pogledajte Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare ' Vodič za Kubernetesa ”I javit ću vam se.