Kubernetes – pilven peukalointi

Kun haluat käyttää Linuxia palveluiden tarjoamiseen yritykselle, näiden palvelujen on oltava turvallisia, joustavia ja skaalautuvia. Hienoja sanoja, mutta mitä heillä tarkoitetaan?

‘Turvallinen’ tarkoittaa, että käyttäjät pääsevät käyttämään tarvitsemiaan tietoja, olipa kyseessä vain luku -oikeus tai kirjoitusoikeus. Samaan aikaan mikään tieto ei altistu kenellekään osapuolelle’Sillä ei ole lupaa nähdä sitä. Turvallisuus on harhaanjohtava: Voit luulla, että sinulla on kaikki suojattu vain saadaksesi myöhemmin selville, että aukkoja on. Suunnittelu turvallisuuteen projektin alusta lähtien on paljon helpompaa kuin yrittää jälkiasentaa sitä myöhemmin.

‘kimmoisa’ tarkoittaa, että palvelusi sietävät vikoja infrastruktuurissa. Vika voi olla palvelimen levyohjain, joka ei voi enää käyttää levyjä, mikä tekee tiedoista saavuttamattomia. Tai vika voi olla verkkokytkin, joka ei enää mahdollista kahden tai useamman järjestelmän kommunikointia. Tässä yhteydessä a “yksi virhekohta” tai SPOF on vika, joka vaikuttaa haitallisesti palvelun saatavuuteen. Joustava infrastruktuuri on sellainen, jossa ei ole SPOF: ita.

‘skaalautuva’ kuvaa järjestelmien kykyä hoitaa kysynnän piikit sulavasti. Se sanelee myös, kuinka helposti järjestelmiin voidaan tehdä muutoksia. Esimerkiksi uuden käyttäjän lisääminen, tallennuskapasiteetin lisääminen tai infrastruktuurin siirtäminen Amazon Web Services -palvelusta Google Cloudiin – tai jopa siirtäminen sisäisesti.

Heti kun infrastruktuurisi laajenee yhden palvelimen ulkopuolelle, on paljon vaihtoehtoja turvallisuuden, joustavuuden ja skaalautuvuuden lisäämiseksi. Me’Katsotaan, kuinka nämä ongelmat on ratkaistu perinteisesti ja mitä uutta tekniikkaa on saatavana, joka muuttaa suurten sovellusten laskennan kasvot.

Ymmärtää mitä’on mahdollista tänään, se’On hyödyllistä tarkastella, miten teknologiahankkeet on perinteisesti toteutettu. Yritykset ostaisivat tai vuokraavat laitteistoja sovellustensa kaikkien komponenttien palauttamiseksi vanhaan aikaan – toisin sanoen yli 10 vuotta sitten. Jopa suhteellisen yksinkertaisissa sovelluksissa, kuten WordPress-verkkosivustossa, on useita komponentteja. WordPressin tapauksessa tarvitaan MySQL-tietokanta sekä web-palvelin, kuten Apache, ja tapa käsitellä PHP-koodia. Joten he’d rakenna palvelin, aseta Apache, PHP ja MySQL, asenna WordPress ja poista ne’d mennä.

Yleensä se toimi. Se toimi riittävän hyvin, että tänään on edelleen valtava määrä palvelimia, jotka on määritetty täsmälleen tällä tavalla. Mutta se ei ollut’t täydellinen, ja kaksi suuremmasta ongelmasta oli joustavuus ja skaalautuvuus.

Joustavuuden puute tarkoitti sitä, että palvelimelle merkittävä ongelma johtaisi palvelun menetykseen. Katastrofinen epäonnistuminen tarkoittaisi selvästi verkkosivuston poistumista, mutta ei myöskään ollut tilaa suorittaa ajoitettuja huoltotoimenpiteitä vaikuttamatta verkkosivustoon. Jopa rutiinisen Apache-tietoturvapäivityksen asentaminen ja aktivointi vaatisi muutaman sekunnin’ seisokki verkkosivustolle.

