Príde aktualizácia a systémy na druhej strane tunela začnú odmietať prevádzku podov, ktorá predchádzajúci týždeň fungovala. Tunel je hore, pravidlá firewallu sú nedotknuté a nikto needitoval politiku peera. Čo sa zmenilo, nie je v logoch clusteru vidieť: zdrojová adresa, ktorú tieto systémy teraz vidia. Táto medzera vysvetľuje poruchu, ktorá vyzerá ako výpadok siete a správa sa ako problém s oprávneniami.

Existujú dve platné odpovede a vedú na rôzne miesta. Vyberte kontrakt zdroja, skôr než začnete editovať ConfigMap.

Predvolené pravidlo, ktoré sa prestalo inštalovať

Staršie verzie GKE inštalovali pravidlo masquerade, ktoré nahrádzalo zdroje podov adresou uzla vždy, keď cieľ ležal mimo 10.0.0.0/8. VPN brána v tomto rozsahu videla adresu podu, zatiaľ čo čokoľvek ďalej vyzeralo, akoby prichádzalo z uzla. Peery stavali zoznamy povolených adries a spätné trasy okolo adries uzlov, pretože to pozorovali.

Novšie verzie prestali toto predvolené pravidlo inštalovať. Prevádzka podov teraz prichádza na bránu s adresami podov, akýkoľvek je cieľ. Peer, ktorý smeruje len adresy uzlov, odpovede zahadzuje a žiadna strana nezapíše užitočný záznam do logu. Požiadavka môže na vzdialenej strane dokonca uspieť, a práve to robí poruchu mätúcou pri hľadaní.

Nič nie je pokazené v zmysle mŕtvej komponenty. Obe strany sa jednoducho nezhodujú, ktorý zdroj je legitímny.

Vyberte zdroj, ktorý má peer vidieť

Zachovanie adries podov je presnejší kontrakt. Vzdialená strana vidí záťaž, ktorá prevádzku vytvorila, logy zostávajú čestné a politika pre jednotlivé pody je možná. Cenou je, že peer musí niesť prefix podov.

Zachovanie adries uzlov je lacnejší kontrakt. Zapnite maskovanie pre tento cieľ znova a peer naďalej vidí adresu, ktorej už dôveruje.

Medzi oboma rozhoduje jedna otázka: čo peer so zdrojom robí? Ak loguje, uplatňuje politiku pre jednotlivé zdroje alebo vynucuje úzke spätné smerovanie, adresy podov odôvodňujú dodatočnú konfiguráciu. Ak potrebuje len odosielať odpovede, maskovanie stojí menej a od druhej strany nič nežiada. Každá voľba je obhájiteľná, kým si ju oba tímy zapíšu.

Tretia možnosť je zvyčajne chyba: maskovať všetko a stratiť schopnosť prevádzku priradiť. Vyhnite sa jej, ak peer naozaj nevie smerovať nič iné ako adresy uzlov.

Namieste nonMasqueradeCIDRs na skutočné rozsahy

GKE spúšťa ip-masq-agent v kube-system a jeho ConfigMap uvádza ciele, ktoré maskovanie preskakujú. Aby sa zdroje podov smerom k tunelu zachovali, patria do tohto zoznamu rozsah podov, podsiet uzla aj lokálny prefix.

Nahraďte ukážkové hodnoty rozsahmi z vášho vlastného clusteru. Nerobte zoznam širší, než vyžaduje požiadavka, pretože každý ďalší záznam mení, čo vidí iný cieľ. Tri záznamy nižšie predstavujú sieť podov, podsiet uzla a prefix za tunelom:

nonMasqueradeCIDRs:
  - 10.12.0.0/14
  - 10.100.0.0/16
  - 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60s

Záznam 0.0.0.0/0 vypne maskovanie pre všetky ciele, čo mení, ako nesúvisiace záťaže vyzerajú pre externé služby, a málokedy je to zámer. Agent znovu čítava svoju konfiguráciu pri resyncInterval, takže reštart zvyčajne nie je potrebný. Skontrolujte, či pod agenta beží, a potom otvorte pripojený súbor v ňom. Práve prečítanie tohto súboru dokazuje, že zmena dorazila.

Spätná cesta je druhá polovica

Maskovanie mení zdroj požiadavky a nič iné. Akýkoľvek zdroj peer dostane, stále k nemu potrebuje trasu späť a cluster stále potrebuje trasu k peerovi.

Snímka na VPN bráne rýchlo oddelí obe poruchy. Pakety, ktoré prichádzajú s adresami podov a nikdy nedostanú odpoveď, znamenajú, že peerovi chýba trasa pre prefix podov. Odpoveď, ktorá sa objaví na bráne, ale nikdy nedorazí do clusteru, znamená, že chýba lokálna trasa. Zapíšte kontrakt do tiketu tak či tak: ktorý zdroj peer vidí a na ktorý prefix smeruje odpoveď.

Po každej aktualizácii znova skontrolujte

Predvolené správanie maskovania sa už raz zmenilo a výmena fondu uzlov môže resetovať sieť clusteru. Berte kontrakt zdroja ako niečo na overenie, nie na predpoklad.

Po aktualizácii pošlite jednu požiadavku z podu na lokálnu službu a prečítajte zdroj, ktorý peer loguje. To jediné pozorovanie zachytí regresiu, ktorú by stránka stavu tunela rada nahlásila ako zdravú. Zopakovanie stojí minútu a ušetrí ďalšiemu človeku večer.

Súvisiace články