Akopọ ati lafiwe ti awọn olutona Ingress fun Kubernetes

Akopọ ati lafiwe ti awọn olutona Ingress fun Kubernetes

Nigbati o ba ṣe ifilọlẹ iṣupọ Kubernetes fun ohun elo kan pato, o nilo lati loye kini awọn ibeere ohun elo naa, iṣowo naa, ati awọn olupilẹṣẹ gbe sori orisun yẹn. Ti o ba ni alaye yii, o le bẹrẹ lati ṣe ipinnu ayaworan ati, ni pataki, lati yan oludari Ingress kan pato, eyiti nọmba nla ti wa tẹlẹ loni. Lati ni imọran ipilẹ ti awọn aṣayan ti o wa laisi nini lati kawe ọpọlọpọ awọn nkan / iwe aṣẹ, ati bẹbẹ lọ, a ti pese akopọ yii, pẹlu akọkọ (ti o ti ṣetan iṣelọpọ) awọn oludari Ingress.

A nireti pe yoo ṣe iranlọwọ fun awọn ẹlẹgbẹ ni yiyan ojutu ayaworan kan - o kere ju, yoo di aaye ibẹrẹ fun gbigba alaye alaye diẹ sii ati awọn adanwo to wulo. A kọkọ ṣe iwadi awọn ohun elo miiran ti o jọra tẹlẹ lori Intanẹẹti ati pe, lainidi, ko rii ẹyọkan diẹ sii tabi kere si pipe, ati pataki julọ, atunyẹwo eleto. Nitorinaa, jẹ ki a kun aafo yii!

.Итерии

Lati le ṣe afiwe ni ipilẹ ati gba eyikeyi abajade to wulo, o nilo lati loye kii ṣe agbegbe koko-ọrọ nikan, ṣugbọn tun ni atokọ kan pato ti awọn ibeere ti yoo ṣeto fekito ti iwadii. Laisi dibọn lati ṣe itupalẹ gbogbo awọn ọran ti o ṣeeṣe ti lilo Ingress / Kubernetes, a gbiyanju lati ṣe afihan awọn ibeere gbogbogbo julọ fun awọn olutona - mura silẹ pe gbogbo awọn pato ati awọn alaye yoo ni lati ṣe iwadi lọtọ ni eyikeyi ọran.

Ṣugbọn Emi yoo bẹrẹ pẹlu awọn abuda ti o ti faramọ pe wọn ti ṣe imuse ni gbogbo awọn solusan ati pe a ko gbero:

  • Awari iṣẹ ìmúdàgba;
  • SSL ifopinsi;
  • ṣiṣẹ pẹlu websockets.

Bayi nipa awọn aaye lafiwe:

Awọn ilana atilẹyin

Ọkan ninu awọn ibeere ipilẹ fun yiyan. Sọfitiwia rẹ le ma ṣiṣẹ ni lilo HTTP boṣewa tabi o le nilo iṣẹ kọja awọn ilana pupọ ni ẹẹkan. Ti ọran rẹ ko ba jẹ boṣewa, rii daju lati mu ifosiwewe yii sinu akọọlẹ ki o ko ni lati tunto iṣupọ nigbamii. Atokọ awọn ilana atilẹyin yatọ fun gbogbo awọn oludari.

Software ni mojuto

Awọn aṣayan ohun elo pupọ wa lori eyiti oludari da lori. Awọn olokiki jẹ nginx, traefik, haproxy, envoy. Ni gbogbogbo, o le ma ni ipa pupọ lori bi a ṣe gba ijabọ ati gbigbe, ṣugbọn o dara nigbagbogbo lati mọ awọn nuances ti o pọju ati awọn idiosyncrasies ti ohun ti o wa labẹ Hood.

Ipa ọna

Lori ipilẹ wo ni o le ṣe ipinnu nipa didari ijabọ si iṣẹ kan pato? Nigbagbogbo iwọnyi jẹ ogun ati ọna, ṣugbọn awọn iṣeeṣe afikun wa.

Aaye orukọ laarin iṣupọ kan

Namespace jẹ agbara lati pin awọn orisun ni ọgbọn ni Kubernetes (fun apẹẹrẹ, sinu ipele, iṣelọpọ, ati bẹbẹ lọ). Awọn olutona Ingress wa ti o nilo lati fi sori ẹrọ lọtọ ni aaye orukọ kọọkan (ati lẹhinna o le ṣe itọsọna ijabọ Nikan sinu awọn ege ti aaye yii). Ati pe awọn wọn wa (ati ọpọlọpọ wọn ti o han gbangba) ti o ṣiṣẹ ni agbaye fun gbogbo iṣupọ - ninu wọn, a firanṣẹ ijabọ si eyikeyi podu ti iṣupọ, laibikita aaye orukọ.

