Ohjelmointi

4 syytä käyttää Kubernetesia

Sirish Raghuram on Platform9 Systemsin perustaja ja toimitusjohtaja.

Kuten useimmat nykyaikaiset ohjelmistokehittäjät voivat todistaa, kontit ovat tarjonneet meille huomattavasti enemmän joustavuutta pilvikohtaisten sovellusten suorittamiseen fyysisessä ja virtuaalisessa infrastruktuurissa. Säiliöt pakkaavat sovelluksen sisältävät palvelut ja tekevät niistä kannettavat eri laskentaympäristöissä sekä kehitystyöhön / testaukseen että tuotantokäyttöön. Säiliöillä on helppo nostaa sovelluskohteita nopeasti vastaamaan kysynnän piikkejä. Ja koska kontit hyödyntävät isäntä-käyttöjärjestelmän resursseja, ne ovat paljon kevyempiä kuin virtuaalikoneet. Tämä tarkoittaa, että säilöt käyttävät erittäin tehokkaasti palvelimen perusinfrastruktuuria.

Toistaiseksi niin hyvä. Vaikka säilön ajonaikaiset sovellusliittymät soveltuvat hyvin yksittäisten säilöjen hallintaan, ne ovat valitettavasti riittämättömiä sellaisten sovellusten hallinnassa, jotka saattavat sisältää satoja säilöjä, jotka on jaettu useille isännille. Säiliöitä on hallittava ja liitettävä ulkomaailmaan esimerkiksi aikataulujen, kuormituksen tasaamisen ja jakelun suorittamiseksi, ja tässä Kubernetesin kaltainen kontti-orkestrointityökalu tulee omaansa.

Avoimen lähdekoodin järjestelmä konttisovellusten käyttöönottoon, skaalautumiseen ja hallintaan. Kubernetes hoitaa konttien ajoituksen työn laskentaryhmään ja hallitsee työmäärät varmistaakseen, että ne toimivat käyttäjän tarkoituksella. Sen sijaan, että Kubernetes yhdistää toimintoja jälkikäteen, se tuo ohjelmistokehityksen ja toiminnan yhteen suunnitellusti. Käyttämällä deklaratiivisia, infrastruktuuri-agnostisia rakenteita kuvaamaan kuinka sovellukset koostuvat, miten ne ovat vuorovaikutuksessa ja miten niitä hallitaan, Kubernetes mahdollistaa nykyaikaisten ohjelmistojärjestelmien toimintakyvyn suuruusluokan lisäyksen.

Google rakensi Kubernetesin omien kokemustensa pohjalta konttien käyttämisestä kokemuksen perusteella, ja se on varmasti suurimman osan menestyksestään velkaa Googlen osallistumiselle. Googlella on planeetan lahjakkaimpia ohjelmistokehittäjiä, ja se tarjoaa mittakaavassa suurimpia ohjelmistopalveluita. Tällä yhdistelmällä varmistettiin, että Kubernetesistä tuli vakaa alusta, joka pystyy vastaamaan käytännössä minkä tahansa organisaation skaalaustarpeisiin. Tässä artikkelissa selitetään, miksi Kubernetes on tärkeä ja miksi se on merkittävä edistysaskel devops-joukkueille.

Liittyvä video: Mikä on Kubernetes?

Tässä 90 sekunnin videossa saat tietoa Kubernetesista, avoimen lähdekoodijärjestelmästä konttisovellusten automatisointiin, yhdeltä tekniikan keksijältä, Joe Bedalta, Heption perustajalta ja CTO: lta.

Infrastruktuuri tänään

Nykyään kehittäjiä kehotetaan kirjoittamaan sovelluksia, jotka toimivat useissa käyttöympäristöissä, mukaan lukien erilliset on-prem-palvelimet, virtualisoidut yksityiset pilvet ja julkiset pilvet, kuten AWS ja Azure. Perinteisesti sovellukset ja niitä tukevat työkalut ovat olleet tiiviisti sidoksissa taustalla olevaan infrastruktuuriin, joten muiden käyttöönottomallien käyttö oli kallista niiden mahdollisista eduista huolimatta. Tämä tarkoitti sitä, että sovelluksista tuli riippuvaisia ​​tietystä ympäristöstä monin tavoin, mukaan lukien tiettyyn verkkoarkkitehtuuriin liittyvät suorituskykykysymykset; sitoutuminen pilvipalvelujen tarjoajien spesifisiin rakenteisiin, kuten omiin orkesterointitekniikoihin; ja riippuvuudet tietystä taustajärjestelmästä.