Joustavuusongelma ratkaistiin suurelta osin rakentamalla ‘korkea käytettävyysklustereita’. Periaatteena oli, että verkkosivustolla on kaksi palvelinta, jotka on konfiguroitu siten, että jommankumman virhe ei onnistunut’t johtaa siihen, että verkkosivusto on alhaalla. Tarjoama palvelu oli joustavaa, vaikka yksittäiset palvelimet eivät olisikaan.

Tiivistelmä pilviä

Osa Kubernetesin voimasta on sen tarjoama abstraktio. Kehittäjältä’Näkökulmasta he kehittävät sovelluksen ajaakseen Docker-säilössä. Telakka ei’t välitä siitä’s käynnissä Windows, Linux tai jokin muu käyttöjärjestelmä. Sama Docker-säilö voidaan ottaa kehittäjältä’s MacBook ja aja Kubernetesin alla ilman muutoksia.

Itse Kubernetes-asennus voi olla yksi kone. Tietenkin, paljon Kubernetesin eduista voitti’t olla käytettävissä: automaattista skaalausa ei tule; siellä’s ilmeinen yksittäinen vikakohta ja niin edelleen. Todisteena konseptista testiympäristössä se kuitenkin toimii.

Kerran sinä’Kun olet valmis tuottamaan, voit suorittaa sisäisen palvelun tai pilvipalveluntarjoajan, kuten AWS tai Google Cloud. Pilvipalveluntarjoajilla on joitain sisäänrakennettuja palveluita, jotka auttavat Kubernetesin käyttämistä, mutta yksikään niistä ei ole kovia vaatimuksia. Jos haluat siirtyä Googlen, Amazonin ja oman infrastruktuurin välillä, määrität Kubernetesin ja siirryt toiselle. Mikään sovelluksistasi ei tarvitse muuttua millään tavalla.

Lue myös  Mitä voit tehdä kannettavalla tietokoneella?

Ja missä on Linux? Kubernetes toimii Linuxissa, mutta käyttöjärjestelmä on näkymätön sovelluksille. Tämä on merkittävä askel IT-infrastruktuurien kypsyydessä ja käytettävyydessä.

Slashdot-vaikutus

Skaalautuvuusongelma on vähän vaikeampi. Päästää’Sanotaan, että WordPress-sivustossasi on 1 000 kävijää kuukaudessa. Yhtenä päivänä yrityksesi mainitaan Radio 4: ssä tai aamiaistelevisiossa. Yhtäkkiä saat yli kuukauden’arvokasta kävijöitä 20 minuutissa. Me’olemme kaikki kuulleet tarinoita verkkosivustoista ‘kaatuu’, ja tuo’s tyypillisesti miksi: skaalautuvuuden puute.

Kaksi palvelinta, jotka auttoivat kestävyyteen, pystyivät hallitsemaan suurempaa työmäärää kuin yksi palvelin yksin pystyi, mutta se’s edelleen rajoitettu. Sinä’d maksaa kahdesta palvelimesta 100 prosenttia ajasta ja suurimman osan ajasta molemmat toimivat täydellisesti. Se’on todennäköistä, että yksi yksin voi käyttää sivustoasi. Sitten John Humphrys mainitsee yrityksesi tänään ja sinä’d Tarvitset 10 palvelinta kuorman käsittelemiseen – mutta vain muutama tunti.

Parempi ratkaisu sekä joustavuus- että skaalautuvuusongelmiin oli pilvipalvelu. Asenna vähintään kaksi palvelinohjelmaa – pieniä palvelimia, jotka käyttävät sovelluksiasi – Amazon Web Services (AWS) tai Google Cloud -palvelussa. Jos jokin ilmentymistä epäonnistui jostain syystä, se käynnistetään automaattisesti uudelleen. Asenna automaattinen skaalaaminen oikein ja kun herra Humphrys aiheuttaa Web-palvelin-ilmentymien työmäärän nopean nousun, lisäpalvelin-ilmentymät alkavat automaattisesti jakaa työmäärän. Myöhemmin, kun korot rauhoittuvat, nämä ylimääräiset tapaukset lopetetaan, ja maksat vain käyttämästäsi. Täydellinen… vai onko se?

