{"id":31173,"date":"2019-10-31T21:39:53","date_gmt":"2019-10-31T18:39:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes\/"},"modified":"2019-10-31T21:39:53","modified_gmt":"2019-10-31T18:39:53","slug":"obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","title":{"rendered":"Kubernetes' Ingress-kontrollerite \u00fclevaade ja v\u00f5rdlus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes&#039; Ingress-kontrollerite \u00fclevaade ja v\u00f5rdlus\" src=\"\/wp-content\/uploads\/2019\/04\/3e6d3882a8f5a96a257fab4daaa230f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes'e klastri k\u00e4ivitamisel konkreetse rakenduse jaoks tuleks m\u00f5ista, millised n\u00f5udmised see rakendus koos \u00e4ri ja arendajatega sellele ressursile esitab. Kui see teave on olemas, saab alustada arhitektuurilise otsuse tegemist, sealhulgas valida konkreetse Ingress-kontrolleri, mida t\u00e4naseks on juba palju. Selle \u00fclevaate koostamiseks, et anda baasteave olemasolevate variantide kohta ilma paljude artiklite \/ dokumentatsiooni jms uurimiseta, oleme selle \u00fclevaate ette valmistanud, kaasates peamised (tootmisk\u00f5lbulikud) Ingress-kontrollerid.<\/p>\n<p>Loodame, et see aitab kolleegidel arhitektuurilise lahenduse valimisel \u2014 v\u00e4hemalt on see alguspunkt, et saada \u00fcksikasjalikumat teavet ja praktilisi katsetusi. Oleme eelnevalt uurinud teisi sarnaseid materjale veebis ning, imelik k\u00fcll, ei leidnud \u00fchtegi rohkem-v\u00f5i-v\u00e4hem t\u00e4ielikku, ja mis k\u00f5ige t\u00e4htsam \u2014 struktureeritud \u2014 \u00fclevaadet. Nii et l\u00fckakem see puuduj\u00e4\u00e4k t\u00e4ide!<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kriteeriumid<\/h2>\n<p>\nKuna v\u00f5rreldavate tulemuste saamiseks tuleb m\u00f5ista mitte ainult teemat, vaid ka omada konkreetset kriteeriumide loetelu, mis suunavad uurimist. Ilma et p\u00fc\u00fcdleksime k\u00f5igi v\u00f5imalike Ingress \/ Kubernetes'e kasutusjuhtumite anal\u00fc\u00fcsi poole, p\u00fc\u00fcdsime esile tuua k\u00f5ige \u00fcldisemad n\u00f5uded kontrolleritele \u2014 olge valmis, et kogu oma erip\u00e4ra ja detailid tuleb siiski eraldi uurida.<\/p>\n<p>Kuid alustame omadustest, mis on muutunud nii levinuks, et need on teostatud k\u00f5igis lahendustes ja neid ei k\u00e4sitleta:<\/p>\n<ul>\n<li> d\u00fcnaamiline teenuste avastamine (service discovery);<\/li>\n<li> SSL-i terminatsioon;<\/li>\n<li> t\u00f6\u00f6 websocketidega.<\/li>\n<\/ul>\n<p>\nN\u00fc\u00fcd \u2014 v\u00f5rreldavad punktid:<\/p>\n<h3>Toetatud protokollid<\/h3>\n<p>\n\u00dcks p\u00f5hikriteeriumidest valiku jaoks. Teie tarkvara ei pruugi t\u00f6\u00f6tada standardse HTTP kaudu v\u00f5i n\u00f5uda koos t\u00f6\u00f6tamist mitmete protokollidega. Kui teie juhtum on ebatavaline, v\u00f5tke kindlasti arvesse seda tegurit, et teil hiljem ei peaks kloorimise klastrit \u00fcle seadistama. K\u00f5ikide kontrollerite toetatud protokollide nimekiri varieerub.<\/p>\n<h3>Tarkvara aluseks<\/h3>\n<p>\nOn erinevaid rakendusi, millel p\u00f5hinevad kontrollerid. Populaarsed on nginx, traefik, haproxy, envoy. \u00dcldiselt ei pruugi see tugevalt m\u00f5jutada, kuidas liiklus vastu v\u00f5etakse ja edastatakse, kuid alati on kasulik teada v\u00f5imalikke n\u00fcansse ja omadusi, mis on \"kapoti all\".<\/p>\n<h3>Liikluse marsruutimine<\/h3>\n<p>\nMille alusel saab otsustada, kuhu suunata liiklus teatud teenusesse? T\u00fc\u00fcpiliselt on selleks host ja path, kuid v\u00f5ivad olla ka t\u00e4iendavad v\u00f5imalused.<\/p>\n<h3>Nimeala klastris<\/h3>\n<p>\nNimeala (namespace) \u2014 v\u00f5imalus loogiliselt jaotada ressursse Kuberneteses (n\u00e4iteks stseeni, tootmise jne j\u00e4rgi). On Ingress-kontrollereid, mida tuleb igasse nimealasse eraldi installeerida (ja siis suudavad nad liiklust suunata <i>seda<\/i> selles ruumis pod'ides). On ka selliseid (ja nende selge enamus), mis t\u00f6\u00f6tavad globaalselt kogu klastris \u2014 neisse suunatakse liiklus igasse klastripodi, s\u00f5ltumata nimeraamidest.<\/p>\n<h3>Proovid upstream'ide jaoks<\/h3>\n<p>\nKuidas tagatakse liikluse suunamine tervetesse rakenduste, teenuste eksemplaridesse? On variante aktiivsete ja passiivsete kontrollidega, korduvate katsetega (retries), circuit breakeri <i>(rohkem neist vt n\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">artikkel Istio'st<\/a><\/noindex>)<\/i>, kohandatud olekute kontrollide (custom health checks) jne. See on v\u00e4ga oluline parameeter, kui teie n\u00f5udmised k\u00e4ttesaadavuse ja katkestustega v\u00e4lja langemise vajaduste osas on k\u00f5rged.<\/p>\n<h3>Tasakaalustamisalgoritmid<\/h3>\n<p>\nSiin on mitmeid variante: alates traditsioonilisest <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Round-robin_DNS\">round-robin<\/a><\/noindex> kuni eksootiliseni nagu <noindex><a rel=\"nofollow\" href=\"http:\/\/www.loadbalancer.org\/blog\/load-balancing-windows-terminal-server-haproxy-and-rdp-cookies\/\">rdp-cookie<\/a><\/noindex>, samuti eraldi v\u00f5imalused nagu <noindex><a rel=\"nofollow\" href=\"https:\/\/access.redhat.com\/solutions\/900933\">sticky sessions<\/a><\/noindex>.<\/p>\n<h3>Ahnikeerimine<\/h3>\n<p>\nMilliseid autoriseerimise skeeme toetab kontroller? Basic, digest, oauth, external-auth \u2014 ma arvan, et need valikud peaksid olema tuttavad. See on oluline kriteerium, kui kasutatakse palju kontuure arendajatele (ja\/v\u00f5i lihtsalt suletud), millele p\u00e4\u00e4seb ligi l\u00e4bi Ingressi. <\/p>\n<h3>Liikluse jaotamine<\/h3>\n<p>\nKas kontroller toetab selliseid sageli kasutatavaid mehhanisme liikluse jaotamiseks nagu kanaris\u00fcsteemid (canary), A\/B-testimine, liikluse peegeldamine (mirroring\/shadowing)? See on t\u00f5eliselt probleemne teema rakenduste jaoks, mis vajavad delikaatset ja t\u00e4pset liikluse juhtimist tootetestimise, tootmisvigade silumise (v\u00f5i minimaalsete kadudega), liikluse anal\u00fc\u00fcsi jne jaoks.<\/p>\n<h3>Tasuline tellimus<\/h3>\n<p>\nKas on olemas tasuline versioon kontrollerist, millel on laiendatud funktsionaalsus ja\/v\u00f5i tehniline tugi?<\/p>\n<h3>Graafiline liides (Web UI)<\/h3>\n<p>\nKas kontrolleri konfiguratsiooni haldamiseks on olemas m\u00f5ni graafiline liides? Peamiselt mugavuse huvides ja\/v\u00f5i neile, kes peavad tegema muudatusi Ingress'i konfiguratsioonis, kuid on ebamugav t\u00f6\u00f6tada \"toorete\" \u0161abloonidega. See v\u00f5ib osutuda kasulikuks juhul, kui arendajad soovivad reaalajas katsetada liiklust.<\/p>\n<h3>JWT-valiidatsioon<\/h3>\n<p>\nSisseehitatud JSON web-tokenite kontrollimise v\u00f5imalus kasutaja autentimiseks ja valideerimiseks l\u00f5pprakenduses.<\/p>\n<h3>Konfiguratsiooni kohandamise v\u00f5imalused<\/h3>\n<p>\n\u0160abloonide laiendatavus, et v\u00f5imaldada standardsete konfiguratsioonimudelite kohandamist oma direktiivide, lippude jne lisamise mehhanismide kaudu.<\/p>\n<h3>P\u00f5himehhanismid DDOS-i kaitseks<\/h3>\n<p>\nLihtsad kiiruspiirangute algoritmid v\u00f5i keerukamad versioonid liikluse filtreerimiseks aadresside, lubatud loendite, riikide jne alusel.<\/p>\n<h3>K\u00fcsimuste j\u00e4lgimine<\/h3>\n<p>\nMugavused j\u00e4lgimiseks, j\u00e4lgimiseks ja p\u00e4ringute t\u00f5rkeotsinguks Ingress'ide ja konkreetsete teenuste\/pod'ide vahel, ja ideaalis \u2014 ka teenuste\/pod'ide vahel samuti.<\/p>\n<h3>WAF<\/h3>\n<p>\nTugi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Web_application_firewall\">rakendusliku tulem\u00fc\u00fcri<\/a><\/noindex>.<\/p>\n<h2>Ingress'i kontrollerid<\/h2>\n<p>\nKontrollerite nimekiri on koostatud <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/#additional-controllers\">Kubernetes'e ametlikust dokumentatsioonist<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/16bxRgpO1H_Bn-5xVZ1WrR_I-0A-GOI6egmhvqqLMOmg\/edit\">sellest tabelist<\/a><\/noindex>. M\u00f5ned neist oleme erandeid teinud spetsiifilisuse v\u00f5i v\u00e4ikese leviku (arengufaasi) t\u00f5ttu. J\u00e4relej\u00e4\u00e4nud on allpool arutatud. Alustame \u00fcldise \u00fclevaate kirjeldusest ja j\u00e4tkame koondtabeliga.<\/p>\n<h3>Ingress Kubernetes'elt<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/ingress-nginx\">github.com\/kubernetes\/ingress-nginx<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>See on ametlik kontroller Kubernetes'e jaoks, mille on v\u00e4lja t\u00f6\u00f6tanud kogukond. Nimi annab selgelt m\u00f5ista, et see p\u00f5hineb nginx'il ning on varustatud erinevate Lua-pluginatega, mida kasutatakse t\u00e4iendavate v\u00f5imaluste rakendamiseks. T\u00e4nu nginx'i populaarsusele ja minimaalsetele muudatustele selle kasutamisel kontrollerina on see variant keskmise inseneri (web-kogemusega) jaoks k\u00f5ige lihtsam ja arusaadavam konfigureerida.<\/p>\n<h3>Ingress NGINX Inc'ilt<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\">github.com\/nginxinc\/kubernetes-ingress<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>Ametlik toode nginx'i arendajatelt. Omab tasulist versiooni, mis p\u00f5hineb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/products\/nginx\/\">NGINX Plus<\/a><\/noindex>Peamine idee on k\u00f5rge stabiilsuse tase, pidev tagasip\u00f6\u00f6ratavus, k\u00f5rvaliste moodulite puudumine ja v\u00e4idetav suurenenud kiirus (v\u00f5rreldes ametliku kontrolleriga), mis on saavutatud Lua loobumise t\u00f5ttu. <\/p>\n<p>Tasuta versioon on oluliselt k\u00e4rbitud, sealhulgas isegi ametliku kontrolleriga v\u00f5rreldes (kuna puuduvad j\u00e4lle need samad Lua-moodulid). Tasuline versioon omab samas piisavalt laia lisafunktsionaalsust: reaalajas m\u00f5\u00f5dikud, JWT-aktiveerimine, aktiivsed health check'id ja muud. Oluline eelis NGINX Ingress'i ees on t\u00e4ielik TCP\/UDP liikluse tugi (ka community versioonis!). Miinus - <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\/issues\/464\">puuduvad<\/a><\/noindex> funktsioonid liikluse jagamiseks, mis, muide, on \"arendajate jaoks maksimaalse prioriteediga\", kuid n\u00f5uab selle elluviimiseks aega.<\/p>\n<h3>Kong Ingress<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Kong\/kubernetes-ingress-controller\">github.com\/Kong\/kubernetes-ingress-controller<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>Toode, mida arendab ettev\u00f5te Kong Inc. kahes versioonis: kommerts- ja tasuta. See p\u00f5hineb nginx'il, mille v\u00f5imalusi on laiendatud suure hulga Lua moodulitega.<\/p>\n<p>Esialgu oli see suunatud API p\u00e4ringute t\u00f6\u00f6tlemiseks ja marsruutimiseks, st kui API Gateway, kuid hetkel on sellest saanud t\u00e4ie\u00f5iguslik Ingress-kontroller. Peamised eelised: mitmed lisamoodulid (ka kolmandate osapoolte arendajatelt), mida on lihtne installida ja konfigureerida ning millega saab realiseerida laia spektri t\u00e4iendavaid v\u00f5imalusi. Samas pakuvad sisseehitatud funktsioonid juba palju v\u00f5imalusi. T\u00f6\u00f6 konfiguratsioon toimub CRD-resursside kaudu.<\/p>\n<p>Toote oluline omadus - t\u00f6\u00f6tamine \u00fches kontuuris (asemel cross-namespaced) on vaieldav teema: kellelegi v\u00f5ib see tunduda puudusena (kuna tuleb igas kontuuris luua \u00fcksused), kuid kellelegi on see omadus (b<i>ilotka<\/i>suurem isolatsioonitase, kuna kui \u00fcks kontroller on rikutud, siis probleem on piiratud vaid \u00fche kontuuriga).<\/p>\n<h3>Traefik<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/containous\/traefik\">github.com\/containous\/traefik<\/a><\/noindex><\/i><br \/>\n<i>Litsents: MIT<\/i><\/p>\n<p>Proksi, mis loodi algselt p\u00e4ringute suunamiseks mikroteenuste ja nende d\u00fcnaamilise keskkonna jaoks. Seet\u00f5ttu on ka palju kasulikke funktsioone: konfiguratsiooni uuendamine t\u00e4ielikult ilma taask\u00e4ivitamiseta, suure hulga tasakaalustusmeetodite toetamine, veebi kasutajaliides, m\u00f5\u00f5dikute edastamine, erinevate protokollide tugi, REST API, kanariliselt v\u00e4ljaanded ja palju muud. Ka meeldiv omadus on Let's Encrypt sertifikaatide tugi v\u00e4ljalaskehetkel. Puuduseks on see, et k\u00f5rge k\u00e4ttesaadavuse (HA) korral peab kontroller paigaldama ja \u00fchendama oma KV-lao.<\/p>\n<h3>Edasi l\u00e4ks kliendi p\u00e4ring HAProxy-sse, mis lahendas j\u00e4rgmised \u00fclesanded:<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jcmoraisjr\/haproxy-ingress\">github.com\/jcmoraisjr\/haproxy-ingress<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>HAProxy on juba ammu tuntud kui proksi ja liikluse tasakaalustaja. Kubernetes'i klastris pakutakse koos temaga \"pehmet\" konfiguratsiooni uuendamist (ilma liikluse kadumiseta), teenuste avastamist DNS-i p\u00f5hjal, d\u00fcnaamilist konfiguratsiooni API abil. Atraktiivne v\u00f5ib olla konfiguratsioonimallide t\u00e4ielik kohandamine CM'i asendamisega, samuti v\u00f5imalused kasutada seal Sprigi teegi funktsioone. \u00dcldiselt keskendub lahenduse peamine t\u00e4helepanu kiirus, optimeeritus ja ressursikasutuse efektiivsus. Kontrolleri eelis on rekordarv erinevaid tasakaalustusmeetodeid.<\/p>\n<h3>Voyager<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/appscode\/voyager\">github.com\/appscode\/voyager<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>HAproxy'le p\u00f5hinev kontroller, mis positsioneeritakse universaalse lahendusena, pakkudes laia valikut v\u00f5imalusi paljude pakkujate seas. Pakub v\u00f5imalust liikluse tasakaalustamiseks L7 ja L4 tasemel ning TCP L4-liikluse tasakaalustamist v\u00f5ib pidada lahenduse \u00fcheks p\u00f5hifunktsiooniks.<\/p>\n<h3>Contour<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/heptio\/contour\">github.com\/heptio\/contour<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>Selle lahenduse aluseks ei ole mitte ainult Envoy: see on v\u00e4lja t\u00f6\u00f6tatud <i>koosluses<\/i> selle populaarse proksi autoritega. Oluline omadus on Ingress'i ressursside haldamise eristamine IngressRoute CRD-resursside kaudu. Organisatsioonide jaoks, kus paljud arendusmeeskonnad kasutavad \u00fchte klastrit, aitab see maksimaalselt kaitsta liiklust naaberpiirides ja kaitsta neid vigu Ingress'i ressursside muutmisel.<\/p>\n<p>Pakutakse ka laia valikut tasakaalustusmeetodeid (kaasatakse p\u00e4ringute peegeldamine, automaatsed kordused, p\u00e4ringute kiiruspiirang ja palju muud), detailne liikluse ja t\u00f5rgete j\u00e4lgimine. V\u00f5ib-olla on kellegi jaoks m\u00e4rkimisv\u00e4\u00e4rseks puuduseks sticky sessions'i toe puudumine (kuigi see t\u00f6\u00f6tab <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/heptio\/contour\/issues\/361\">on juba k\u00e4imas<\/a><\/noindex>).<\/p>\n<h3>Istio Ingress<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/tasks\/traffic-management\/ingress\/\">istio.io\/docs\/tasks\/traffic-management\/ingress<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>Kohandatud teenuste mesh-lahendus, mis ei ole mitte ainult sissep\u00e4\u00e4sukontroller, mis haldab v\u00e4ljastpoolt tulevat liiklust, vaid kontrollib ka kogu liiklust klastris. 'Kapoti all' kasutatakse iga teenuse jaoks sidecar-proksi, milleks on Envoy. Essentsilt on see suur kombain, mis 'oskab k\u00f5ike', ja selle p\u00f5hieesm\u00e4rk on maksimaalne hallatavus, laiendatavus, turvalisus ja l\u00e4bipaistvus. Selle abil saate detailselt seadistada liikluse marsruutimist, juurdep\u00e4\u00e4su autoriseerimist teenuste vahel, koormuse jaotamist, j\u00e4lgimist, kanarrelease ja palju muud. Lisainfot Istio kohta loe sarjast artikleid '<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">Tagasi mikroteenustele koos Istio<\/a><\/noindex>\u00bb.<\/p>\n<h3>Ambassador<\/h3>\n<p>\n<i>Veebisait: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/datawire\/ambassador\">github.com\/datawire\/ambassador<\/a><\/noindex><\/i><br \/>\n<i>Litsents: Apache 2.0<\/i><\/p>\n<p>Veel \u00fcks lahendus, mis p\u00f5hineb Envoy. Saadaval on tasuta ja kommertsversioon. Positiivne, et see on 't\u00e4ielikult Kubernetesele kohandatud', mis kinnitab sellega seonduvaid eeliseid (tihe integreeritus K8s klastrite meetodite ja entiteetidega).<\/p>\n<h2>V\u00f5rdlustabel<\/h2>\n<p>\nNii et artikli tipuks on see suur tabel:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ss\/wh\/lj\/sswhljo-rjkms7nadtyewqkxrdi.png\"><img decoding=\"async\" alt=\"Kubernetes&#039; Ingress-kontrollerite \u00fclevaade ja v\u00f5rdlus\" src=\"\/wp-content\/uploads\/2019\/04\/3a6c552df6b8b7b6a88517046fa7a275.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>See on klikatav, et saaksite selgemalt vaadata, ja saadaval ka vormingus <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1xjff2AMS6QXSdh8E8ay_uNMoUa2OLIanCallvkDvAy0\/edit#gid=0\">Google Sheets<\/a><\/noindex>.<\/p>\n<h2>Kokkuv\u00f5tteks<\/h2>\n<p>\nArtikli eesm\u00e4rk on anda p\u00f5hjalikum arusaam (kuigi mitte ammendav!), milline valik teha just teie konkreetses olukorras. Nagu tavaliselt, on iga kontrolleril omad plusse ja miinuseid...<\/p>\n<p>Kubernetes'i klassikaline Ingress on hea oma k\u00e4ttesaadavuse ja usaldusv\u00e4\u00e4rsuse poolest, samuti piisava hulga funktsioonide poolest \u2014 see peaks enamasti piisama. Kuid kui on k\u00f5rgendatud n\u00f5uded stabiilsusele, funktsioonide tasemele ja arengule, tasub t\u00e4helepanu p\u00f6\u00f6rata NGINX Plus Ingress'ile ja tasulisele tellimusele. Kongil on rikkalik pluginakogum (ja vastavalt seel\u00e4bi pakutavad v\u00f5imalused), ning tasulisest versioonist leiab neid isegi rohkem. Sellel on laiad v\u00f5imalused API Gateway'na t\u00f6\u00f6tamiseks, d\u00fcnaamiliseks konfigureerimiseks CRD-resursside p\u00f5hjal ning ka Kubernetes'i p\u00f5hiteenuste jaoks.<\/p>\n<p>Kui teil on suuremad n\u00f5uded koormuse tasakaalustamise ja autentimismeetodite osas, uurige Traefiki ja HAProxy. Need on avatud l\u00e4htekoodiga projektid, mis on aastate jooksul t\u00f5estatud, v\u00e4ga stabiilsed ja aktiivselt arenevad. Contour ilmus juba paar aastat tagasi, kuid n\u00e4eb endiselt liiga noor v\u00e4lja ja sellel on vaid p\u00f5hifunktsioonid, mis on lisatud Envoy'i peale. Kui on n\u00f5uded WAF'i olemasolu \/ integreerimise osas rakenduse ette, tasub t\u00e4helepanu p\u00f6\u00f6rata ka Kubernetes'i v\u00f5i HAProxy Ingress'ile.<\/p>\n<p>K\u00f5ige rikkamad funktsioonide poolest on tooted, mis p\u00f5hinevad Envoy'l, eriti Istio. See esindab komplekset lahendust, mis \"suudab k\u00f5ike\", mis t\u00e4hendab samuti oluliselt k\u00f5rgemat \u00f5ppimisk\u00f5verat konfiguratsiooni \/ k\u00e4ivitamise \/ haldamise osas v\u00f5rreldes teiste lahendustega.<\/p>\n<p>Me valisime standardsete kontrolleritena Ingress'i Kubernetes'ilt, mis katab 80\u201390% vajadustest. See on t\u00e4iesti usaldusv\u00e4\u00e4rne, lihtne konfigureerida ja laiendada. \u00dcldiselt peaks see sobima enamiku klastrite \/ rakenduste jaoks, v\u00e4lja arvatud juhul, kui on spetsiifilisi n\u00f5udmisi. Samadest universaalsetest ja suhteliselt lihtsatest toodetest v\u00f5ib soovitada Traefiki ja HAProxy.<\/p>\n<h2>P.S.<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \"Tagasi mikroteenustele koos Istio\": <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">osa 1 (tutvumine p\u00f5hifunktsioonidega)<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">osa 2 (marsruutimine, liikluse haldamine)<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/443668\/\">osa 3 (autentimine ja autoriseerimine)<\/a><\/noindex>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/445596\/\">Kubernetes'i n\u00e4pun\u00e4ited ja nipid: isikup\u00e4rastatud vealehed NGINX Ingress'is<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/427745\/\">Kubernetes'i n\u00e4pun\u00e4ited ja nipid: juurdep\u00e4\u00e4s dev-platvormidele<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447180\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u0443 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0431\u0438\u0437\u043d\u0435\u0441 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438. \u041f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043a \u0432\u044b\u0431\u043e\u0440\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e Ingress-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043a\u043e\u0438\u0445 \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0434\u043b\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 Ingress \u0434\u043b\u044f Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0434\u043b\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kubernetes'e Ingress'i kontrollerite \u00fclevaade ja v\u00f5rdlus | ProHoster","description":"Kubernetes'i klastri k\u00e4ivitamisel.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 Ingress \u0434\u043b\u044f Kubernetes | ProHoster","og:description":"\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0434\u043b\u044f.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:53+00:00","article:modified_time":"2019-10-31T18:39:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31173","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:53:04","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:21:32","updated":"2026-01-21 04:53:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=31173"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31173\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/23140"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=31173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=31173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=31173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}