PaaS yrittää kiertää nämä ongelmat, mutta usein tiukkojen vaatimusten kustannuksella esimerkiksi ohjelmointikielissä ja sovelluskehyksissä. PaaS on siis monien kehitystiimien rajojen ulkopuolella.

Kubernetes eliminoi infrastruktuurin lukituksen tarjoamalla ydinominaisuudet kontteille asettamatta rajoituksia. Se saavuttaa tämän Kubernetes-alustan ominaisuuksien yhdistelmällä, mukaan lukien Pods ja Services.

Parempi hallinta modulaarisuuden avulla

Säiliöt mahdollistavat sovellusten hajottamisen pienempiin osiin huolella. Yksittäiselle säiliökuvalle tarjottu abstraktiokerros antaa meille mahdollisuuden pohtia uudelleen hajautettujen sovellusten rakennetta. Tämä modulaarinen lähestymistapa mahdollistaa nopeamman kehityksen pienemmillä, kohdennetuimmilla tiimeillä, jotka ovat vastuussa tietyistä kontteista. Sen avulla voimme myös eristää riippuvuudet ja käyttää paremmin viritettyjä, pienempiä komponentteja.

Mutta sitä ei voida saavuttaa pelkästään säiliöillä; se vaatii järjestelmän näiden modulaaristen osien integroimiseksi ja orkestroimiseksi. Kubernetes saavuttaa tämän osittain käyttämällä Podsia - tyypillisesti kokoelma kontteja, joita ohjataan yhtenä sovelluksena. Säilöt jakavat resursseja, kuten tiedostojärjestelmät, ytimen nimitilat ja IP-osoitteen. Sallimalla konttien sijoittamisen tällä tavalla Kubernetes poistaa houkutuksen täyttää liikaa toimintoja yhdellä konttikuvalla.

Palvelun käsitteellä Kubernetes käytetään ryhmittelemään kokoelma podeja, jotka suorittavat samanlaisen tehtävän. Palvelut voidaan helposti konfiguroida löydettävyyden, havaittavuuden, vaakasuuntaisen skaalauksen ja kuormituksen tasapainottamisen kannalta.

Ohjelmistojen käyttöönotto ja päivittäminen mittakaavassa

Devops syntyi menetelmänä nopeuttaa ohjelmistojen rakentamista, testaamista ja julkaisemista. Sen seuraus on ollut painopisteen siirtyminen infrastruktuurin hallinnasta ohjelmistojen käyttöönoton ja päivittämisen hallintaan. Suurin osa infrastruktuurikehyksistä ei tue tätä mallia, mutta Kubernetes tukee, osittain Kubernetes Controllersin kautta. Ohjainten ansiosta infrastruktuurin avulla on helppo hallita sovelluksen elinkaarta.

Käyttöönotto-ohjain yksinkertaistaa useita monimutkaisia ​​hallintatehtäviä. Esimerkiksi:

  • Skaalautuvuus. Ohjelmisto voidaan ottaa käyttöön ensimmäistä kertaa laajennetusti Podsin kautta, ja käyttöönottoja voidaan skaalata sisään tai ulos milloin tahansa.
  • Näkyvyys. Tunnista valmiit, keskeneräiset ja epäonnistuneet käyttöönotot tilakyselyominaisuuksilla.
  • Aikasäästöt. Keskeytä käyttöönotto milloin tahansa ja jatka sitä myöhemmin.
  • Versiohallinta. Päivitä käyttöönotetut podit käyttämällä sovelluskuvien uudempia versioita ja palaa takaisin aiempaan käyttöönottoon, jos nykyinen versio ei ole vakaa.