Vaikka pilviratkaisu on paljon joustavampi kuin perinteinen itsenäinen palvelin, ongelmia on edelleen. Kaikkien käynnissä olevien pilvi-ilmentymien päivittäminen ei ole’t suoraviivainen. Pilveen kehittämisellä on myös haasteita: kehittäjien käyttämä kannettava tietokone voi olla samanlainen kuin pilvi-ilmentymä, mutta se’ei ole sama. Jos sitoudut AWS: ään, siirtyminen Google Cloudiin on monimutkainen tehtävä. Oletetaan, jostain syystä et vain don’t halua luovuttaa tietokoneesi Amazonille, Googlelle tai Microsoftille?

Kontit ovat nousseet keinoksi kääriä sovellukset kaikilla riippuvuuksillaan yhdeksi paketiksi, jota voidaan ajaa missä tahansa. Kontit, kuten Docker, voivat toimia kehittäjillesi’ kannettavat tietokoneet samalla tavalla kuin ne toimivat pilvi-ilmentymissäsi, mutta konttikannan hallinta on entistä haastavampaa, kun konttien lukumäärä kasvaa.

Vastaus on konttiorkestraatio. Tämä on merkittävä painopisteen muutos. Ennen varmistimme, että meillä on tarpeeksi fyysisiä tai virtuaalisia palvelimia varmistaaksemme, että pystymme palvelemaan työmäärää. Pilvipalveluntarjoajien käyttäminen’ autoskaalaus auttoi, mutta käsittelemme silti tapauksia. Meidän piti konfiguroida kuormatasapainot, palomuurit, tietojen tallennus ja muut käsin. Konttien orkestroinnilla kaikki tämä (ja paljon muuta) hoidetaan. Määrittelemme vaadittavat tulokset ja konttiorkestointityökalut täyttävät vaatimuksemme. Me määrittelemme, mitä haluamme tehdä, sen sijaan miten haluamme sen tapahtuvan.

Jatkuva integrointi ja jatkuva käyttöönotto voivat toimia hyvin Kubernetesin kanssa. Tässä’yleiskatsaus Jenkinsistä, jota käytetään Java-sovelluksen rakentamiseen ja käyttöönottoon

(Kuvaluotto: tulevaisuus)

Ryhdy Kuberneteksi

Kubernetes (ku-ber-net-eez) on nykyään johtava konttiorkesterityökalu, ja se tuli Googlelta. Jos joku osaa hallita suuria IT-infrastruktuureja, Google tekee niin. Kubernetesin alkuperä on Borg, joka on sisäinen Google-projekti’käytetään edelleen suurimman osan Googlesta’sovelluksia, mukaan lukien hakukone, Gmail, Google Maps ja paljon muuta. Borg oli salaisuus, kunnes Google julkaisi asiasta lehden vuonna 2015, mutta paperista tehtiin hyvin selväksi, että Borg oli Kubernetesin taustalla oleva pää inspiraatio.

Lue myös  Mikä on pikselin binning ja miten se voi auttaa älypuhelimieni valokuvaamisessa?

Borg on järjestelmä, joka hallinnoi laskennallisia resursseja Googlessa’tietokeskuksia ja pitää Googlea’Sovellukset, sekä tuotannossa että muuten, toimivat huolimatta laitteistovirheistä, resurssien loppumisesta tai muista esiintyvistä ongelmista, jotka muuten ovat saattaneet aiheuttaa katkoksen. Se tekee tämän tarkkailemalla huolellisesti tuhansia solmuja, jotka muodostavat Borgin “solu” ja niiden päällä olevat konttit sekä konttien käynnistäminen tai pysäyttäminen tarvittaessa vastauksena ongelmiin tai kuorman vaihteluihin.

