{"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\/it\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","title":{"rendered":"Panoramica e confronto dei controller Ingress per Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Panoramica e confronto dei controller Ingress per Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/3e6d3882a8f5a96a257fab4daaa230f2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQuando si avvia un cluster Kubernetes per una specifica applicazione, \u00e8 fondamentale comprendere quali requisiti presenta per questa risorsa l'applicazione stessa, il business e gli sviluppatori. Con queste informazioni, si pu\u00f2 procedere a prendere decisioni architetturali, in particolare alla scelta di un Ingress controller, di cui oggi esiste un'ampia variet\u00e0. Per fornire una base di comprensione delle opzioni disponibili senza la necessit\u00e0 di esaminare numerosi articoli\/documentazione, abbiamo preparato questa panoramica, includendo i principali (production ready) Ingress controller.<\/p>\n<p>Speriamo che possa aiutare i colleghi a scegliere la soluzione architetturale \u2014 almeno sar\u00e0 un punto di partenza per ottenere informazioni pi\u00f9 dettagliate e per esperimenti pratici. Inizialmente, abbiamo esaminato altri materiali simili online e, stranamente, non abbiamo trovato nemmeno una panoramica sufficientemente completa e, cosa pi\u00f9 importante, ben strutturata. Quindi, colmiamo questa lacuna!<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Criteri<\/h2>\n<p>\nPer effettuare un confronto utile e ottenere risultati significativi, \u00e8 necessario comprendere non solo il dominio tematico, ma anche avere un elenco specifico di criteri che definiranno l'orientamento della ricerca. Senza pretendere di analizzare tutti i possibili casi di utilizzo di Ingress\/Kubernetes, abbiamo cercato di evidenziare i requisiti pi\u00f9 generali per i controller \u2014 siate pronti a dover approfondire la vostra specificit\u00e0 e dettagli separatamente.<\/p>\n<p>Inizio con le caratteristiche che sono diventate cos\u00ec familiari da essere implementate in tutte le soluzioni e non considerate:<\/p>\n<ul>\n<li> scoperta dei servizi (service discovery);<\/li>\n<li> terminazione SSL;<\/li>\n<li> \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 websocket&#8217;\u0430\u043c\u0438.<\/li>\n<\/ul>\n<p>\nOra \u2014 riguardo ai punti di confronto:<\/p>\n<h3>Protocolli supportati<\/h3>\n<p>\nUno dei criteri fondamentali per la scelta. Il vostro software potrebbe non funzionare secondo lo standard HTTP o richiedere l'uso di molteplici protocolli. Se la vostra situazione \u00e8 non standard, tenete sicuramente in considerazione questo fattore, per evitare di dover riconfigurare il cluster in seguito. La lista dei protocolli supportati varia per tutti i controller.<\/p>\n<h3>Software sottostante<\/h3>\n<p>\nCi sono diverse opzioni di applicazioni su cui \u00e8 basato il controller. I pi\u00f9 popolari sono nginx, traefik, haproxy, envoy. In generale, potrebbe non avere un grande impatto su come viene gestito il traffico, ma \u00e8 sempre utile conoscere le potenziali sfumature e caratteristiche di ci\u00f2 che \u00e8 \"sotto il cofano\".<\/p>\n<h3>Routing del traffico<\/h3>\n<p>\nSu cosa si basa la decisione per indirizzare il traffico verso un servizio specifico? Di solito \u00e8 basato su host e path, ma ci sono anche opzioni aggiuntive.<\/p>\n<h3>Namespace nel cluster<\/h3>\n<p>\nIl namespace \u00e8 la possibilit\u00e0 di suddividere logicamente le risorse in Kubernetes (ad esempio, su stage, production, ecc.). Ci sono Ingress controller che devono essere installati separatamente in ogni namespace (e allora possono indirizzare il traffico <i>solo<\/i> \u0432 pod&#8217;\u044b \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430). \u0410 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 (\u0438 \u0438\u0445 \u044f\u0432\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e), \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u043d\u0430 \u0432\u0435\u0441\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u2014 \u0432 \u043d\u0438\u0445 \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043b\u044e\u0431\u043e\u0439 pod \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d.<\/p>\n<h3>\u041f\u0440\u043e\u0431\u044b \u0434\u043b\u044f upstream&#8217;\u043e\u0432<\/h3>\n<p>\nIn che modo viene garantito che il traffico venga indirizzato verso istanze sane dell'applicazione e dei servizi? Ci sono opzioni con controlli attivi e passivi, tentativi ripetuti (retries), circuit breakers <i>(per saperne di pi\u00f9, ad esempio, vedi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">l'articolo su Istio<\/a><\/noindex>)<\/i>, implementazioni personalizzate dei controlli di stato (custom health checks) e cos\u00ec via. \u00c8 un parametro molto importante se avete elevate esigenze di disponibilit\u00e0 e per rimuovere tempestivamente i servizi non funzionanti dalla bilanciamento.<\/p>\n<h3>Algoritmi di bilanciamento<\/h3>\n<p>\nCi sono molte opzioni: da quelle tradizionali <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Round-robin_DNS\">round-robin<\/a><\/noindex> a quelle esotiche come <noindex><a rel=\"nofollow\" href=\"http:\/\/www.loadbalancer.org\/blog\/load-balancing-windows-terminal-server-haproxy-and-rdp-cookies\/\">rdp-cookie<\/a><\/noindex>, oltre a funzioni separate come <noindex><a rel=\"nofollow\" href=\"https:\/\/access.redhat.com\/solutions\/900933\">sticky sessions<\/a><\/noindex>.<\/p>\n<h3>Autenticazione<\/h3>\n<p>\nQuali schemi di autorizzazione supporta il controller? Basic, digest, oauth, external-auth \u2014 credo che queste opzioni dovrebbero esservi familiari. Questo \u00e8 un criterio importante se vengono utilizzati molti ambiti per sviluppatori (e\/o semplicemente privati), ai quali si accede tramite Ingress. <\/p>\n<h3>Distribuzione del traffico<\/h3>\n<p>\nIl controller supporta meccanismi comunemente usati per la distribuzione del traffico, come le distribuzioni canary, A\/B testing, mirroring del traffico? Questo \u00e8 un tema cruciale per le applicazioni che richiedono una gestione accurata e precisa del traffico per test produttivi, debugging di errori del prodotto senza impatto (o con perdite minime), analisi del traffico, ecc.<\/p>\n<h3>Abbonamento a pagamento<\/h3>\n<p>\nEsiste un'opzione a pagamento per il controller, con funzionalit\u00e0 avanzate e\/o supporto tecnico?<\/p>\n<h3>Interfaccia grafica (Web UI)<\/h3>\n<p>\nEsiste un'interfaccia grafica per gestire la configurazione del controller? Principalmente per 'facilit\u00e0 d'uso' e\/o per coloro che necessitano di apportare modifiche alla configurazione di Ingress, poich\u00e9 lavorare con modelli 'grezzi' non \u00e8 comodo. Potrebbe essere utile nel caso in cui gli sviluppatori vogliano effettuare esperimenti al volo con il traffico.<\/p>\n<h3>Validazione JWT<\/h3>\n<p>\nPresenza di un controllo integrato per i token JSON web per l'autenticazione e la validazione dell'utente nell'applicazione finale.<\/p>\n<h3>Opzioni di personalizzazione della configurazione<\/h3>\n<p>\nEspandibilit\u00e0 dei modelli in termini di meccanismi che consentono di aggiungere direttive, flag, ecc. personalizzati ai modelli di configurazione standard.<\/p>\n<h3>Meccanismi di base per la protezione DDoS<\/h3>\n<p>\nAlgoritmi semplici di limitazione della velocit\u00e0 o varianti pi\u00f9 complesse per filtrare il traffico in base a indirizzi, liste bianche, nazioni, ecc.<\/p>\n<h3>Tracciamento delle richieste<\/h3>\n<p>\n\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f, \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0442 Ingress&#8217;\u043e\u0432 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\/pod&#8217;\u0430\u043c, \u0430 \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u2014 \u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438\/pod&#8217;\u0430\u043c\u0438 \u0442\u043e\u0436\u0435.<\/p>\n<h3>WAF<\/h3>\n<p>\nSupporto <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Web_application_firewall\">\u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u043e\u0433\u043e firewall&#8217;\u0430<\/a><\/noindex>.<\/p>\n<h2>Controller Ingress<\/h2>\n<p>\nL'elenco dei controller \u00e8 stato redatto sulla base di <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/ingress-controllers\/#additional-controllers\">documentazione ufficiale di Kubernetes<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/16bxRgpO1H_Bn-5xVZ1WrR_I-0A-GOI6egmhvqqLMOmg\/edit\">questa tabella<\/a><\/noindex>. Alcuni di essi sono stati esclusi dalla revisione a causa della loro specificit\u00e0 o della loro scarsa diffusione (fase di sviluppo precoce). Gli altri sono descritti di seguito. Iniziamo con una panoramica delle soluzioni e continueremo con una tabella di sintesi.<\/p>\n<h3>Ingress di Kubernetes<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/ingress-nginx\">github.com\/kubernetes\/ingress-nginx<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>Questo \u00e8 il controller ufficiale per Kubernetes, sviluppato dalla comunit\u00e0. Come suggerisce il nome, \u00e8 basato su nginx e arricchito da vari plugin Lua utilizzati per implementare funzionalit\u00e0 aggiuntive. Grazie alla popolarit\u00e0 di nginx e alle modifiche minime necessarie per utilizzarlo come controller, questa opzione pu\u00f2 risultare la pi\u00f9 semplice e comprensibile da configurare per un ingegnere medio (con esperienza nel web).<\/p>\n<h3>Ingress di NGINX Inc<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\">github.com\/nginxinc\/kubernetes-ingress<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>Prodotto ufficiale degli sviluppatori di nginx. Ha una versione a pagamento basata su <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/products\/nginx\/\">NGINX Plus<\/a><\/noindex>. L'idea principale \u00e8 un alto livello di stabilit\u00e0, totale retrocompatibilit\u00e0, assenza di moduli esterni e una elevata velocit\u00e0 dichiarata (rispetto al controller ufficiale), ottenuta grazie all'abbandono di Lua. <\/p>\n<p>La versione gratuita \u00e8 notevolmente ridotta, anche rispetto al controller ufficiale (a causa della mancanza dei suddetti moduli Lua). La versione a pagamento, per\u00f2, offre funzionalit\u00e0 aggiuntive significative: metriche in tempo reale, validazione JWT, controlli di stato attivi e altro ancora. Un vantaggio importante rispetto a NGINX Ingress \u00e8 il supporto completo per il traffico TCP\/UDP (anche nella versione community!). Lo svantaggio \u00e8 che <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/nginxinc\/kubernetes-ingress\/issues\/464\">l'assenza<\/a><\/noindex> ci sono poche funzionalit\u00e0 per la distribuzione del traffico, che, tuttavia, 'ha la massima priorit\u00e0 per gli sviluppatori', ma richiede tempo per l'implementazione.<\/p>\n<h3>Kong Ingress<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Kong\/kubernetes-ingress-controller\">github.com\/Kong\/kubernetes-ingress-controller<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>Prodotto sviluppato da Kong Inc. in due versioni: commerciale e gratuita. Basato su nginx, le cui funzionalit\u00e0 sono ampliate da un gran numero di moduli Lua.<\/p>\n<p>Originariamente era orientato al trattamento e alla gestione delle richieste API, cio\u00e8 come API Gateway, ma attualmente \u00e8 diventato un controller Ingress completo. I principali vantaggi: numerosi moduli aggiuntivi (inclusi quelli di sviluppatori esterni) che possono essere facilmente installati e configurati, attraverso i quali viene implementata una vasta gamma di funzionalit\u00e0 aggiuntive. Tuttavia, le funzioni integrate offrono gi\u00e0 molte possibilit\u00e0. La configurazione operativa \u00e8 effettuata tramite risorse CRD.<\/p>\n<p>Una caratteristica importante del prodotto \u00e8 che funziona all'interno di un singolo contesto (invece che cross-namespaced), un argomento controverso: potrebbe sembrare un difetto (\u00e8 necessario creare entit\u00e0 per ogni contesto), mentre per altri \u00e8 una funzionalit\u00e0 (pi\u00f9<i>un<\/i>alto livello di isolamento, poich\u00e9 se un controller si guasta, il problema \u00e8 limitato solo a quel contesto).<\/p>\n<h3>Traefik<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/containous\/traefik\">github.com\/containous\/traefik<\/a><\/noindex><\/i><br \/>\n<i>Licenza: MIT<\/i><\/p>\n<p>\u041f\u0440\u043e\u043a\u0441\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0438\u0445 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0440\u0435\u0434\u044b. \u041e\u0442\u0441\u044e\u0434\u0430 \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043f\u0440\u043e\u0431\u0440\u043e\u0441 \u043c\u0435\u0442\u0440\u0438\u043a, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432, REST API, \u043a\u0430\u043d\u0430\u0440\u0435\u0435\u0447\u043d\u044b\u0435 \u0440\u0435\u043b\u0438\u0437\u044b \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435. \u041f\u0440\u0438\u044f\u0442\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 Let&#8217;s Encrypt \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u2014 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 (HA) \u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 KV-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435.<\/p>\n<h3>HAProxy<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jcmoraisjr\/haproxy-ingress\">github.com\/jcmoraisjr\/haproxy-ingress<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>HAProxy \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u043a\u0441\u0438 \u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Kubernetes \u0441 \u043d\u0438\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u00ab\u043c\u044f\u0433\u043a\u043e\u0435\u00bb \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430), service discovery \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 DNS, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e API. \u041f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0430\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043c\u0435\u043d\u044b CM&#8217;\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0451\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Sprig. \u0412 \u0446\u0435\u043b\u043e\u043c \u0436\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0430\u043a\u0446\u0435\u043d\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b, \u0435\u0433\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u0445. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u2014 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0435\u043a\u043e\u0440\u0434\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<h3>Voyager<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/appscode\/voyager\">github.com\/appscode\/voyager<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>Un controller basato su HAProxy, posizionato come una soluzione universale che supporta ampie funzionalit\u00e0 su un gran numero di provider. Offre la possibilit\u00e0 di bilanciare il traffico a L7 e L4; la bilanciatura del traffico TCP L4 pu\u00f2 essere considerata una delle funzionalit\u00e0 principali della soluzione.<\/p>\n<h3>Contour<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/heptio\/contour\">github.com\/heptio\/contour<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>Questa soluzione non solo si basa su Envoy ma \u00e8 stata sviluppata <i>in collaborazione<\/i> dagli autori di questo popolare proxy. Una caratteristica importante \u00e8 la possibilit\u00e0 di separare la gestione delle risorse Ingress tramite risorse CRD IngressRoute. Per le organizzazioni con molti team di sviluppo che utilizzano un unico cluster, ci\u00f2 contribuisce a massimizzare la sicurezza nella gestione del traffico e protegge dai possibili errori quando si modificano le risorse Ingress.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 (\u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0435\u0440\u043a\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0430\u0432\u0442\u043e\u043f\u043e\u0432\u0442\u043e\u0440\u044b, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u043e rate&#8217;\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435), \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u043e\u0442\u043e\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u0441\u0431\u043e\u0435\u0432. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u043b\u044f \u043a\u043e\u0433\u043e-\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 sticky sessions (\u0445\u043e\u0442\u044f \u0440\u0430\u0431\u043e\u0442\u044b <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/heptio\/contour\/issues\/361\">siano gi\u00e0 in corso<\/a><\/noindex>).<\/p>\n<h3>Istio Ingress<\/h3>\n<p>\n<i>Sito: <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>Licenza: Apache 2.0<\/i><\/p>\n<p>Una soluzione completa di service mesh, che non solo funge da controller Ingress gestendo il traffico in entrata, ma controlla anche tutto il traffico all'interno del cluster. Sotto il cofano, come proxy sidecar per ogni servizio, utilizza Envoy. In sostanza \u00e8 un grande insieme di strumenti che 'pu\u00f2 fare tutto', e la sua idea principale \u00e8 massima gestibilit\u00e0, scalabilit\u00e0, sicurezza e trasparenza. Con esso, puoi configurare nei dettagli la routing del traffico, l'autenticazione tra i servizi, il bilanciamento, il monitoraggio, i rilasci canarini e molto altro. Scopri di pi\u00f9 su Istio nella serie di articoli '<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">Tornare ai microservizi con Istio<\/a><\/noindex>\u00bb.<\/p>\n<h3>Ambassador<\/h3>\n<p>\n<i>Sito: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/datawire\/ambassador\">github.com\/datawire\/ambassador<\/a><\/noindex><\/i><br \/>\n<i>Licenza: Apache 2.0<\/i><\/p>\n<p>Un'altra soluzione basata su Envoy. Ha sia versioni gratuite che commerciali. Si posiziona come 'completamente nativa per Kubernetes', portando i vantaggi corrispondenti (integrazione estrema con metodi e entit\u00e0 del cluster K8s).<\/p>\n<h2>Tabella comparativa<\/h2>\n<p>\nQuindi, la conclusione dell'articolo \u00e8 questa enorme tabella:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ss\/wh\/lj\/sswhljo-rjkms7nadtyewqkxrdi.png\"><img decoding=\"async\" alt=\"Panoramica e confronto dei controller Ingress per Kubernetes\" src=\"\/wp-content\/uploads\/2019\/04\/3a6c552df6b8b7b6a88517046fa7a275.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\u00c8 cliccabile per un'esperienza di visualizzazione pi\u00f9 dettagliata ed \u00e8 disponibile anche in formato <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1xjff2AMS6QXSdh8E8ay_uNMoUa2OLIanCallvkDvAy0\/edit#gid=0\">Google Sheets<\/a><\/noindex>.<\/p>\n<h2>Tiriamo le somme<\/h2>\n<p>\nL'obiettivo dell'articolo \u00e8 fornire una comprensione pi\u00f9 completa (sebbene non esaustiva!) di quale scelta fare nel tuo caso specifico. Come sempre, ogni controller ha i suoi pro e contro\u2026<\/p>\n<p>Il classico Ingress di Kubernetes \u00e8 apprezzato per la sua disponibilit\u00e0 e collaudatezza, con funzionalit\u00e0 sufficientemente ricche \u2014 in generale, dovrebbe 'essere pi\u00f9 che sufficiente'. Tuttavia, se ci sono requisiti elevati in termini di stabilit\u00e0, livello di funzionalit\u00e0 e sviluppo, \u00e8 consigliabile considerare Ingress con NGINX Plus e un abbonamento a pagamento. Kong ha un vastissimo set di plugin (e, di conseguenza, le funzionalit\u00e0 fornite), e nella versione a pagamento ce ne sono anche di pi\u00f9. Ha ampie possibilit\u00e0 di operare come API Gateway, configurazione dinamica basata su risorse CRD, cos\u00ec come servizi Kubernetes di base.<\/p>\n<p>Se hai requisiti elevati per il bilanciamento e i metodi di autenticazione, considera Traefik e HAProxy. Questi sono progetti Open Source, collaudati nel tempo, molto stabili e in continua evoluzione. Contour \u00e8 stato introdotto solo qualche anno fa, ma appare comunque troppo giovane e ha solo funzionalit\u00e0 di base, aggiunte sopra Envoy. Se ci sono requisiti per avere\/inserire un WAF davanti all'applicazione, dovresti considerare lo stesso Ingress di Kubernetes o HAProxy.<\/p>\n<p>I prodotti pi\u00f9 ricchi di funzionalit\u00e0 sono quelli costruiti sulla base di Envoy, in particolare Istio. Si presenta come una soluzione complessa che 'pu\u00f2 fare tutto', il che, tuttavia, significa anche una soglia di ingresso significativamente pi\u00f9 alta in termini di configurazione\/implementazione\/amministrazione rispetto ad altre soluzioni.<\/p>\n<p>Come standard controller, abbiamo scelto e continuiamo a utilizzare Ingress di Kubernetes, che copre l'80-90% delle necessit\u00e0. \u00c8 piuttosto affidabile, facile da configurare e scalabile. In generale, in assenza di requisiti specifici, dovrebbe essere adatto alla maggior parte dei cluster\/applicazioni. Altri prodotti altrettanto versatili e relativamente semplici da usare includono Traefik e HAProxy.<\/p>\n<h2>P.S.<\/h2>\n<p>\nLeggete anche nel nostro blog:<\/p>\n<ul>\n<li> \u00abTornare ai microservizi con Istio\u00bb: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438426\/\">parte 1 (introduzione alle funzionalit\u00e0 principali)<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">parte 2 (routing, gestione del traffico)<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/443668\/\">parte 3 (autenticazione e autorizzazione)<\/a><\/noindex>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/445596\/\">Kubernetes tips &amp; tricks: pagine di errore personalizzate in NGINX Ingress<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/427745\/\">Suggerimenti e trucchi per Kubernetes: accesso agli ambienti di sviluppo<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fonte: <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.0.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 \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\" \/>\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\/it\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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\udd47Panoramica e confronto dei controller Ingress per Kubernetes | ProHoster","description":"Quando si avvia un cluster Kubernetes per un'applicazione specifica, \u00e8 fondamentale comprendere quali requisiti ha questo recurso da parte dell'applicazione stessa, del business e degli sviluppatori. Con queste informazioni a disposizione, si pu\u00f2 procedere a prendere decisioni architettoniche e, in particolare, scegliere un determinato controller Ingress, dei quali attualmente ce ne sono gi\u00e0 molti. Per avere una visione di base delle opzioni disponibili senza dover studiare molteplici risorse.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/obzor-i-sravnenie-kontrollerov-ingress-dlya-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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 \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","og:url":"https:\/\/prohoster.info\/it\/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\/it\/wp-json\/wp\/v2\/posts\/31173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=31173"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31173\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/23140"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=31173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=31173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=31173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}