{"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\/hr\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","title":{"rendered":"Pregled i usporedba Ingress kontrolera za Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pregled i usporedba Ingress kontrolera za Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/3e6d3882a8f5a96a257fab4daaa230f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrilikom pokretanja Kubernetes klastera za specifi\u010dnu aplikaciju, va\u017eno je razumjeti koje zahtjeve postavlja ta aplikacija, poslovanje i programeri. Kada imate te informacije, mo\u017eete pristupiti dono\u0161enju arhitektonske odluke, uklju\u010duju\u0107i izbor specifi\u010dnog Ingress kontrolera, kojih ve\u0107 danas ima mnogo. Da biste stekli osnovno razumijevanje dostupnih opcija bez potrebe za prou\u010davanjem mno\u0161tva \u010dlanaka\/dokumentacije i sli\u010dno, pripremili smo ovaj pregled, uklju\u010duju\u0107i glavne (production ready) Ingress kontrolere.<\/p>\n<p>Nadamo se da \u0107e ovaj pregled pomo\u0107i kolegama u odabiru arhitektonske odluke \u2014 barem \u0107e biti polazi\u0161na to\u010dka za dobivanje detaljnijih informacija i prakti\u010dnih eksperimenata. U prethodnom smo istra\u017eili sli\u010dne materijale na mre\u017ei i, iznena\u0111uju\u0107e, nismo prona\u0161li nijedan ozbiljno kompletan, a \u0161to je jo\u0161 va\u017enije \u2014 strukturiran \u2014 pregled. Dakle, popunimo ovu prazninu!<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kriteriji<\/h2>\n<p>\nDa bismo mogli provoditi usporedbe i dobiti bilo kakav korisni rezultat, potrebno je razumjeti ne samo predmetnu oblast, ve\u0107 i imati konkretan popis kriterija koji \u0107e odrediti smjer istra\u017eivanja. Ne pretendiraju\u0107i na analizu svih mogu\u0107ih slu\u010dajeva primjene Ingress\/Kubernetes, nastojali smo istaknuti naj\u010de\u0161\u0107e zahtjeve za kontrolere \u2014 budite spremni da \u0107e cijelu svoju specifi\u010dnost i detalje u svakom slu\u010daju trebati prou\u010davati zasebno.<\/p>\n<p>Ali \u0107u zapo\u010deti s karakteristikama koje su postale toliko uobi\u010dajene da su implementirane u svim rje\u0161enjima i ne razmatraju se:<\/p>\n<ul>\n<li> dinami\u010dko otkrivanje servisa (service discovery);<\/li>\n<li> SSL terminacija;<\/li>\n<li> rad s websocket-ima.<\/li>\n<\/ul>\n<p>\nSada \u2014 o to\u010dkama usporedbe:<\/p>\n<h3>Podr\u017eani protokoli<\/h3>\n<p>\nJedan od klju\u010dnih kriterija za odabir. Va\u0161 softver mo\u017ee raditi ne samo putem standardnog HTTP protokola ili zahtevati rad s vi\u0161e protokola u isto vrijeme. Ako je va\u0161 slu\u010daj nestandardan, obavezno uzmite u obzir ovaj faktor kako ne biste kasnije morali ponovo konfigurirati klaster. Lista podr\u017eanih protokola varira me\u0111u svim kontrolerima.<\/p>\n<h3>Softver u osnovi<\/h3>\n<p>\nPostoji nekoliko opcija aplikacija na kojima se temelji kontroler. Popularni su nginx, traefik, haproxy, envoy. U op\u0107em slu\u010daju, to mo\u017eda ne\u0107e previ\u0161e utjecati na to kako se prihva\u0107a i prenosi promet, ali uvijek je korisno znati potencijalne nijanse i karakteristike onoga \u0161to je 'ispod haube'.<\/p>\n<h3>Usmjeravanje prometa<\/h3>\n<p>\nNa temelju \u010dega se mo\u017ee odlu\u010diti o smjeru prometa prema odre\u0111enoj usluzi? Obi\u010dno su to host i path, ali postoje i dodatne mogu\u0107nosti.<\/p>\n<h3>Prostor imena unutar klastera<\/h3>\n<p>\nProstor imena (namespace) je mogu\u0107nost logi\u010dkog razdvajanja resursa u Kubernetesu (na primjer, na stage, production itd.). Postoje Ingress kontroleri koji se moraju instalirati odvojeno u svaki namespace (tada mo\u017ee usmjeravati promet <i>samo<\/i> u podovima ovog prostora). A postoje i takvi (i njihovo je o\u010dito ve\u0107ina) koji rade globalno na cijeli klaster \u2014 u njih se promet usmjerava u bilo koji pod klastera, neovisno od prostora imena.<\/p>\n<h3>Uzorci za upstream-ove<\/h3>\n<p>\nNa koji na\u010din se osigurava usmjeravanje prometa prema zdravim instancama aplikacije, uslugama? Postoje opcije s aktivnim i pasivnim provjerama, ponovljenim poku\u0161ajima (retries), circuit breakers <i>(vi\u0161e o njima, na primjer, u <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">\u010dlanku o Istio<\/a><\/noindex>)<\/i>, vlastitim implementacijama provjera stanja (custom health checks) itd. Izuzetno va\u017ean parametar ako imate visoke zahtjeve za dostupnost i pravodobno isklju\u010divanje neuspjelih usluga iz balansiranja.<\/p>\n<h3>Algoritmi balansiranja<\/h3>\n<p>\nOvdje postoji mno\u0161tvo opcija: od tradicionalnih <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Round-robin_DNS\">round-robin<\/a><\/noindex> do egzoti\u010dnih poput <noindex><a rel=\"nofollow\" href=\"http:\/\/www.loadbalancer.org\/blog\/load-balancing-windows-terminal-server-haproxy-and-rdp-cookies\/\">rdp-cookie<\/a><\/noindex>, kao i posebne mogu\u0107nosti poput <noindex><a rel=\"nofollow\" href=\"https:\/\/access.redhat.com\/solutions\/900933\">sticky sessions<\/a><\/noindex>.<\/p>\n<h3>Autentifikacija<\/h3>\n<p>\nKoje sheme autorizacije podr\u017eava kontroler? Basic, digest, oauth, external-auth \u2014 mislim da bi te opcije trebale biti poznate. To je va\u017ean kriterij ako se koriste mnoge okoline za programere (i\/ili jednostavno zatvorene), \u010diji je pristup omogu\u0107\u0435\u043d putem Ingress-a. <\/p>\n<h3>Distribucija prometa<\/h3>\n<p>\nPodr\u017eava li kontroler \u010desto kori\u0161tene mehanizme za distribuciju prometa, kao \u0161to su kanarinska izdanja (canary), A\/B testiranje, ogledanje prometa (mirroring\/shadowing)? Ovo je doista bolna tema za aplikacije koje zahtijevaju pa\u017eljivo i precizno upravljanje prometom za u\u010dinkovito testiranje, otklanjanje gre\u0161aka u proizvodima bez utjecaja (ili s minimalnim gubicima), analizu prometa itd.<\/p>\n<h3>Pla\u0107ena pretplata<\/h3>\n<p>\nPostoji li pla\u0107ena verzija kontrolera s pro\u0161irenim funkcionalnostima i\/ili tehni\u010dkom podr\u0161kom?<\/p>\n<h3>Grafi\u010dko su\u010delje (Web UI)<\/h3>\n<p>\nIma li kakvo grafi\u010dko su\u010delje za upravljanje konfiguracijom kontrolera? Uglavnom za \"ugodnost\" i\/ili za one kojima je potrebno unositi neke promjene u konfiguraciju Ingress-a, jer rad s \"siroma\u0161nim\" predlo\u0161cima nije prakti\u010dan. Mo\u017ee biti korisno ako programeri \u017eele provoditi eksperimentiranje s prometom u hodu.<\/p>\n<h3>JWT-validacija<\/h3>\n<p>\nPrisutnost ugra\u0111ene provjere JSON web-tokena za autorizaciju i validaciju korisnika u krajnjoj aplikaciji.<\/p>\n<h3>Mogu\u0107nosti za prilagodbu konfiguracije<\/h3>\n<p>\nPro\u0161irivost predlo\u017eaka u smislu prisutnosti mehanizama koji omogu\u0107uju dodavanje vlastitih direktiva, zastavica itd. u standardne konfiguracijske predlo\u0161ke.<\/p>\n<h3>Osnovni mehanizmi za\u0161tite od DDoS-a<\/h3>\n<p>\nJednostavni algoritmi za ograni\u010davanje prometa ili slo\u017eenije opcije filtriranja prometa na temelju adresa, bijelih lista, zemalja itd.<\/p>\n<h3>Pra\u0107enje zahtjeva<\/h3>\n<p>\nMogu\u0107nosti nadgledanja, pra\u0107enja i debagiranja zahtjeva od Ingress-a do konkretnih servisa\/podova, a idealno \u2014 i izme\u0111u servisa\/podova tako\u0111er.<\/p>\n<h3>WAF<\/h3>\n<p>\nPodr\u0161ka <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Web_application_firewall\">aplikativnog firewalla<\/a><\/noindex>.<\/p>\n<h2>Ingress kontroleri<\/h2>\n<p>\nPopis kontrolera sastavljen je na temelju <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/#additional-controllers\">slu\u017ebenoj dokumentaciji Kubernetes<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/16bxRgpO1H_Bn-5xVZ1WrR_I-0A-GOI6egmhvqqLMOmg\/edit\">ove tablice<\/a><\/noindex>. Neke od njih smo isklju\u010dili iz pregleda zbog specifi\u010dnosti ili male rasprostranjenosti (rano u razvoju). Preostali su razmatrani u nastavku. Po\u010det \u0107emo s op\u0107im opisom rje\u0161enja i nastaviti sa sa\u017eetom tablicom.<\/p>\n<h3>Ingress od Kubernetes-a<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/ingress-nginx\">github.com\/kubernetes\/ingress-nginx<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>To je slu\u017ebeni kontroler za Kubernetes koji razvija zajednica. Jasno iz imena, temelji se na nginx-u i dodat je raznim skupom Lua dodataka koji se koriste za implementaciju dodatnih mogu\u0107nosti. Zbog popularnosti samog nginx-a i minimalnih modifikacija na njemu kada se koristi kao kontroler, ova opcija mo\u017ee biti najjednostavnija i najjasnija za konfiguraciju prosje\u010dnom in\u017eenjeru (s iskustvom u web-u).<\/p>\n<h3>Ingress od NGINX Inc<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\">github.com\/nginxinc\/kubernetes-ingress<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>Slu\u017ebeni proizvod \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 nginx-a. Ima pla\u0107enu verziju koja se temelji na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/products\/nginx\/\">NGINX Plus<\/a><\/noindex>Osnovna ideja je visoka razina stabilnosti, stalna unazadna kompatibilnost, odsutnost bilo kakvih vanjskih modula i navedena pove\u0107ana brzina (u usporedbi s slu\u017ebenim kontrolerom), postignuta zahvaljuju\u0107i odustajanju od Lua. <\/p>\n<p>Besplatna verzija je zna\u010dajno ograni\u010dena, uklju\u010duju\u0107i \u010dak i u usporedbi sa slu\u017ebenim kontrolerom (zbog nedostatka Lua-modula). Pla\u0107ena verzija posjeduje \u0161iroku dodatnu funkcionalnost: metri\u010dki podaci u stvarnom vremenu, JWT validacija, aktivni health check-ovi i drugo. Va\u017ena prednost u odnosu na NGINX Ingress je potpuna podr\u0161ka za TCP\/UDP promet (pa \u010dak i u community verziji!). Mane su <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\/issues\/464\">nedostatak<\/a><\/noindex> funkcionalnosti za raspodjelu prometa, \u0161to, me\u0111utim, \"ima maksimalni prioritet za programere\", ali zahtijeva vrijeme za implementaciju.<\/p>\n<h3>Kong Ingress<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Kong\/kubernetes-ingress-controller\">github.com\/Kong\/kubernetes-ingress-controller<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>Proizvod koji razvija tvrtka Kong Inc. dolazi u dva varijante: komercijalna i besplatna. Temeljen je na nginxu, \u010dije su mogu\u0107nosti pro\u0161irene velikim brojem modula na Lua.<\/p>\n<p>Izvorno je bio usmjeren na obradu i usmjeravanje API zahtjeva, tj. kao API Gateway, me\u0111utim, trenutno je postao punopravni Ingress kontroler. Glavne prednosti: mno\u0161tvo dodatnih modula (uklju\u010duju\u0107i i one od tre\u0107ih strana), koji se lako instaliraju i konfiguriraju, a s kojima se ostvaruje \u0161irok spektar dodatnih mogu\u0107nosti. Me\u0111utim, ugra\u0111ene funkcije ve\u0107 nude mnoge opcije. Konfiguracija rada obavlja se pomo\u0107u CRD resursa.<\/p>\n<p>Va\u017ena zna\u010dajka proizvoda je rad unutar jednog kontura (umjesto cross-namespaced) koja je kontroverzna tema: nekima \u0107e se \u010diniti nedostatkom (potrebno je stvarati entitete za svaki kontur), dok \u0107e drugima to biti prednost (ve\u0107a razina izolacije, jer ako jedan kontroler ne radi, problem je ograni\u010den samo na jedan kontur).<i>o<\/i>github.com\/containous\/traefik<\/p>\n<h3>Traefik<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/containous\/traefik\">Ve\u0107i nivo izolacije, jer ako jedan kontroler ne radi, problem je ograni\u010den samo na jedan kontur.<\/a><\/noindex><\/i><br \/>\n<i>Licenca: MIT<\/i><\/p>\n<p>Proxy koji je izvorno stvoren za rad s usmjeravanjem zahtjeva za mikroservise i njihovo dinami\u010dno okru\u017eenje. Odatle i mnoge korisne funkcionalnosti: a\u017euriranje konfiguracije bez ikakvih restarta, podr\u0161ka za veliki broj metoda balansiranja, web su\u010delje, proslje\u0111ivanje metrika, podr\u0161ka za razli\u010dite protokole, REST API, kanarinci i mnogo vi\u0161e. Prijatna pogodnost je tako\u0111er podr\u0161ka za Let's Encrypt certifikate iz kutije. Nedostatak \u2014 za organizaciju visoke dostupnosti (HA) od kontrolera \u0107e biti potrebno instalirati i povezati vlastito KV-spremi\u0161te.<\/p>\n<h3>Dalje, klijentski zahtjev se slao u HAProxy, koji je rje\u0161avao sljede\u0107e zadatke:<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jcmoraisjr\/haproxy-ingress\">github.com\/jcmoraisjr\/haproxy-ingress<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>HAProxy je dugo poznat kao proxy i balansirnik prometa. U okviru klastera Kubernetes, nudi se \"mekano\" a\u017euriranje konfiguracije (bez gubitka prometa), otkrivanje servisa temeljem DNS-a, dinami\u010dka konfiguracija putem API-ja. Privla\u010dna mo\u017ee biti potpuna prilagodba predlo\u0161ka konfiguracija putem zamjene CM-a, kao i mogu\u0107nosti kori\u0161tenja funkcija biblioteke Sprig. U cjelini, glavni naglasak rje\u0161enja stavlja se na visoku brzinu rada, optimiziranost i efikasnost u potro\u0161nji resursa. Prednost kontrolera \u2014 podr\u0161ka rekordnom broju razli\u010ditih na\u010dina balansiranja.<\/p>\n<h3>Voyager<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/appscode\/voyager\">github.com\/appscode\/voyager<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>Kontroler zasnovan na HAproxy, koji se pozicionira kao univerzalno re\u0161enje koje podr\u017eava \u0161iroke mogu\u0107nosti na velikom broju pru\u017eatelja. Nudi mogu\u0107nost balansiranja prometa na L7 i L4, a balansiranje TCP L4 prometa mo\u017ee se nazvati jednom od klju\u010dnih zna\u010dajki re\u0161enja.<\/p>\n<h3>Contour<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/heptio\/contour\">github.com\/heptio\/contour<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>Osnova ovog re\u0161enja nije samo Envoy: ono je razvijeno <i>zajedno<\/i> s autorima ovog popularnog proxyja. Va\u017ena zna\u010dajka je mogu\u0107nost razdvajanja upravljanja resursima Ingress pomo\u0107u CRD resursa IngressRoute. Za organizacije s brojnim razvojnim timovima koji koriste jedan klaster, to poma\u017ee maksimizirati sigurnost rada s prometom u susjednim okru\u017eenjima i za\u0161tititi ih od gre\u0161aka prilikom izmjene Ingress resursa.<\/p>\n<p>Tako\u0111er se nudi pro\u0161ireni set metoda balansiranja (tu su i mirroriranje zahtjeva, automatski ponovni poku\u0161aji, ograni\u010denje prema rate-u zahtjeva i mnogo drugo), detaljno pra\u0107enje toka prometa i kvarova. Mogu\u0107e je da \u0107e nekima biti zna\u010dajan nedostatak odsutnost podr\u0161ke za sticky sessions (iako rad) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/heptio\/contour\/issues\/361\">ve\u0107 odvijaju<\/a><\/noindex>).<\/p>\n<h3>Istio Ingress<\/h3>\n<p>\n<i>Web stranica: <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>Licenca: Apache 2.0<\/i><\/p>\n<p>Kompleksno rje\u0161enje service mesh koje nije samo Ingress kontroler, koji upravlja dolaznim prometom izvan, ve\u0107 i kontrolira sav promet unutar klastera. 'Ispod haube', kao sidecar-proxy za svaku uslugu, koristi se Envoy. U su\u0161tini, to je veliki kombajn koji 'mo\u017ee sve', a glavna ideja je maksimalna upravljivost, pro\u0161irivost, sigurnost i transparentnost. Pomo\u0107u njega mo\u017eete detaljno konfigurirati usmjeravanje prometa, autorizaciju pristupa izme\u0111u usluga, ravnote\u017eu, pra\u0107enje, kanarinske izdanja i jo\u0161 mnogo toga. Vi\u0161e o Istio-u pro\u010ditajte u seriji \u010dlanaka '<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">Povratak na mikroservise s Istio<\/a><\/noindex>\u00bb.<\/p>\n<h3>Ambassador<\/h3>\n<p>\n<i>Web stranica: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/datawire\/ambassador\">github.com\/datawire\/ambassador<\/a><\/noindex><\/i><br \/>\n<i>Licenca: Apache 2.0<\/i><\/p>\n<p>Jo\u0161 jedno rje\u0161enje temeljeno na Envoy. Ima besplatnu i komercijalnu verziju. Pozicionira se kao 'potpuno izvorno za Kubernetes', \u0161to donosi odgovaraju\u0107e prednosti (uska integracija s metodama i entitetima klastera K8s).<\/p>\n<h2>Usporedna tabela<\/h2>\n<p>\nDakle, kulminacija \u010dlanka \u2014 ova ogromna tabela:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ss\/wh\/lj\/sswhljo-rjkms7nadtyewqkxrdi.png\"><img decoding=\"async\" alt=\"Pregled i usporedba Ingress kontrolera za Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/3a6c552df6b8b7b6a88517046fa7a275.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Klikabilna je za mogu\u0107nost detaljnijeg pregleda, a tako\u0111er dostupna u formatu <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1xjff2AMS6QXSdh8E8ay_uNMoUa2OLIanCallvkDvAy0\/edit#gid=0\">Google Sheets<\/a><\/noindex>.<\/p>\n<h2>Sveukupno<\/h2>\n<p>\nCilj \u010dlanka je pru\u017eiti potpunije razumijevanje (iako nije iscrpno!) o tome koji izbor napraviti u va\u0161em konkretnom slu\u010daju. Kao \u0161to obi\u010dno biva, svaki kontroler ima svoje prednosti i nedostatke\u2026<\/p>\n<p>Klasik Ingress od Kubernetesa je dobar zbog svoje dostupnosti i provjerenosti, s dovoljno bogatim mogu\u0107nostima \u2014 u op\u0107enitom slu\u010daju, trebao bi biti 'vi\u0161e nego dovoljan'. Me\u0111utim, ako imate visoke zahtjeve za stabilnost, razinu funkcija i razvoj, trebate obratiti pa\u017enju na Ingress s NGINX Plus i pla\u0107enom pretplatom. Kong ima bogat skup dodataka (i, prema tome, mogu\u0107nosti koje oni pru\u017eaju), a u pla\u0107enoj verziji ih \u010dak ima i vi\u0161e. Ima \u0161iroke mogu\u0107nosti rada kao API Gateway, dinami\u010dko konfiguriranje na temelju CRD resursa, kao i osnovne usluge Kubernetesa.<\/p>\n<p>Za visoke zahtjeve u ravnote\u017ei i metodama autorizacije, obratite pa\u017enju na Traefik i HAProxy. To su Open Source projekti, provjereni godinama, vrlo stabilni i aktivno se razvijaju. Contour je ve\u0107 nekoliko godina na tr\u017ei\u0161tu, ali jo\u0161 uvijek izgleda premlado i ima samo osnovne mogu\u0107nosti dodane preko Envoy-a. Ako postoji zahtjev za prisutno\u0161\u0107u\/ugradnjom WAF-a ispred aplikacije, trebali biste obratiti pa\u017enju na isti Ingress od Kubernetesa ili HAProxy.<\/p>\n<p>Najbogatiji funkcijama su proizvodi temeljeni na Envoy-u, a posebno Istio. Predstavlja se kao sveobuhvatno rje\u0161enje koje 'mo\u017ee sve', \u0161to, me\u0111utim, zna\u010di i znatno vi\u0161i prag ulaska u konfiguraciju\/pokretanje\/upravljanje u usporedbi s drugim rje\u0161enjima.<\/p>\n<p>Kao standardni kontroler izabrali smo i do danas koristimo Ingress od Kubernetesa, koji pokriva 80\u201490% potreba. Puru je pouzdan, lako se konfigurira i pro\u0161iruje. U op\u0107enitom slu\u010daju, u nedostatku specifi\u010dnih zahtjeva, trebao bi odgovarati ve\u0107ini klastera\/aplikacija. Od sli\u010dnih univerzalnih i relativno jednostavnih proizvoda, mogu se preporu\u010diti Traefik i HAProxy.<\/p>\n<h2>P.S.<\/h2>\n<p>\nPro\u010ditajte i na na\u0161em blogu:<\/p>\n<ul>\n<li> \u00abPovratak mikroservisima uz Istio\u00bb: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">dio 1 (upoznavanje s osnovnim mogu\u0107nostima)<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">dio 2 (usmjerenje, upravljanje prometom)<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/443668\/\">dio 3 (autentifikacija i autorizacija)<\/a><\/noindex>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/445596\/\">Kubernetes savjeti i trikovi: personalizirane stranice gre\u0161aka u NGINX Ingress<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/427745\/\">Kubernetes savjeti &amp; trikovi: pristup dev-platforama<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Izvor: <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.4 - 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\/hr\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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\udd47Pregled i usporedba kontrolera Ingress za Kubernetes | ProHoster","description":"Prilikom pokretanja klastera Kubernetesa za.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/31173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=31173"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/31173\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/23140"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=31173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=31173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=31173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}