Kubernetes Pod VPNa edo irteera atebidea: nori dagokio tunela?
Pod bat bere sare-izenespazioa da, beraz benetako hautua da zein geruzak duen tunela: identitatea karga-lan bakoitzeko edo CNI-k gidatutako irteera iturri partekatu batekin.
vpn-gateway izeneko Pod bat hedatzen duzu, probako bezero bat haren helbidera zuzentzen duzu eta paketeak desagertzen ikusten dituzu. Manifestuan ez dago ezer gaizki eta kubelet-ek ez du kexarik. Arrazoia egiturazkoa da, ez konfiguraziozkoa: Kubernetes-ek Pod bakoitzari bere sare-izenespazioa ematen dio, beraz izen batek, etiketa batek edo API izenespazio partekatu batek ez du ezer aldatzen paketeak norantz doazen. Beraz, VPN trafikoak klusterretik nola irteten duen erabakitzea jabetzari buruzko galdera batekin hasten da, ez edukiontzien irudiekin.
Bi mekanismok estaltzen dituzte benetako hedapen gehienak, eta ez dira trukagarriak. Batek tunela karga-lanaren sare-izenespazioaren barruan jartzen du. Besteak CNI-ari eskatzen dio hautatutako trafikoak atebide-nodo jakin batetik igaro dadin. Modu ezberdinetan huts egiten dute, modu ezberdinetan eskalatzen dute eta talde ezberdinei erantzuten diete, eta horregatik edukiontzien galderak normalean inoiz konpontzen ez diren eztabaidak sortzen ditu.
Pod baten muga izenespazio bat da, ez jauzi-host bat
Linux sare-izenespazio batek bere interfazeak, helbideak, ibilbideak eta suebaki-arauak ditu, eta Pod bakoitzak bat jasotzen du. Pod horren barruko edukiontziek bat egiten dute harekin, eta horrexegatik edukiontzi laguntzaile batek aplikazioak gero jarraitzen dituen ibilbideak berridatz ditzake. Alboko Pod batek itxura bereko baina erabat bereizia den pila du. Ez dago atebide-Pod batek hereda dezakeen taula partekaturik, ezta izenespazio batetik bestera trafikoaren inplizituki eskualdatzerik.
Horregatik ere atebide-Podaren ereduak goian dagoen zerbait benetan hari paketeak bidaltzen dizkionean baino ez du funtzionatzen: Service bat, nodoko ibilbide estatiko bat edo CNI-n gidatzeko politika bat. Helbide bakar batek ez du ezer erakartzen.
Zer lortzen du Pod bakoitzeko tunelek, eta zenbat kostatzen du
Karga-lanaren izenespazioan exekutatzen den tunelek karga-lan horri bere bezero-identitatea ematen dio, urruneko sarbide zerbitzu askok behar dutena saio bat baimendu edo kontabilizatu aurretik. Kalte-erradioa ere tokikoa izaten da: hautsitako tunelek Deployment bat kentzen du denek erabiltzen duten bide partekatuaren ordez. Nola exekutatzen den inplementazioaren araberakoa da, eta hemen jendeak gaizki asmatzen du.
Kernelaren egoera soilik behar duen ezarpenak init edukiontzi batean amaitu eta irten daiteke. Podaren bizitza osoan bizirik egon behar duen erabiltzaile-espazioko daemon batek Kubernetes 1.29-n alboko edukiontzi natibo gisa sartutako init edukiontzi berrabiagarriaren forma behar du, eta bereizketa hori tuneleko inplementaziotik dator, ez gustutik. Eredu honen kostua bikoiztasuna da: erreplika bakoitzak autentifikatzen du, bere tunel-helbidea jasotzen du eta urruneko saio-leku bat kontsumitzen du, beraz eskalatze automatikoko gertaera bat estekak beste aldeko gaitasun-gertaera bihurtzen da. Kredentzial bakarra erreplika guztietara kopiatzeak ez du kostu hori kentzen, auditoria-arrastoa kentzen du. Baimenak ere azterketa berbera merezi du, zeren bere izenespazioan NET_ADMIN nahi duen tunel batek ez du arrazoirik privileged: true adibide baten host osoaren autoritatea heredatzeko.
CNI-k irteera badu
CNI-k hori onartzen badu, irteera atebide batek trafikoaren hautaketa egiten du karga-lanaren eta helburu-barrutiaren arabera, eta gero hautatutako nodoen bidez bidaltzen du jatorri-helbide aurreikusgarri baten pean. Ciliumen bertsioa erreferentzia ohikoa da, eta haren dokumentazioak argi dio funtzioak Cilium konfigurazio zehatza behar duela, baita interfaze eta helbide egokiekin hornitutako atebide-nodoak ere. Pod-a sortu ondoren hasierako epe bat ere aipatzen du, gidatzea oraindik aplikatzen ez dena, eta hori diseinu-sarrera da, ez oin-ohar bat.
Irakurri atzerapen hori zure promesaren aurka. Araua bada trafikorik ezin dela beste bide batetik atera, hutsunean transmititzen duen Pod berri batek jada hautsi du, beraz abiarazte-sekuentziak bere erantzuna behar du: eutsi aplikazioari politika aplikatu arte, edo onartu leihoa eta dokumentatu.
Eduki baieztapena estu. Irteera atebide batek bide bat aukeratzen eta itzultzen du. Ez du VPN bat amaitzen, eta ez du klusterra zure urruneko sarearen bezero bihurtzen atzean konexio onarturik gabe.
| Question | Per-Pod tunnel | CNI egress gateway |
|---|---|---|
| Who holds the client identity | Each workload | The gateway, shared |
| What scaling changes | Enrollment and sessions per replica | Throughput and capacity per node |
| What the remote side sees | Distinct addresses | One translated source |
| Failure scope | One Deployment | Every workload behind the gateway |
Itzulpenak isilka aldatzen du urruneko aldeak ikusten duena
Atebideak jatorria berridazten duenean, Pod bakoitzeko helbideak desagertu egiten dira, beraz identitatean oinarritutako baimen-zerrenda helbide partekatu bakarrean oinarritutako zerrenda bihurtzen da. Truke bat da, ez akats bat: mantentzeko arau gutiago, egotzpen zakarragoa zerbait gaizki portatzen denean.
Aplikazio-mailako autentifikazioak eta eskaeren erregistroak sareak jada ez duena eraman behar dute. Atebidearen gaitasuna eta ordezkapena azpiegitura partekatu gisa tratatu, nodo bakarreko berrabiarazteak orain atzean dagoen karga-lan guztiak eteten baititu, eta egiaztatu itzulera-bidea goiz: urruneko muturrak itzulitako helbidera nola iritsi jakin behar du, normalean manifestu batek ez, pertsona batek izan beharreko ibilbide edo NAT baten bidez. Helbide-plangintza ere hemen sartzen da, klusterreko eta urruneko barrutiek gainjartzeak bi ereduak hausten baititu eta IPv6 hartzeak ez du gatazkako plana barkatzen.
Erabaki jabetzaren arabera, eta gero probatu agindutako hutsegitea
Aukeratu Pod bakoitzeko tunela urruneko zerbitzuak karga-lan indibidualak autentifikatzen dituenean, Deployment guti batzuek esteka behar dutenean eta hutsegitea tokikoa izan behar denean. Aukeratu atebidea sare-talde batek bidea jadanik duenean, karga-lan askok helburu bat partekatzen dutenean eta jatorri-helbide egonkorra ariketaren xede osoa denean.
Nolanahi ere, egiaztatu saldu duzun propietatea, ez egoera egonkorra. Sortu Pod bat, utzi berehala transmititzen eta begiratu lehen segundoak promesa tuneletik ezer ihes egiten ez zela bazen. Eskalatu bost erreplikatara eta zenbatu urruneko muturrak jakinarazten dituen saioak promesa karga-lan bakoitzeko identitatea bazen. Bi egiaztapen horiek mekanismoaren mugak manifestuaren berrikuspena baino askoz arinago agerian uzten dituzte, eta hurrengo gertakaria zein talderi dagokion esaten dizute.