Muiden mahdollisuuksien lisäksi Kubernetes yksinkertaistaa muutamia erityisiä käyttöönottotoimenpiteitä, jotka ovat erityisen arvokkaita nykyaikaisten sovellusten kehittäjille. Näitä ovat seuraavat:

  • Vaakasuuntainen automaattinen skaalaus. Kubernetesin automaattiset skaalaimet kokoavat käyttöönoton podien määrän automaattisesti määritettyjen resurssien käytön perusteella (määriteltyjen rajojen sisällä).
  • Päivitetyt päivitykset. Kubernetes-käyttöönoton päivitykset orkestroidaan "liikkuvalla tavalla" koko käyttöönoton Podsissa. Nämä liikkuvat päivitykset on sovitettu työskenneltäessä valinnaisten ennalta määritettyjen rajoitusten kanssa niiden poikasten lukumäärälle, jotka eivät ehkä ole käytettävissä, ja tilapäisesti mahdollisesti käytettävissä olevien varaosien määrälle.
  • Kanariansaarten käyttöönotto. Hyödyllinen malli käyttöönoton uuden version käyttöönotossa on uuden käyttöönoton testaaminen tuotannossa, rinnakkain edellisen version kanssa, ja uuden laajennuksen laajentaminen samalla kun pienennetään edellistä käyttöönottoa.

Toisin kuin perinteiset, kattavat PaaS-palvelut, Kubernetes tarjoaa laajan liikkumavaran tuetuille sovellustyypeille. Se ei sanele sovelluskehyksiä (kuten Wildfly), rajoita tuettuja kielenkäyttöaikoja (Java, Python, Ruby), tarjoa vain 12-tekijäisiä sovelluksia tai erota sovellukset palveluista. Kubernetes tukee monenlaisia ​​kuormituksia, mukaan lukien valtiottomia, tilallisia ja tietojenkäsittelykuormituksia. Jos sovellus voi toimia säilössä, sen pitäisi toimia hyvin Kubernetesillä.

Pohjan luominen pilvipohjaisille sovelluksille

Ei ole yllättävää, kun otetaan huomioon kiinnostus kontteihin, on syntynyt muita hallinta- ja orkestrointityökaluja. Suosittuja vaihtoehtoja ovat Apache Mesos with Marathon, Docker Swarm, AWS EC2 Container Service (ECS) ja HashiCorpin Nomad.

Jokaisella on omat etunsa. Docker Swarm on pakattu tiukasti Docker-ajonaikaan, joten käyttäjät voivat siirtyä helposti Dockerista Swarmiin; Mesos Marathonilla ei ole rajoitettu kontteihin, mutta se voi käyttää minkä tahansa tyyppisiä sovelluksia; AWS ECS on nykyisten AWS-käyttäjien helpompi käyttää. Kuitenkin Kubernetes-klusterit voivat toimia EC2: llä ja integroitua palveluihin, kuten Amazon Elastic Block Storage, Elastic Load Balancing, Auto Scaling Groups ja niin edelleen.

Nämä kehykset alkavat kopioida toisiaan ominaisuuksiltaan ja toiminnallisuudeltaan, mutta Kubernetes on edelleen erittäin suosittu arkkitehtuurinsa, innovaatioidensa ja sen ympärillä olevan suuren avoimen lähdekoodin yhteisön ansiosta.

Kubernetes on läpimurto devopsille, koska se antaa tiimien pysyä ajan tasalla nykyaikaisen ohjelmistokehityksen vaatimuksista. Kubernetesin puuttuessa tiimit ovat usein joutuneet komentamaan omia ohjelmistojensa käyttöönotto-, skaalaus- ja päivitystyönkulkuja. Jotkut organisaatiot käyttävät suuria tiimejä hoitamaan nämä tehtävät yksin. Kubernetes antaa meille mahdollisuuden hyödyntää mahdollisimman paljon hyötyä säilöistä ja rakentaa pilvipohjaisia ​​sovelluksia, jotka voivat toimia missä tahansa, pilvikohtaisista vaatimuksista riippumatta. Tämä on selvästi tehokas malli sovelluskehitykselle ja toiminnalle, jota olemme odottaneet.

New Tech Forum tarjoaa mahdollisuuden tutkia ja keskustella kehittyvistä yritysteknologioista ennennäkemättömällä syvyydellä ja laajuudella. Valinta on subjektiivinen, perustuu valitsemiemme tekniikoihin, joiden uskomme olevan tärkeitä ja kiinnostavia lukijoille. ei hyväksy markkinointivakuuksia julkaisua varten ja pidättää oikeuden muokata kaikkea lähetettyä sisältöä. Lähetä kaikki tiedustelut osoitteeseen [email protected].

$config[zx-auto] not found$config[zx-overlay] not found