Awọn apẹẹrẹ fun awọn ọna oke

Bawo ni a ṣe ṣe itọsọna ijabọ si awọn iṣẹlẹ ilera ti ohun elo ati awọn iṣẹ ni idaniloju? Awọn aṣayan wa pẹlu awọn sọwedowo ti nṣiṣe lọwọ ati palolo, awọn atunyẹwo, awọn fifọ Circuit (fun awọn alaye diẹ sii, wo, fun apẹẹrẹ, article nipa Istio), awọn imuse ti ara ẹni ti awọn sọwedowo ilera (awọn sọwedowo ilera aṣa), ati bẹbẹ lọ. Paramita pataki pupọ ti o ba ni awọn ibeere giga fun wiwa ati yiyọ akoko ti awọn iṣẹ ti o kuna lati iwọntunwọnsi.

Awọn algoridimu iwọntunwọnsi

Awọn aṣayan pupọ lo wa: lati aṣa yika-Robin si awọn nla rdp-kukisi, bakanna bi awọn ẹya ara ẹni kọọkan alalepo igba.

Ijeri

Awọn ero aṣẹ aṣẹ wo ni oludari ṣe atilẹyin? Ipilẹ, daijesti, oauth, ita-auth - Mo ro pe awọn aṣayan wọnyi yẹ ki o faramọ. Eyi jẹ ami pataki ti o ba wa ọpọlọpọ awọn onigbese (ati/tabi ikọkọ) awọn losiwajulosehin ti o wọle nipasẹ Ingress.

Pinpin ijabọ

Ṣe oludari ṣe atilẹyin iru awọn ọna ṣiṣe ti o wọpọ fun pinpin ijabọ bi awọn iyipo canary, idanwo A/B, digi/ ojiji bi? Eyi jẹ koko-ọrọ ọgbẹ nitootọ fun awọn ohun elo ti o nilo iṣọra ati iṣakoso ijabọ kongẹ fun idanwo iṣelọpọ, n ṣatunṣe aṣiṣe ọja laisi ija (tabi pẹlu awọn adanu kekere), itupalẹ ijabọ, ati bẹbẹ lọ.

Ṣiṣe alabapin ti o sanwo

Njẹ aṣayan isanwo wa fun oludari pẹlu iṣẹ imudara ati/tabi atilẹyin imọ-ẹrọ?

Ni wiwo ayaworan (UI Wẹẹbu)

Njẹ GUI eyikeyi wa lati ṣakoso iṣeto iṣakoso? Ni akọkọ fun irọrun ati / tabi fun awọn ti o nilo lati ṣe diẹ ninu awọn ayipada si iṣeto Ingress, ṣugbọn ṣiṣẹ pẹlu awọn awoṣe “aise” jẹ airọrun. O le wulo ti awọn olupilẹṣẹ ba fẹ ṣe awọn idanwo eyikeyi pẹlu ijabọ lori fo.

JWT afọwọsi

Wiwa ijẹrisi ti a ṣe sinu ti awọn ami oju opo wẹẹbu JSON fun aṣẹ ati afọwọsi olumulo fun ohun elo ipari.

O ṣeeṣe fun a customizing awọn konfigi

Extensibility ti awọn awoṣe ni ori ti wiwa awọn ilana ti o gba ọ laaye lati ṣafikun awọn itọsọna tirẹ, awọn asia, ati bẹbẹ lọ si awọn awoṣe iṣeto ni boṣewa.

Awọn ilana aabo DDOS ipilẹ

Awọn algoridimu idiwọn oṣuwọn ti o rọrun tabi awọn aṣayan eka diẹ sii fun sisẹ ijabọ ti o da lori awọn adirẹsi, awọn atokọ funfun, awọn orilẹ-ede, ati bẹbẹ lọ.

Beere wiwa kakiri

Agbara lati ṣe atẹle, orin ati awọn ibeere yokokoro lati Ingress si awọn iṣẹ kan pato/pods, ati apere laarin awọn iṣẹ/pods paapaa.

waff

.Оддержка ogiriina ohun elo.

Ingress Controllers

