Pienāk atjauninājums, un sistēmas tuneļa otrā pusē sāk noraidīt podu satiksmi, kas strādāja iepriekšējā nedēļā. Tunelis ir augšā, ugunsmūra noteikumi nav aizskarti, un neviens nav rediģējis partnera politiku. Tas, kas mainījās, klastera žurnālos nav redzams: avota adrese, ko šīs sistēmas tagad redz. Šī atšķirība izskaidro kļūmi, kas izskatās kā tīkla pārtraukums un uzvedas kā atļauju problēma.

Ir divas derīgas atbildes, un tās ved uz dažādām vietām. Izvēlieties avota līgumu pirms ConfigMap rediģēšanas.

Noklusējuma noteikums, ko pārstāja instalēt

Agrākās GKE versijas instalēja masquerade noteikumu, kas podu avotus aizstāja ar mezgla adresi ikreiz, kad galamērķis atradās ārpus 10.0.0.0/8. VPN vārteja šajā diapazonā redzēja poda adresi, bet viss tālākais izskatījās kā nākošs no mezgla. Partneri veidoja atļauto sarakstus un atgriešanās maršrutus ap mezglu adresēm, jo to viņi novēroja.

Vēlākās versijas pārstāja instalēt šo noklusējuma noteikumu. Podu satiksme tagad nonāk vārtejā ar podu adresēm, lai kāds būtu galamērķis. Partners, kas maršrutē tikai mezglu adreses, atmet atbildes, un neviena puse neieraksta noderīgu žurnāla ierakstu. Pieprasījums var pat izdoties tālajā galā, un tas padara kļūmi grūti izsekojamu.

Nekas nav salūzis mirušas komponentes nozīmē. Abas puses vienkārši nepiekrīt, kurš avots ir likumīgs.

Izvēlieties avotu, kas partnerim būtu jāredz

Podu adrešu saglabāšana ir precīzāks līgums. Tālā puse redz darba slodzi, kas radīja satiksmi, žurnāli paliek godīgi, un politika katram podam kļūst iespējama. Cena ir tā, ka partnerim jānes podu prefikss.

Mezglu adrešu saglabāšana ir lētāks līgums. Ieslēdziet masquerade šim galamērķim vēlreiz, un partners turpinās redzēt adresi, kurai jau uzticas.

Viens jautājums izšķir starp abiem: ko partners dara ar avotu? Ja tas žurnālē, piemēro politiku katram avotam vai uzspiež šauru atgriešanās maršrutēšanu, podu adreses attaisno papildu konfigurāciju. Ja tam tikai jāsūta atbildes, masquerade izmaksā mazāk un neprasa neko no otras puses. Jebkura izvēle ir aizstāvama, ja vien abas komandas to pieraksta.

Trešā iespēja parasti ir kļūda: maskēt visu un zaudēt spēju attiecināt satiksmi. Izvairieties no tās, ja vien partners patiešām nevar maršrutēt neko citu kā mezglu adreses.

Vērsiet nonMasqueradeCIDRs uz īstajiem diapazoniem

GKE darbina ip-masq-agent kube-system vidē, un tā ConfigMap uzskaita galamērķus, kas izlaiž masquerade. Lai saglabātu podu avotus pretī tunelim, podu diapazons, mezgla apakštīkls un vietējais prefikss visi pieder šim sarakstam.

Aizstājiet parauga vērtības ar diapazoniem no sava klastera. Neveidojiet sarakstu platāku, nekā prasa nepieciešamība, jo katrs papildu ieraksts maina to, ko redz kāds cits galamērķis. Trīs ieraksti zemāk apzīmē podu tīklu, mezgla apakštīklu un prefiksu aiz tuneļa:

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

Ieraksts 0.0.0.0/0 izslēdz masquerade visiem galamērķiem, kas maina to, kā nesaistītas darba slodzes izskatās ārējiem pakalpojumiem, un reti ir tīšs. Aģents pārlasa savu konfigurāciju resyncInterval laikā, tāpēc restartēšana parasti nav nepieciešama. Pārbaudiet, vai aģenta pods darbojas, pēc tam atveriet tajā iekļauto failu. Tieši šī faila nolasīšana pierāda, ka izmaiņas ir nonākušas.

Atbildes ceļš ir otra puse

Masquerade maina pieprasījuma avotu un neko citu. Lai kādu avotu partners saņemtu, tam joprojām vajag maršrutu atpakaļ uz to, un klasterim joprojām vajag maršrutu pretī partnerim.

Uztveršana VPN vārtejā ātri atdala abas kļūmes. Paketes, kas ierodas ar podu adresēm un nekad nesaņem atbildi, nozīmē, ka partnerim trūkst maršruta podu prefiksam. Atbilde, kas parādās vārtejā, bet nekad nesasniedz klasteri, nozīmē, ka trūkst vietējā maršruta. Jebkurā gadījumā ierakstiet līgumu biļetē: kādu avotu partners redz un uz kuru prefiksu tas sūta atbildi atpakaļ.

Pārbaudiet vēlreiz pēc katra atjauninājuma

Masquerade noklusējuma uzvedība jau reiz ir mainījusies, un mezglu kopas nomaiņa var atiestatīt klastera tīklu. Uztveriet avota līgumu kā kaut ko pārbaudāmu, nevis pieņemamu.

Pēc atjauninājuma nosūtiet vienu pieprasījumu no poda uz vietējo pakalpojumu un nolasiet avotu, ko partners ieraksta žurnālā. Šis viens novērojums noķer regresiju, ko tuneļa statusa lapa labprāt ziņotu kā veselīgu. Tā atkārtošana izmaksā minūti un ietaupa nākamajam cilvēkam vakaru.

Saistītie raksti