Kubernetes on alusta, joka eliminoi manuaaliset prosessit, jotka liittyvät konttisovellusten käyttöönottoon. Tässä Kubernetes-opetusohjelman blogissa käydään läpi kaikki tähän monikonttihallintaratkaisuun liittyvät käsitteet.
Seuraavat aiheet käsitellään tässä opetusohjelmassa:
- Haasteet ilman konttiorkesteriä
- Docker-parvi tai Kubernetes
- Mikä on Kubernetes?
- Kubernetes-ominaisuudet
- Kubernetes-arkkitehtuuri
- Kubernetes -tapaustutkimus
- Hands-On
Ennen kuin siirryt eteenpäin tässä blogissa, anna minun vain kertoa sinulle nopeasti konttien käsittelystä.
Joten ennen konttien syntymistä kehittäjillä ja testaajilla oli aina tiff. Tämä tapahtui yleensä, koska kehityspuolella toiminut ei toiminut testauspuolella. Molemmat olivat olemassa eri ympäristöissä. Nyt tällaisten tilanteiden välttämiseksi otettiin käyttöön säilöjä niin, että sekä kehittäjät että testaajat olivat samalla sivulla.
Suuren määrän konttien käsittely yhdessä oli myös ongelma. Joskus kontteja ajettaessa tuotepuolella otettiin esiin muutamia asioita, joita ei ollut läsnä kehitysvaiheessa. Tällaiset skenaariot esittivät Container Orchestration -järjestelmän.
Ennen kuin sukelan syvälle orkesterijärjestelmään, haluan vain luetella haasteet, joita edessä on ilman tätä järjestelmää.
Kubernetes-opetusohjelma: Haasteet ilman säiliöjärjestelyä
Kuten yllä olevasta kaaviosta näet, kun useita palveluja suoritetaan konttien sisällä, kannattaa ehkä skaalata nämä säilöt. Suurteollisuudessa tämä on todella vaikeaa. Tämä johtuu siitä, että se lisäisi palvelujen ylläpitokustannuksia ja monimutkaisuutta hoitaa niitä rinnakkain.
Palvelujen manuaalisen asettamisen ja haasteiden voittamisen välttämiseksi tarvittiin jotain isoa. Täällä Container Orchestration Engine tulee kuvaan.
Tämän moottorin avulla voimme järjestää useita kontteja siten, että kaikki taustalla olevat koneet käynnistetään, kontit ovat terveitä ja jaettuja klusteroidussa ympäristössä. Nykymaailmassa tällaisia moottoreita on pääasiassa kaksi: Kuvernöörit & Docker-parvi .
Kubernetes-opetusohjelma: Kubernetes vs Docker Swarm
Kuvernöörit ja Docker-parvi ovat johtavia konttiorkesterointityökaluja nykypäivän markkinoilla. Joten ennen kuin käytät niitä tuotteissa, sinun pitäisi tietää, mitä ne tarkalleen ovat ja miten ne toimivat.
Lisäksi blogissa aion sukeltaa syvälle Kubernetesiin, mutta tietää Dockerista voit napsauttaa .
Kuten voit viitata yllä olevaan kuvaan, Kubernetes Docker Swarmiin verrattuna omistaa suuren aktiivisen yhteisön ja mahdollistaa automaattisen skaalauksen monissa organisaatioissa. Vastaavasti Docker Swarmilla on helppo käynnistää klusteri verrattuna Kubernetesiin, mutta se rajoittuu Docker API: n ominaisuuksiin.
No, ihmiset, nämä eivät ole ainoat erot näiden huipputyökalujen välillä. Jos haluat tietää näiden kontti-orkestrointityökalujen yksityiskohtaiset erot, voit napsauttaa
Kiinnostaako tietää enemmän Kubernetesista?Jos voisin valita valintani näiden kahden välillä, sen pitäisi olla Kubernetes, koska kontteja on hallinnoitava ja liitettävä ulkomaailmaan tehtäviä, kuten aikataulutusta, kuormituksen tasapainottamista ja jakelua varten.
Mutta jos ajattelet loogisesti, Docker Swarm olisi parempi vaihtoehto, koska se kulkee Dockerin päällä? Jos olisin sinä, olisin ehdottomasti hämmentynyt siitä, mitä työkalua käyttää. Mutta hei, Kubernetes on kiistaton markkinajohtaja markkinoilla ja toimii myös Docker-konttien päällä, joilla on paremmat toiminnot.
Nyt kun olet ymmärtänyt Kubernetesin tarpeen, on hyvä aika, jonka kerron sinulle Mikä on Kubernetes?
Kubernetes-opetusohjelma: Mikä on Kubernetes?
on avoimen lähdekoodin järjestelmä, joka hoitaa konttien ajoituksen laskentaryhmään ja hallitsee työmääriä varmistaakseen, että ne suoritetaan käyttäjän aikomuksella. Koska se on Googlen aivopoika, se tarjoaa erinomaisen yhteisön ja toimii loistavasti kaikkien pilvipalvelujen tarjoajien kanssa tullakseen monen kontin hallintaratkaisu.
Kubernetes-opetusohjelma: Kubernetes-ominaisuudet
Kubernetesin ominaisuudet ovat seuraavat:
- Automaattinen ajoitus: Kubernetes tarjoaa edistyneen aikataulun, jonka avulla kontti voidaan käynnistää klusterisolmuissa niiden resurssivaatimusten ja muiden rajoitusten perusteella, mutta ei kuitenkaan uhraa saatavuutta.
- Itsehoitokyky: Kubernetes sallii säiliöiden korvaamisen ja uudelleenjärjestämisen, kun solmut kuolevat. Se tappaa myös kontit, jotka eivät vastaa käyttäjän määrittelemään terveystarkastukseen, eikä mainosta niitä asiakkaille ennen kuin he ovat valmiita palvelemaan.
- Automaattinen käyttöönotto ja palautus: Kubernetes ottaa käyttöön muutokset sovellukseen tai sen kokoonpanoon tarkkailemalla sovelluksen kuntoa varmistaakseen, että se ei tappaa kaikkia instanssejasi samanaikaisesti. Jos jokin menee pieleen, Kubernetesin avulla voit palauttaa muutoksen.
- Vaakasuuntainen skaalaus ja kuormituksen tasapainotus: Kubernetes voi laajentaa ja pienentää sovellusta vaatimusten mukaisesti yksinkertaisella komennolla, käyttöliittymällä tai automaattisesti suorittimen käytön perusteella.
Kubernetes-opetusohjelma: Kubernetes-arkkitehtuuri
Kubernetes-arkkitehtuurilla on seuraavat pääkomponentit:
- Pääsolmut
- Työntekijä / orja-solmut
Keskustelen kustakin niistä yksi kerrallaan. Joten aloitetaan aluksi ymmärtämällä Pääsolmu .
Pääsolmu
Pääsolmu on vastuussa Kubernetes-klusterin hallinnasta. Se on pääasiassa lähtökohta kaikkiin hallinnollisiin tehtäviin. Klusterissa voi olla useampi kuin yksi pääsolmu vikatoleranssin tarkistamiseksi.
Kuten yllä olevasta kaaviosta näet, pääsolmussa on useita komponentteja, kuten API Server, Controller Manager, Scheduler ja ETCD.
mikä on Salesforce-palvelupilvi
- API-palvelin: API-palvelin on lähtökohta kaikille REST-komennoille, joita käytetään klusterin hallintaan.
- Controller Manager: On daemon, joka säätelee Kubernetes-klusteria ja hallitsee erilaisia päättymättömiä ohjauspiirejä.
- Aikataulu: Ajastin ajoittaa tehtävät orjasolmuihin. Se tallentaa resurssien käyttötiedot jokaiselle orjasolmulle.
- ETCD: ETCD on yksinkertainen, hajautettu, johdonmukainen avainarvosäilö. Sitä käytetään pääasiassa jaettuun määritykseen ja palvelujen löytämiseen.
Työntekijä / orja-solmut
Työntekijäsolmut sisältävät kaikki tarvittavat palvelut konttien välisen verkon hallintaan, yhteydenpitoon pääsolmun kanssa ja resurssien osoittamiseen ajoitetuille säilöille.
Kuten yllä olevasta kaaviosta näet, työntekijäsolmussa on useita komponentteja, kuten Docker Container, Kubelet, Kube-proxy ja Pods.
- Docker-kontti: Docker toimii jokaisella työntekijän solmulla ja suorittaa määritetyt palkit
- Kubelet: Kubelet saa Pod-kokoonpanon API-palvelimelta ja varmistaa, että kuvatut säilöt ovat käynnissä.
- Kuuban välityspalvelin: Kube-proxy toimii verkon välityspalvelimena ja kuormituksen tasapainottajana palvelussa yhdellä työntekijäsolmulla
- Palot: Pod on yksi tai useampi säiliö, jotka loogisesti kulkevat solmuissa.
Jos haluat yksityiskohtaisen selityksen kaikista Kubernetes-arkkitehtuurin osista, voit viitata meidän blogi
Haluatko saada sertifikaatin Kubernetesissa?Kubernetes-opetusohjelma: Kubernetes -tapaustutkimus
Y ahoo! JAPANI on verkkopalvelujen tarjoaja, jonka pääkonttori sijaitsee Sunnyvalessa Kaliforniassa. Kun yritys pyrki virtualisoimaan laitteiston, yritys alkoi käyttää sitä OpenStack Heidän sisäinen ympäristö muuttui hyvin nopeasti. Pilvi- ja konttiteknologian kehityksen takia yritys halusi kuitenkin kapankyky käynnistää palveluja eri alustoilla.
Ongelma: Kuinka luoda kuvia kaikille vaadituille alustoille yhdestä sovelluskoodista ja ottaa nämä kuvat käyttöön kullekin alustalle?
Saat paremman käsityksen alla olevasta kuvasta. Kun koodia muutetaan koodirekisterissä, paljaat metallikuvat, Docker-säilöt ja virtuaalikoneen kuvat luodaan jatkuvilla integrointityökaluilla, työnnetään kuvarekisteriin ja otetaan sitten käyttöön jokaiselle infrastruktuurialustalle.
Keskittykäämme nyt konttien työnkulkuun ymmärtääkseen, miten he käyttivät Kubernetesia käyttöönottoalustana. Katso alla olevasta kuvasta kurkistamalla alustan arkkitehtuuriin.
OpenStack-ilmentymiä käytetään Dockerin, Kubernetesin, Calicon jne. Kanssa sen lisäksi, että suoritetaan erilaisia toimintoja, kuten Container Networking, Container Registry ja niin edelleen.
Kun sinulla on useita klustereita, on vaikea hallita niitä oikein?
Joten he halusivat vain luoda yksinkertaisen, perustason OpenStack-klusterin, joka tarjoaa Kubernetesille tarvittavat perustoiminnot ja helpottaa OpenStack-ympäristön hallintaa.
Kuvanluontityönkulun ja Kubernetesin yhdistelmällä he rakensivat alla olevan työkaluketjun, mikä helpottaa koodin siirtoa käyttöönottoon.
Tällainen työkaluketju varmisti, että kaikki tuotannon käyttöönottoon liittyvät tekijät, kuten monivuokraus, todennus, varastointi, verkottuminen ja palvelujen löytäminen, otettiin huomioon.
Näin ihmiset, Yahoo! JAPANI rakensi automaatiotyökaluketsa yhden napsautuksen koodin käyttöönottoa varten Kubernetesille, joka toimii OpenStackissa, Google ja Solinea .
Kuvernöörien opastus: Hands-On
Tässä käytännön näytän sinulle, miten voit luoda käyttöönoton ja palvelun. Käytän Amazon EC2 -instanssia Kubernetesin käyttämiseen. No, Amazon on keksinyt Amazon Elastic Container Service varten Kuvernöörit (Amazon EKS) , jonka avulla he voivat luoda Kubernetes-klustereita pilveen nopeasti ja helposti. Jos haluat oppia lisää siitä, voit viitata blogiin
Vaihe 1: Ensimmäinen luo kansio jonka sisällä luot käyttöönoton ja palvelun. Sen jälkeen käytä editoria ja avaa käyttöönottotiedosto .
mkdir handsOn cd handsOn vi Deploy.yaml
Vaihe 2: Kun avaat asennustiedoston, mainitse kaikki asennettavan sovelluksen määritykset. Tässä yritän ottaa käyttöön httpd sovellus.
apiVersion: apps / v1 # Määrittää API-version tyypin: Deployment #Kinds -parametri määrittää, millainen tiedosto se on, tässä on Deployment-metatiedot: name: dep1 #Säilyttää käyttöönoton tiedot: # Specifications-kohdassa mainitset kaikki käyttöönottokopioiden määritykset: 3 # Kopioiden lukumäärä olisi 3 valitsin: matchLabels: sovellus: httpd # Haettavan etiketin nimi on httpd-malli: metatiedot: tunnisteet: sovellus: httpd # Mallin nimi olisi httpd spec: # Erittelyt, mainitset kaikki konttien konttien määritykset: - nimi: httpd # Säiliöiden nimi olisi httpd-kuva: httpd: latest # Ladattava kuva on httpd: viimeisimmät portit: - containerPort: 80 #Sovellus altistettaisiin portille 80
Vaihe 3: Kun olet kirjoittanut asennustiedoston, ota käyttöönotto seuraavalla komennolla.
kubectl Apply -f Deploy.yaml
Tässä -f on lippunimi, jota käytetäänthän arkistoinimi.
Vaihe 4: Nyt kun käyttöönotto on otettu käyttöön, saat luettelon käynnissä olevista palkkeista.
kubectl saa palot liian leveiksi
Tässä -o leveä käytetään tietämään, missä solmussa asennus on käynnissä.
Vaihe 5: Kun olet luonut käyttöönoton, sinun on luotava palvelu. Käytä uudelleen editoria ja avaa tyhjä kohta palvelu. yaml-tiedosto .
vi service.yaml
Vaihe 6: Kun avaat huoltotiedoston, mainitse kaikki palvelun tekniset tiedot.
apiVersion: v1 # Määrittää API-version tyypin: Service #Kinds -parametri määrittää, millainen tiedosto se on, tässä se on Palvelun metatiedot: nimi: netsvc # Tallentaa palvelun nimen: # Mainit teknisissä eritelmissä palvelun tyypille: NodePort-valitsin: sovellus: httpd-portit: -protokolla: TCP-portti: 80 targetPort: 8084 #Target-porttinumero on 8084
Vaihe 7: Kun olet kirjoittanut palvelutiedoston, käytä palvelutiedostoa seuraavalla komennolla.
kubectl apply -f service.yaml
Vaihe 8: Nyt kun palvelusi on otettu käyttöön tarkistamaan onko palvelu käynnissä vai ei, käytä seuraavaa komentoa.
kubectl saa svc
Vaihe 9: Nyt näet palvelun tekniset tiedot ja tarkista, mikä päätepiste se onsidottu, käytä seuraavaa komentoa.
kubectl kuvaa svc
Vaihe 10: Koska käytämme Amazon ec2 -instanssia, noudata verkkosivua ja tarkista tulos, käytä seuraavaa komentoa.
käpristää ip-osoitteen
Jos pidit tämän Kubernetes-opetusblogin merkityksellisenä, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa.
menetelmä ylikuormittaa ja ohittaa Java-sovelluksessa
Onko sinulla kysymys meille? Mainitse se kommenttiosassa ” Kubernetes-opetusohjelma ”Ja palaan takaisin sinuun.