Awọn akojọ ti awọn oludari ti a da lori osise Kubernetes iwe aṣẹ и tabili yi. A yọ diẹ ninu wọn kuro ninu atunyẹwo nitori iyasọtọ wọn tabi itankalẹ kekere (ipele ibẹrẹ ti idagbasoke). Awọn ti o ku ni a jiroro ni isalẹ. Jẹ ki a bẹrẹ pẹlu apejuwe gbogbogbo ti awọn ojutu ati tẹsiwaju pẹlu tabili akojọpọ.

Ingress lati Kubernetes

aaye ayelujara: github.com/kubernetes/ingress-nginx
iwe-aṣẹ: Apache 2.0

Eyi ni oludari osise fun Kubernetes ati pe agbegbe ni idagbasoke. O han ni lati orukọ naa, o da lori nginx ati pe o ni iranlowo nipasẹ ọpọlọpọ ṣeto ti awọn afikun Lua ti a lo lati ṣe awọn ẹya afikun. Nitori gbaye-gbale ti nginx funrararẹ ati awọn iyipada kekere si rẹ nigba lilo bi oludari, aṣayan yii le jẹ iṣeto ti o rọrun julọ ati oye julọ fun ẹlẹrọ apapọ (pẹlu iriri ni oju opo wẹẹbu).

Ibẹrẹ nipasẹ NGINX Inc

aaye ayelujara: github.com/nginxinc/kubernetes-ingress
iwe-aṣẹ: Apache 2.0

Ọja osise ti nginx Difelopa. Ni a san version da lori NGINX Plus. Ero akọkọ jẹ ipele giga ti iduroṣinṣin, ibaramu sẹhin igbagbogbo, isansa ti eyikeyi awọn modulu afikun ati iyara ti o pọ si (ni afiwe pẹlu oludari osise), ti o waye nitori ikọsilẹ ti Lua.

Ẹya ọfẹ ti ge ni pataki, pẹlu paapaa nigba akawe pẹlu oludari osise (nitori aini awọn modulu Lua kanna). Ẹya isanwo naa ni iwọn pupọ ti iṣẹ ṣiṣe afikun: awọn metiriki akoko gidi, afọwọsi JWT, awọn sọwedowo ilera ti nṣiṣe lọwọ ati diẹ sii. Anfani pataki lori NGINX Ingress jẹ atilẹyin kikun fun ijabọ TCP / UDP (ati ni ẹya agbegbe paapaa!). Iyokuro - aini ti awọn ẹya fun pinpin ijabọ, eyiti, sibẹsibẹ, “ni ayo to ga julọ fun awọn olupilẹṣẹ,” ṣugbọn o gba akoko lati ṣe.

Kong Ingress

aaye ayelujara: github.com/Kong/kubernetes-ingress-controller
iwe-aṣẹ: Apache 2.0

Ọja ni idagbasoke nipasẹ Kong Inc. ni awọn ẹya meji: iṣowo ati ọfẹ. Da lori nginx, awọn agbara eyiti o gbooro nipasẹ nọmba nla ti awọn modulu Lua.

Ni ibẹrẹ o ti dojukọ lori sisẹ ati ipa-ọna awọn ibeere API, i.e. bi API Gateway, ṣugbọn nisisiyi o ti di oluṣakoso Ingress ti o ni kikun. Awọn anfani akọkọ: ọpọlọpọ awọn modulu afikun (pẹlu lati ọdọ awọn olupilẹṣẹ ẹni-kẹta), eyiti o rọrun lati fi sori ẹrọ ati tunto ati pẹlu iranlọwọ ti eyiti ọpọlọpọ awọn agbara afikun ti wa ni imuse. Sibẹsibẹ, awọn iṣẹ ti a ṣe sinu tẹlẹ nfunni ni ọpọlọpọ awọn aye. Iṣeto iṣẹ ni a ṣe ni lilo awọn orisun CRD.

Ẹya pataki ti ọja naa - ṣiṣẹ laarin iyika kan (dipo ti orukọ-agbelebu) jẹ koko-ọrọ ariyanjiyan: fun diẹ ninu awọn yoo dabi alailanfani (o ni lati ṣẹda awọn nkan fun Circuit kọọkan), ṣugbọn fun awọn miiran yoo jẹ ẹya kan. (bоti o ga ipele ti idabobo, nitori ti oludari kan ba fọ, lẹhinna iṣoro naa ni opin si Circuit kan nikan).

Traefik

aaye ayelujara: github.com/containous/traefik
Iwe-aṣẹ: MIT