Itse Kubernetes syntyi Googlesta’s GIFEE (‘Google’s Infrastruktuuri kaikille muille’) ja oli suunniteltu ystävällisemmäksi versioon Borgista, josta voi olla hyötyä Googlen ulkopuolella. Se lahjoitettiin Linux-säätiölle vuonna 2015 perustamalla Cloud Native Computing Foundation (CNCF)..

Kubernetes tarjoaa järjestelmän, jonka avulla sinä “julistaa” säilytyssovellukseesi ja palveluihisi, ja se varmistaa, että sovelluksesi toimivat näiden ilmoitusten mukaisesti. Jos ohjelmasi vaativat ulkoisia resursseja, kuten säilytys- tai lataustasapainot, Kubernetes voi tarjota ne automaattisesti. Se voi skaalata sovelluksiasi ylös- tai alaspäin seurataksesi kuormituksen muutoksia ja jopa skaalaamaan koko klusterisi tarvittaessa. Ohjelmasi’s komponentit don’t edes tarvitse tietää, missä he ovat’käynnissä uudelleen: Kubernetes tarjoaa sovelluksille sisäisiä nimeämispalveluita, jotta ne voivat muodostaa yhteyden “wp_mysql” ja olla yhteydessä automaattisesti oikeaan resurssiin.’

Lopputuloksena on alusta, jota voidaan käyttää sovellusten suorittamiseen missä tahansa infrastruktuurissa, yhdestä koneesta järjestelmässä sijaitsevan telineen kautta millä tahansa suurimmalla pilvipalveluntarjoajalla toimivien virtuaalikoneiden pilvipohjaisiin laivastoihin, jotka kaikki käyttävät samoja kontteja ja kokoonpano. Kubernetes on toimittaja-agnostiikka: aja sitä missä haluat.

Kubernetes on tehokas työkalu ja välttämättä monimutkainen. Ennen kuin pääsemme yleiskatsaukseen, meidän on esiteltävä joitain Kubernetesissa käytettyjä termejä. Kontit ajavat yksittäisiä sovelluksia, kuten yllä keskusteltiin, ja ryhmitellään palkoihin. Pod on ryhmä läheisesti kytkettyjä säilöjä, jotka asennetaan yhdessä samassa isäntässä ja jakavat joitain resursseja. Laatikossa olevat kontit toimivat joukkueena: he’Suoritan niihin liittyviä toimintoja, kuten sovellussäiliö ja lokisäiliö, jolla on sovelluksen erityiset asetukset.

Yleiskatsaus Kubernetesista, joka näyttää pääkäyttäjän suorittavan avainkomponentit ja kaksi solmua. Huomaa, että käytännössä pääkomponentit voidaan jakaa useisiin järjestelmiin

(Kuvaluotto: tulevaisuus)

Neljä avainta Kubernetes-komponenttia ovat API Server, Scheduler, Controller Manager ja hajautettu kokoonpanotietokanta, nimeltään etcd. API-palvelin on Kubernetesin ytimessä ja toimii kaikkien hallintapyyntöjen ensisijaisena päätepisteenä. Niitä voidaan tuottaa monista lähteistä, mukaan lukien muut Kubernetes-komponentit, kuten aikataulu, järjestelmänvalvojat komentorivin tai web-pohjaisten kojetaulujen kautta ja itse säilötyt sovellukset. Se tarkistaa pyynnöt ja päivittää tietokantaan etcd tallennetut tiedot.

Aikataulu määrittää, mitkä solmut eri palkoja käytetään, ottaen huomioon rajoitukset, kuten resurssivaatimukset, mahdolliset laitteisto- tai ohjelmistorajoitukset, työmäärä, määräajat ja muut.

Controller Manager seuraa klusterin tilaa ja yrittää käynnistää tai pysäyttää palot välttämättä API-palvelimen kautta, jotta klusteri saadaan haluttuun tilaan. Se hallitsee myös joitain sisäisiä yhteyksiä ja turvaominaisuuksia.

