GKE-ի պոդերը կորցրին VPN հասանելիությունը 1.14-ից հետո. աղբյուրը շտկելու երկու եղանակ
1.14-ից հետո պոդերը VPN հասնում են իրենց սեփական հասցեներով, ուստի գործընկերները դեն են նետում պատասխանները։ Ընտրեք աղբյուրի պայմանագիրը, ապա nonMasqueradeCIDRs-ը համապատասխանեցրեք դրան։
Գալիս է թարմացում, և թունելի մյուս կողմի համակարգերը սկսում են մերժել պոդերի այն երթևեկությունը, որը աշխատում էր նախորդ շաբաթ։ Թունելը բաց է, firewall-ի կանոնները ձեռք չեն տրվել, և ոչ ոք չի խմբագրել գործընկերոջ քաղաքականությունը։ Փոփոխությունը անտեսանելի է կլաստերի մատյաններում՝ այն աղբյուրի հասցեն, որը այդ համակարգերը հիմա տեսնում են։ Այդ բացը բացատրում է խափանում, որը նման է ցանցի ընդհատման և իրեն պահում է որպես թույլտվության խնդիր։
Գոյություն ունի երկու վավեր պատասխան, և դրանք տանում են տարբեր տեղեր։ Ընտրեք աղբյուրի պայմանագիրը նախքան ConfigMap-ը խմբագրելը։
Լռելյայն կանոնը, որը դադարեցին տեղադրել
GKE-ի ավելի վաղ թողարկումները տեղադրում էին masquerade կանոն, որը պոդերի աղբյուրները փոխարինում էր հանգույցի հասցեով, երբ նպատակակետը գտնվում էր 10.0.0.0/8-ից դուրս։ Այդ տիրույթի ներսում գտնվող VPN դարպասը տեսնում էր պոդի հասցեն, մինչդեռ ավելի հեռու ամեն ինչ թվում էր, թե գալիս է հանգույցից։ Գործընկերները կառուցել են թույլատրվածների ցանկեր և վերադարձի ուղիներ հանգույցների հասցեների շուրջ, որովհետև հենց դա էին դիտարկում։
Ավելի ուշ թողարկումները դադարեցին տեղադրել այդ լռելյայն կանոնը։ Պոդերի երթևեկությունը հիմա դարպասին հասնում է պոդերի հասցեներով՝ անկախ նպատակակետից։ Գործընկերը, որը երթուղավորում է միայն հանգույցների հասցեները, դեն է նետում պատասխանները, և ոչ մի կողմ օգտակար գրառում չի անում մատյանում։ Հարցումը կարող է նույնիսկ հաջողվել հեռու ծայրում, և հենց դա է խափանումը հետապնդելը շփոթեցնող դարձնում։
Ոչինչ կոտրված չէ մեռած բաղադրիչի իմաստով։ Երկու կողմերը պարզապես համաձայն չեն, թե որ աղբյուրն է օրինական։
Ընտրեք այն աղբյուրը, որը գործընկերը պետք է տեսնի
Պոդերի հասցեները պահելը ավելի ճշգրիտ պայմանագիր է։ Հեռու կողմը տեսնում է այն աշխատանքային բեռը, որը ստեղծել է երթևեկությունը, մատյանները մնում են ազնիվ, և յուրաքանչյուր պոդի քաղաքականությունը դառնում է հնարավոր։ Գինն այն է, որ գործընկերը պետք է կրի պոդերի նախածանցը։
Հանգույցների հասցեները պահելը ավելի էժան պայմանագիր է։ Կրկին միացրեք masquerade-ը այդ նպատակակետի համար, և գործընկերը կշարունակի տեսնել հասցե, որին արդեն վստահում է։
Մեկ հարց է որոշում նրանց միջև՝ ինչ է անում գործընկերը աղբյուրի հետ։ Եթե նա գրանցում է, կիրառում է քաղաքականություն ըստ աղբյուրի կամ պարտադրում է նեղ վերադարձի երթուղավորում, ապա պոդերի հասցեները արդարացնում են լրացուցիչ կարգավորումը։ Եթե նրան պետք է միայն պատասխաններ ուղարկել, masquerade-ը ավելի քիչ արժե և ոչինչ չի պահանջում մյուս կողմից։ Ցանկացած ընտրություն պաշտպանելի է, քանի դեռ երկու թիմերն այն գրի են առնում։
Երրորդ տարբերակը սովորաբար սխալ է՝ masquerade ամեն ինչի վրա և կորցնել երթևեկությունը վերագրելու ունակությունը։ Խուսափեք դրանից, եթե գործընկերը իսկապես չի կարող երթուղավորել ոչինչ, բացի հանգույցների հասցեներից։
Ուղղեք nonMasqueradeCIDRs-ը իրական տիրույթներին
GKE-ն kube-system-ում գործարկում է ip-masq-agent-ը, և նրա ConfigMap-ը թվարկում է այն նպատակակետերը, որոնք շրջանցում են masquerade-ը։ Պոդերի աղբյուրները դեպի թունել պահպանելու համար պոդերի տիրույթը, հանգույցի ենթացանցը և տեղական նախածանցը բոլորը պատկանում են այդ ցանկին։
Փոխարինեք օրինակային արժեքները ձեր սեփական կլաստերի տիրույթներով։ Ցանկը մի դարձրեք ավելի լայն, քան պահանջը թելադրում է, որովհետև յուրաքանչյուր լրացուցիչ գրառում փոխում է, թե ինչ է տեսնում մեկ այլ նպատակակետ։ Ստորև երեք գրառումները ներկայացնում են պոդերի ցանցը, հանգույցի ենթացանցը և թունելի հետևի նախածանցը:
nonMasqueradeCIDRs:
- 10.12.0.0/14
- 10.100.0.0/16
- 172.16.0.0/12
masqLinkLocal: false
resyncInterval: 60s0.0.0.0/0 գրառումը անջատում է masquerade-ը բոլոր նպատակակետերի համար, ինչը փոխում է, թե ինչպես են անկապ աշխատանքային բեռները երևում արտաքին ծառայություններին, և հազվադեպ է դիտավորյալ։ Գործակալը վերընթերցում է իր կարգավորումը resyncInterval-ին, ուստի վերագործարկումը սովորաբար անհրաժեշտ չէ։ Ստուգեք, որ գործակալի պոդը աշխատում է, ապա բացեք դրա ներսում տեղադրված ֆայլը։ Հենց այդ ֆայլի ընթերցումն է ապացուցում, որ փոփոխությունը հասել է։
Պատասխանի ուղին մյուս կեսն է
Masquerade-ը փոխում է հարցման աղբյուրը և ուրիշ ոչինչ։ Ինչ աղբյուր էլ ստանա գործընկերը, նրան դեռ պետք է դեպի այն վերադարձի ուղի, և կլաստերին դեռ պետք է ուղի դեպի գործընկերը։
VPN դարպասի վրա կատարված որսումը արագ բաժանում է երկու խափանումները։ Պոդերի հասցեներով ժամանող և երբեք պատասխան չստացող փաթեթները նշանակում են, որ գործընկերը պոդերի նախածանցի համար ուղի չունի։ Դարպասի վրա հայտնված, բայց երբեք կլաստեր չհասնող պատասխանը նշանակում է, որ տեղական ուղին բացակայում է։ Ամեն դեպքում պայմանագիրը գրեք տոմսի մեջ՝ ինչ աղբյուր է տեսնում գործընկերը և ինչ նախածանցի է վերադարձնում։
Յուրաքանչյուր թարմացումից հետո նորից ստուգեք
Masquerade-ի լռելյայն վարքը արդեն մեկ անգամ փոխվել է, և հանգույցների լողավազանի փոխարինումը կարող է վերակայել կլաստերի ցանցը։ Վերաբերվեք աղբյուրի պայմանագրին որպես ստուգելիքի, ոչ թե ենթադրության։
Թարմացումից հետո մեկ հարցում ուղարկեք պոդից տեղական ծառայության և կարդացեք այն աղբյուրը, որը գրանցում է գործընկերը։ Այդ մեկ դիտարկումը բռնում է ռեգրեսիա, որը թունելի կարգավիճակի էջը ուրախությամբ կհայտարարի որպես առողջ։ Կրկնելը արժե մեկ րոպե և խնայում է հաջորդ մարդուն մի երեկո։