Podi GKE so po 1.14 izgubili dostop do VPN: dva načina za popravilo vira
Po 1.14 podi dosežejo VPN z lastnimi naslovi, zato vrstniki zavržejo odgovore. Izberite pogodbo o viru in nato nastavite nonMasqueradeCIDRs v skladu z njo.
Prihaja posodobitev in sistemi na drugi strani tunela začnejo zavračati promet podov, ki je deloval prejšnji teden. Tunel je vzpostavljen, pravila požarnega zidu so nedotaknjena in nihče ni urejal politike vrstnika. Kar se je spremenilo, je v dnevnikih gruče nevidno: naslov vira, ki ga ti sistemi zdaj vidijo. Ta vrzel pojasnjuje okvaro, ki je videti kot izpad omrežja in se obnaša kot težava z dovoljenji.
Obstajata dva veljavna odgovora in vodita na različna mesta. Izberite pogodbo o viru, preden uredite ConfigMap.
Privzeto pravilo, ki se je prenehalo nameščati
Starejše izdaje GKE so namestile pravilo masquerade, ki je zamenjalo vire podov z naslovom vozlišča vsakič, ko je bil cilj zunaj 10.0.0.0/8. Prehod VPN znotraj tega obsega je videl naslov poda, medtem ko je vse dlje izgledalo, kot da prihaja z vozlišča. Vrstniki so zgradili sezname dovoljenih in povratne poti okoli naslovov vozlišč, ker so to opazovali.
Novejše izdaje so to privzeto pravilo prenehale nameščati. Promet podov zdaj prispe na prehod z naslovi podov, ne glede na cilj. Vrstnik, ki usmerja samo naslove vozlišč, zavrže odgovore in nobena stran ne zapiše koristnega vnosa v dnevnik. Zahteva lahko na oddaljeni strani celo uspe, in prav to naredi okvaro težko sledljivo.
Nič ni pokvarjeno v smislu mrtve komponente. Obe strani se preprosto ne strinjata, kateri vir je zakonit.
Izberite vir, ki naj ga vrstnik vidi
Ohranjanje naslovov podov je natančnejša pogodba. Oddaljena stran vidi delovno obremenitev, ki je ustvarila promet, dnevniki ostanejo pošteni in politika za vsak pod postane mogoča. Cena je, da mora vrstnik nositi predpono podov.
Ohranjanje naslovov vozlišč je cenejša pogodba. Znova vklopite maskiranje za ta cilj in vrstnik bo še naprej videl naslov, ki mu že zaupa.
Med njima odloči eno vprašanje: kaj vrstnik počne z virom? Če beleži, uporablja politiko za posamezni vir ali vsiljuje ozko povratno usmerjanje, naslovi podov upravičujejo dodatno konfiguracijo. Če mora le pošiljati odgovore, maskiranje stane manj in od druge strani ne zahteva ničesar. Vsaka izbira je branljiva, dokler jo obe ekipi zapišeta.
Tretja možnost je običajno napaka: maskirati vse in izgubiti zmožnost pripisovanja prometa. Izogibajte se ji, razen če vrstnik res ne more usmerjati ničesar razen naslovov vozlišč.
Usmerite nonMasqueradeCIDRs na resnične obsege
GKE poganja ip-masq-agent v kube-system in njegov ConfigMap navaja cilje, ki preskočijo maskiranje. Da bi ohranili vire podov proti tunelu, obseg podov, podomrežje vozlišča in lokalna predpona vsi spadajo na ta seznam.
Zamenjajte vzorčne vrednosti z obsegi iz svoje gruče. Seznama ne delajte širšega, kot zahteva potreba, ker vsak dodaten vnos spremeni, kaj vidi nek drug cilj. Trije vnosi spodaj predstavljajo omrežje podov, podomrežje vozlišča in predpono za tunelom:
nonMasqueradeCIDRs:
- 10.12.0.0/14
- 10.100.0.0/16
- 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60sVnos 0.0.0.0/0 onemogoči maskiranje za vse cilje, kar spremeni, kako nepovezane delovne obremenitve izgledajo zunanjim storitvam, in je redko namerno. Agent znova prebere svojo konfiguracijo ob resyncInterval, zato ponovni zagon običajno ni potreben. Preverite, ali pod agenta teče, in nato odprite priloženo datoteko v njem. Prav branje te datoteke dokazuje, da je sprememba prispela.
Povratna pot je druga polovica
Maskiranje spremeni vir zahteve in nič drugega. Kateri koli vir vrstnik prejme, še vedno potrebuje pot nazaj do njega, gruča pa še vedno potrebuje pot proti vrstniku.
Zajem na prehodu VPN hitro loči obe okvari. Paketi, ki prispejo z naslovi podov in nikoli ne dobijo odgovora, pomenijo, da vrstniku manjka pot za predpono podov. Odgovor, ki se pojavi na prehodu, a nikoli ne doseže gruče, pomeni, da manjka lokalna pot. Pogodbo v vsakem primeru zapišite v zahtevek: kateri vir vrstnik vidi in na katero predpono usmerja odgovor.
Po vsaki posodobitvi znova preverite
Privzeto vedenje maskiranja se je že enkrat spremenilo in zamenjava nabora vozlišč lahko ponastavi omrežje gruče. Pogodbo o viru obravnavajte kot nekaj, kar je treba preveriti, ne pa privzeti.
Po posodobitvi pošljite eno zahtevo iz poda v lokalno storitev in preberite vir, ki ga vrstnik zapiše v dnevnik. To eno opazovanje ujame regresijo, ki bi jo stran stanja tunela z veseljem poročala kot zdravo. Ponavljanje stane minuto in prihrani naslednji osebi večer.