Jokainen solmu suorittaa Kubelet-prosessin, joka on yhteydessä API-palvelimeen ja hallitsee säilöjä – yleensä käyttämällä Dockeria – ja Kube-Proxy, joka käsittelee verkon välityspalvelimia ja kuorman tasapainotusta klusterissa.

Hajautettu tietokantajärjestelmä etcd johtaa nimensä /jne Linux-järjestelmien kansio, jota käytetään järjestelmän määritystietojen ja jälkiliitteen pitämiseen ‘d’, käytetään usein ilmaisemaan daemon-prosessia. Etcd: n tavoitteena on tallentaa avainta-arvoista tietoa hajautetulla, johdonmukaisella ja vikasietoisella tavalla.

API-palvelin pitää kaikki tilatietonsa etcd: ssä ja voi suorittaa useita esiintymiä samanaikaisesti. Aikatauluttajalla ja ohjaimen hallinnalla voi olla vain yksi aktiivinen ilmentymä, mutta se käyttää vuokrausjärjestelmää määrittämään, mikä käynnissä oleva ilmentymä on pää. Kaikki tämä tarkoittaa, että Kubernetes voi toimia erittäin saatavana järjestelmänä ilman yksittäisiä vikakohtia.

Lue myös  Kuinka voittaa Renon pelissä Final Fantasy 7 Remake

Kokoamalla se kaikki

Joten miten käytämme näitä komponentteja käytännössä? Seuraava on esimerkki WordPress-verkkosivuston asettamisesta Kubernetesin avulla. Jos halusit tehdä tämän oikein, niin sinäkin’d käytä todennäköisesti ennalta määritettyä reseptiä, nimeltään ruorikartta. Niitä on saatavana useisiin yleisiin sovelluksiin, mutta tässä me’Tarkastelemme joitain vaiheita, jotka ovat tarpeen WordPress-sivuston saamiseksi käyttöön Kubernetesissa.

Ensimmäinen tehtävä on määrittää salasana MySQL: lle:

kubectl luo salainen yleinen mysql-pass –from-literal = password = YOUR_PASSWORD

kubectl puhuu API-palvelimen kanssa, joka vahvistaa komennon ja tallentaa sitten salasanan etcd: hen. Palvelumme on määritelty YAML-tiedostoissa, ja nyt tarvitsemme jonkin verran pysyvää tallennusta MySQL-tietokantaan.

apiVersion: v1kind: PersistentVolumeClaimmetadata: nimi: mysql-pv-vaatemerkinnät: sovellus: wordpressspec: accessModes: – ReadWriteOnceresources: pyynnöt: varastointi: 20Gi

Eritelmän tulisi olla enimmäkseen itsestään selvä. Nimi- ja tarrakenttiä käytetään viitaamaan tähän Kubernetesin muiden osien muistiin, tässä tapauksessa WordPress-säilöön.

Kerran me’määritellessäsi tallennustilan, voimme määritellä MySQL-ilmentymän osoittamalla sen ennalta määritettyyn tallennustilaan. Että’sen jälkeen määrittelee itse tietokannan. Annamme tietokannalle nimen ja tarran, jotta Kubernetesissa on helppo viitata siihen.

Nyt tarvitsemme toisen säilön WordPressin suorittamiseksi. Osa säilön käyttöönoton eritelmästä on:

laji: Käyttötietojen tiedot: nimi: sanamerkinnät: sovellus: wordpressspec: strategia: tyyppi: Recreate

Strategiatyyppi “Tee uudelleen” tarkoittaa, että jos jokin sovelluksen sisältävä koodi muuttuu, käynnissä olevat esiintymät poistetaan ja luodaan uudelleen. Muita vaihtoehtoja ovat uusien esiintymien kierrätys ja olemassa olevien esiintymien poistaminen yksi kerrallaan, jolloin palvelun toiminta voi jatkua päivityksen käyttöönoton aikana. Viimeinkin julistamme palvelun itse WordPressille, joka käsittää PHP-koodin ja Apache: n. Osa YAML-tiedostosta, joka julistaa tämän, on:

