Pod, sõlm või klaster: mida VPN-i kõrvkonteiner tegelikult ümber suunab
Ühe Podi konteinerid jagavad võrgu nimeruumi, seega marsruute muutev kõrvkonteiner mõjutab rakendust, kuid mitte teisi Pode ega sõlme.
VPN-i kõrvkonteiner Kubernetes Podis näeb välja nagu hostitasandi VPN paremate kommetega, ja sarnasus lõpeb nimeruumi piiril. Ühe Podi konteinerid jagavad võrgu nimeruumi, sealhulgas aadressi- ja pordiruumi, seega marsruute ja poliitikat paigaldav kõrvkonteiner muudab tõesti seda, kuhu rakenduse paketid lähevad. Teiste Podide jaoks sõlmes ei muuda see midagi ja sõlme enda virna ei puuduta, kui te seda nii ei seadista. Selle piiri õige mõistmine otsustab nii selle, mida saate juurutada, kui ka selle, mida peate testima. Järgmised osad järgivad seda nimeruumist väljapoole.
Jagatud nimeruum, jagatud tagajärjed
Kaks konteinerit Podis räägivad loopbacki kaudu ja näevad samu liideseid, ja just seetõttu kõrvkonteineri muster üldse töötab: rakendus ei pea teadma, et tunnel olemas on, sest marsruut, millele see jõuab, paigaldati nimeruumi, mida see kasutab. Sama omadus tähendab, et kõrvkonteineri vead on rakenduse vead. Marsruut, mis haarab liiga palju, või DNS-i muudatus, mis osutab tunnelisisesele resolverile, kehtib kohe iga protsessi kohta selles Podis. Jagatud nimeruumis puudub konteineripõhine marsruutimine, seega ei saa kõrvkonteinerit piirata ühe protsessiga.
See on mehhanism, mida ülevaatamisel meeles pidada: mõjuraadius on Pod, mitte sõlm ja mitte klaster.
Kuhu kõrvkonteiner ei jõua
Teised Podid hoiavad oma nimeruume ja oma marsruutimist, seega sama väljapääsu vajav töökoormus vajab sama kõrvkonteinerit või selle asemel sõlmetasandi disaini. Ka sõlme liiklus on väljaspool Podi nimeruumi ja hostivõrguga Podid loobuvad sellest isolatsioonist teadlikult täielikult. Kui käivitate kõrvkonteineri hostivõrguga, et jõuda millegi mugavani, olete laiendanud ulatust ühest Podist kogu sõlmele ja peaksite seda valjusti ütlema.
Liiklus klastri teenustesse on teine tavaline üllatus. Lai vaikemarsruut Podi sees võib haarata API-serverile või ClusterIP-teenusele mõeldud päringud ja need ebaõnnestuvad siis viisil, mis näeb välja nagu katkine tunnel.
Marsruudiplaan: Podi, teenuse, sõlme ja VPN-i vahemikud
Kirjutage neli vahemikku üles ja kontrollige neid kattumise suhtes enne millegi juurutamist: Podi CIDR, teenuse CIDR, sõlme aadressid ja VPN-i taga olevad sihtkohad. VPN-i privaatsete vahemike ja klastri enda ruumi kattumine pole haruldane ning vaikemarsruut on selle jaoks vale lahendus. Marsruudiplaan kuulub samasse hoidlasse kui manifest, sest järgmine klaster võib anda hoopis teistsugused Podi ja teenuse vahemikud.
DNS on plaani osa, mitte eraldi mure. Kõrvkonteiner, mis kirjutab ümber resolveri seadistuse, võib lõhkuda klastrisisese teenuseavastuse, samal ajal kui välised päringud töötavad laitmatult.
Käivitamine ja rike on selgesõnalised olekud
Töötav kõrvkonteineri protsess ei ole väljundpoliitika. Otsustage, milline liiklus tohib enne tunneli valmimist liikuda, ja mis juhtub, kui see hiljem sureb, ning rakendage see otsus: sond, mis väravab rakenduse konteineri, vaikimisi keelav võrgupoliitika või mõlemad. Ilma ühega neist rakendus käivitub, lahendab aadressid ja saadab liikluse sõlme tavalisel teel välja, samal ajal kui tunnel alles ühendub.
See lünk on terves klastris lühike ja katkises püsiv, ja täpselt see omadus meeldib ründajale või juhuslikule andmelekkel.
Siduge järjekord rikketestiga. Tapke kõrvkonteiner ja kinnitage, et rakendus kaotab kavandatud väljundi, mitte ei lülitu vaikselt tagasi.
Võimekused, poliitikad ja testimine rakenduse konteinerist
Liideste loomiseks ja marsruutide muutmiseks vajalike võimekuste andmine on privileegide otsus, ja isoleeritud Podi jaoks sobiv privileeg ei sobi automaatselt sõlme virna. Kasutage klastri toetatud võrgu- ja turbepoliitika mehhanisme ning ärge eeldage, et iga CNI või poliitika teostus kohtleb VPN-i liidest ühtemoodi; erinevused ilmnevad täpselt nendes rikkejuhtumites, mis teile korda lähevad.
Testige päris rakenduse konteinerist, värskete päringutega privaatsesse sihtkohta, klastri teenusesse ja avalikku internetti. Kõrvkonteinerist tehtud test tõestab, et tunnel töötab, mitte et rakendus jõuab selleni, mida ta vajab.
Dokumenteerige klastri võrgu eeldused VPN-i seadistuse kõrval. Töökoormuse teise klastrisse viimine on siis marsruudiplaani kontrollimise harjutus, mitte kujutise muudatus, mis vaikselt töötamise lõpetab.