Aṣoju ti a ṣẹda ni akọkọ lati ṣiṣẹ pẹlu ipa-ọna ibeere fun awọn iṣẹ microservices ati agbegbe agbara wọn. Nitorinaa ọpọlọpọ awọn ẹya ti o wulo: mimu iṣeto ni imudojuiwọn laisi awọn atunbere rara, atilẹyin fun nọmba nla ti awọn ọna iwọntunwọnsi, wiwo wẹẹbu, awọn metiriki gbigbe, atilẹyin fun ọpọlọpọ awọn ilana, REST API, awọn idasilẹ canary ati pupọ diẹ sii. Ẹya ti o wuyi tun jẹ atilẹyin fun Jẹ ki a Encrypt awọn iwe-ẹri jade kuro ninu apoti. Alailanfani - lati ṣeto wiwa giga (HA), oludari yoo nilo lati fi sori ẹrọ ati sopọ ibi ipamọ KV tirẹ.

HAProxy

aaye ayelujara: github.com/jcmoraisjr/haproxy-ingress
iwe-aṣẹ: Apache 2.0

HAProxy ti pẹ ti mọ bi aṣoju ati iwọntunwọnsi ijabọ. Laarin iṣupọ Kubernetes, o funni ni awọn imudojuiwọn iṣeto ni “asọ” (laisi isonu ti ijabọ), Awari iṣẹ orisun DNS, ati iṣeto ni agbara nipa lilo API. O le jẹ ẹwa lati ṣe akanṣe awoṣe atunto patapata nipa rirọpo CM, bakanna bi o ṣeeṣe ti lilo awọn iṣẹ ti ile-ikawe Sprig ninu rẹ. Ni gbogbogbo, itọkasi akọkọ ti ojutu wa lori iyara giga, iṣapeye ati ṣiṣe ni awọn orisun ti o jẹ. Anfani ti oludari ni pe o ṣe atilẹyin nọmba igbasilẹ ti awọn ọna iwọntunwọnsi oriṣiriṣi.

ajo

aaye ayelujara: github.com/appscode/voyager
iwe-aṣẹ: Apache 2.0

Alakoso ti o da lori HAproxy, eyiti o wa ni ipo bi ojutu gbogbo agbaye ti o ṣe atilẹyin awọn agbara nla kọja nọmba nla ti awọn olupese. O funni ni aye lati ṣe iwọntunwọnsi ijabọ lori L7 ati L4, ati iwọntunwọnsi ti ijabọ TCP L4 ni gbogbogbo ni a le pe ni ọkan ninu awọn ẹya pataki ti ojutu.

Konto

aaye ayelujara: github.com/heptio/contour
iwe-aṣẹ: Apache 2.0

Ojutu yii ko da lori Aṣoju nikan: o jẹ apẹrẹ lapapo pẹlu awọn onkọwe ti aṣoju olokiki yii. Ẹya pataki kan ni agbara lati yapa iṣakoso ti awọn orisun Ingress nipa lilo awọn orisun CRD IngressRoute. Fun awọn ẹgbẹ ti o ni awọn ẹgbẹ idagbasoke lọpọlọpọ nipa lilo iṣupọ ẹyọkan, eyi ṣe iranlọwọ lati mu aabo pọ si ti mimu ijabọ ni awọn iyipo adugbo ati aabo wọn lati awọn aṣiṣe nigba iyipada awọn orisun Ingress.

O tun funni ni eto ti o gbooro ti awọn ọna iwọntunwọnsi (ibeere digi, awọn atunwi adaṣe, awọn ihamọ oṣuwọn ibeere, ati pupọ diẹ sii), ibojuwo alaye ti ṣiṣan ijabọ ati awọn ikuna. Boya fun diẹ ninu, aini atilẹyin fun awọn akoko alalepo yoo jẹ apadabọ pataki (botilẹjẹpe iṣẹ ti wa ni tẹlẹ Amẹríkà).

Istio Ingress

aaye ayelujara: istio.io/docs/awọn iṣẹ-ṣiṣe/ijabọ-isakoso/ingress
iwe-aṣẹ: Apache 2.0