metatiedot: nimi: wordpresslabels: app: wordpressspec: portit: – portti: 80selector: app: wordpresstier: frontendtype: LoadBalancer

Huomaa viimeinen rivi, joka määrittelee palvelun tyypin LoadBalanceriksi. Se ohjeistaa Kubernetesia tarjoamaan palvelun saataville Kubernetesin ulkopuolella. Ilman tätä linjaa tämä olisi vain sisäinen “Vain Kubernetes” palvelua. Ja tuo’s se. Kubernetes käyttää nyt näitä YAML-tiedostoja ilmoituksena siitä, mitä vaaditaan, ja perustaa palkit, yhteydet, tallennustilan ja niin edelleen tarvittavan päästäkseen klusterin “haluttu” osavaltio.

Käytä kojetaulunäkymää saadaksesi yhdellä silmäyksellä Kubernetes toiminnassa

(Kuvaluotto: ojittelu)

Tämä on välttämättä ollut vain Kubernetesin korkean tason katsaus, ja monet järjestelmän yksityiskohdat ja ominaisuudet on jätetty pois. Me’ve kiiltävä automaattisen skaalauksen (sekä palkkien että klusterin muodostavien solmujen), cron-töiden (aloituskonttien aikataulun mukaan), Ingressin (HTTP-kuorman tasapainotus, uudelleenkirjoittaminen ja SSL: n poisto), RBAC: n (rooliperusteiset käyttöohjeet), verkon kautta käytännöt (palomuuri) ja paljon muuta. Kubernetes on erittäin joustava ja erittäin tehokas: Kaikille uudelle IT-infrastruktuurille on oltava vakava haastaja.

voimavarat

Jos sinä’uudelleen tuntematon Docker aloita täältä: https://docs.docker.com/get-started.

siellä’s interaktiivinen opetusohjelma sovelluksen käyttöönotosta ja skaalaamisesta täältä: https://kubernetes.io/docs/tutorials/kubernetes-basics.

Ja katso https://kubernetes.io/docs/setup/scratch klusterin rakentamiseksi.

Voit pelata ilmaisella Kubernetes-klusterilla osoitteessa https://tryk8s.com.

Lopuksi voit huijata pitkän teknisen paperin, jolla on erinomainen yleiskuva Googlesta’Borgin käyttö ja miten se vaikutti Kubernetesin suunnitteluun täällä: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/43438.pdf.

Lisätietoja Tiger Computingista.

  • Vuoden 2019 paras pilvitallennus verkossa: ilmainen, maksettu ja liiketoimintavaihtoehto

Logitech -nosto pystysuora ergonominen hiiren arvostelu: Mukavuus on avain

Kiitos, että olet kirjautunut ojaan. Saat pian tarkistusviestin. Oli ongelma. Päivitä sivu ja yritä uudelleen. Lähettämällä tietosi hyväksyt ehdot ja tietosuojakäytäntö...

Chrome Industries Niko 3.0 Kameran reppu Review: Premium Laukku kadun valokuvaajille

Kiitos, että olet rekisteröitynyt ojaan. Saat pian vahvistusviestin. Oli ongelma. Päivitä sivu ja yritä uudelleen. Lähettämällä tietosi hyväksyt käyttöehdot ja tietosuojakäytännöt...

ASUS ZENWIFI PRO ET12 Review: Seuraavan sukupolven Wi-Fi 6E Mesh Networking

Kiitos, että olet rekisteröitynyt ojaan. Saat pian vahvistusviestin. Oli ongelma. Päivitä sivu ja yritä uudelleen. Lähettämällä tietosi hyväksyt käyttöehdot ja tietosuojakäytännöt...

LG C2 (OLED65C2) Tarkastelu: paras OLED TV useimmille ihmisille vuonna 2022

Kiitos, että olet rekisteröitynyt ojaan. Saat pian vahvistusviestin. Oli ongelma. Päivitä sivu ja yritä uudelleen. Lähettämällä tietosi hyväksyt ehdot (avautuu uudessa...