GKE подууд 1.14-ийн дараа VPN хандалтаа алдсан: эх сурвалжийг засах хоёр арга
1.14-ийн дараа подууд VPN-д өөрийн хаягаар хүрдэг тул peer-үүд хариултыг хаядаг. Эх сурвалжийн гэрээг сонгоод, дараа нь nonMasqueradeCIDRs-ийг тохируулна уу.
Шинэчлэлт ирж, туннелийн нөгөө талын системүүд өнгөрсөн долоо хоногт ажиллаж байсан подуудын урсгалыг татгалзаж эхэлдэг. Туннель ажиллаж байна, галт хананы дүрэм хөндөгдөөгүй, хэн ч peer-ийн бодлогыг засаагүй. Өөрчлөгдсөн зүйл кластерийн логт харагдахгүй: тэдгээр системүүд одоо харж буй эх хаяг. Энэ зөрүү сүлжээний тасалдал мэт харагдаж, зөвшөөрлийн асуудал мэт ажилладаг алдааг тайлбарлаж байна.
Хоёр хүчинтэй хариулт байгаа бөгөөд тэд таныг өөр өөр газарт хүргэнэ. ConfigMap-ыг засахаас өмнө эх сурвалжийн гэрээг сонгоно уу.
Суулгахаа больсон анхдагч дүрэм
GKE-ийн өмнөх хувилбарууд masquerade дүрмийг суулгадаг байсан бөгөөд очих газар 10.0.0.0/8-аас гадагш байх бүрт подуудын эх сурвалжийг зангилааны хаягаар сольдог байв. Тэр хүрээний доторх VPN гарц подын хаягийг хардаг байсан бол цаашид байгаа бүхэн зангилаанаас ирсэн мэт харагдаж байв. Peer-үүд зангилааны хаягийг тойруулан зөвшөөрлийн жагсаалт, буцах маршрут барьсан, учир нь тэдний ажигласан зүйл нь тэр байв.
Дараагийн хувилбарууд тэр анхдагч дүрмийг суулгахаа болив. Подуудын урсгал одоо очих газар нь юу ч байсан подын хаягаар гарцанд хүрдэг. Зөвхөн зангилааны хаягийг маршрутладаг peer хариултыг хаяж, аль ч тал хэрэгтэй лог бичдэггүй. Хүсэлт холын төгсгөлд бүр амжилттай болж магадгүй бөгөөд энэ нь алдааг мөрдөхөд төвөгтэй болгодог.
Үхсэн бүрэлдэхүүн гэсэн утгаар юу ч эвдээгүй. Хоёр тал аль эх сурвалж хууль ёсны талаар зүгээр л санал нийлэхгүй байна.
Peer-ийн харах ёстой эх сурвалжийг сонгоно уу
Подын хаягийг хадгалах нь илүү нарийвчлалтай гэрээ. Холын тал урсгалыг үүсгэсэн ажлын ачааллыг хардаг, лог шудрага хэвээр байна, под бүрийн бодлого боломжтой болно. Үнэ нь peer подын угтварыг авч явах ёстой.
Зангилааны хаягийг хадгалах нь хямд гэрээ. Тэр очих газрын хувьд masquerade-ийг дахин асаахад peer аль хэдийн итгэдэг хаягийг харсаар байна.
Нэг асуулт тэдний хооронд шийднэ: peer эх сурвалжтай юу хийдэг вэ? Хэрэв лог бичиж, эх сурвалж тус бүрийн бодлого хэрэглэж, эсвэл нарийн буцах маршрут шаарддаг бол подын хаяг нэмэлт тохиргоог зөвтгөнө. Зөвхөн хариулт илгээх шаардлагатай бол masquerade бага зарцуулж, нөгөө талаас юу ч шаардахгүй. Хоёр баг бичээд тавьбал аль ч сонголт хамгаалагдана.
Гурав дахь сонголт ихэвчлэн алдаа: бүгдийг masquerade хийж, урсгалыг холбох чадвараа алдах. Peer зангилааны хаягаас өөр юуг ч маршрутлаж чадахгүй бол л үүнээс зайлсхий.
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 хүсэлтийн эх сурвалжийг өөрчилдөг, өөр юуг ч биш. Peer ямар ч эх сурвалж авсан, түүн рүү буцах зам дахин хэрэгтэй хэвээр, кластерт ч peer рүү чиглэсэн зам хэрэгтэй хэвээр.
VPN гарц дээрх бичлэг хоёр алдааг хурдан ялгана. Подын хаягаар ирээд хэзээ ч хариулт авахгүй байгаа пакетууд нь peer-т подын угтварт зам байхгүй гэсэн үг. Гарц дээр гарч ирээд кластерт хэзээ ч хүрэхгүй хариулт нь локал зам дутуу гэсэн үг. Ямар ч тохиолдолд гэрээг тасалбарт бич: peer ямар эх сурвалжийг хардаг, хариултыг ямар угтвар руу буцаадаг.
Шинэчлэлт бүрийн дараа дахин шалга
Masquerade-ийн анхдагч зан төлөв аль хэдийн нэг удаа өөрчлөгдсөн бөгөөд зангилааны олонлогийг солих нь кластерийн сүлжээг дахин тохируулж болно. Эх сурвалжийн гэрээг таамаглах зүйл биш, шалгах зүйл гэж үз.
Шинэчлэлтийн дараа нэг подоос локал үйлчилгээ рүү нэг хүсэлт илгээж, peer-ийн лог бичсэн эх сурвалжийг унш. Тэр нэг ажиглалт туннелийн төлөвийн хуудас баяртайгаар эрүүл гэж мэдээлэх регрессийг барьдаг. Үүнийг давтах нь нэг минут зарцуулж, дараагийн хүний нэг оройг хэмнэдэг.