Ojutu apapo iṣẹ okeerẹ, eyiti kii ṣe oludari Ingress nikan ti o ṣakoso ijabọ ti nwọle lati ita, ṣugbọn tun ṣakoso gbogbo awọn ijabọ laarin iṣupọ. "Labẹ Hood," Aṣoju ni a lo bi aṣoju ẹgbẹ ẹgbẹ fun iṣẹ kọọkan. Ni pataki, eyi jẹ olukore nla ti “le ṣe ohun gbogbo,” ati imọran akọkọ rẹ jẹ iṣakoso ti o pọju, faagun, ailewu ati akoyawo. Pẹlu iranlọwọ rẹ, o le ṣe atunṣe ipa ọna opopona, aṣẹ iwọle laarin awọn iṣẹ, iwọntunwọnsi, ibojuwo, awọn idasilẹ canary, ati pupọ diẹ sii. Ka diẹ sii nipa Istio ninu jara awọn nkan "Pada si Microservices pẹlu Istio».

Ambassador

aaye ayelujara: github.com/datawire/ambassador
iwe-aṣẹ: Apache 2.0

Ojutu miiran ti o da lori Aṣoju. O ni awọn ẹya ọfẹ ati ti iṣowo. Ti o wa ni ipo bi “ilu abinibi ni kikun si Kubernetes”, eyiti o mu awọn anfani ti o baamu wa (isopọmọra pẹlu awọn ọna iṣupọ K8s ati awọn nkan).

tabili afiwera

Nitorinaa, ipari ti nkan naa jẹ tabili nla yii:

Akopọ ati lafiwe ti awọn olutona Ingress fun Kubernetes

O jẹ clickable fun wiwo alaye diẹ sii, ati pe o tun wa ni ọna kika Awọn Ifawe Google.

Jẹ ki a ṣe akopọ

Idi ti nkan naa ni lati pese oye pipe diẹ sii (sibẹsibẹ, kii ṣe rara rara!) Kini yiyan lati ṣe ninu ọran rẹ pato. Gẹgẹbi igbagbogbo ọran, oludari kọọkan ni awọn anfani ati alailanfani tirẹ…

Ingress Alailẹgbẹ lati Kubernetes jẹ dara fun iraye si ati igbẹkẹle rẹ, awọn agbara ọlọrọ ni iṣẹtọ - ni ọran gbogbogbo, o yẹ ki o jẹ “to fun awọn oju”. Sibẹsibẹ, ti o ba ni awọn ibeere ti o pọ si fun iduroṣinṣin, ipele awọn ẹya ati idagbasoke, o yẹ ki o san ifojusi si Ingress pẹlu NGINX Plus ati ṣiṣe alabapin ti o sanwo. Kong ni eto awọn afikun ti ọlọrọ (ati, ni ibamu, awọn agbara ti wọn pese), ati paapaa diẹ sii ninu wọn wa ninu ẹya isanwo. O ni awọn agbara lọpọlọpọ lati ṣiṣẹ bi ẹnu-ọna API, iṣeto ni agbara ti o da lori awọn orisun CRD, ati awọn iṣẹ Kubernetes ipilẹ.

Ti o ba ni awọn ibeere ti o pọ si fun iwọntunwọnsi ati awọn ọna aṣẹ, wo Traefik ati HAProxy ni pẹkipẹki. Iwọnyi jẹ awọn iṣẹ akanṣe Orisun Orisun, ti a fihan ni awọn ọdun, iduroṣinṣin pupọ ati idagbasoke ni itara. Contour ti wa ni ayika fun ọdun diẹ bayi, ṣugbọn o tun dabi ọdọ pupọ ati pe o ni awọn ẹya ipilẹ nikan ti a ṣafikun lori oke Aṣoju. Ti awọn ibeere ba wa fun wiwa / ifibọ WAF ni iwaju ohun elo, o yẹ ki o san ifojusi si Ingress kanna lati Kubernetes tabi HAProxy.

Ati awọn ẹya ti o dara julọ ni awọn ọja ti a ṣe lori Aṣoju, paapaa Istio. O dabi pe o jẹ ojutu okeerẹ ti “le ṣe ohun gbogbo,” eyiti, sibẹsibẹ, tun tumọ si idena ti o ga pupọ si titẹsi fun iṣeto ni / ifilọlẹ / iṣakoso ju awọn solusan miiran lọ.

A yan ati tun lo Ingress lati Kubernetes gẹgẹbi oludari boṣewa, eyiti o ni wiwa 80-90% ti awọn iwulo wa. O jẹ igbẹkẹle pupọ, rọrun lati tunto, ati faagun. Ni gbogbogbo, ayafi ti awọn ibeere kan pato ba wa, o yẹ ki o baamu ọpọlọpọ awọn iṣupọ/awọn ohun elo. Ninu gbogbo agbaye kanna ati awọn ọja ti o rọrun, a le ṣeduro Traefik ati HAProxy.

PS

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun