Docker-ийн pool давхцлын алдаа нь VPN маршрутын асуудал биш
Нэг алдаа хуваарилах үед, нөгөө нь маршрут өөрчлөгдсөний дараа гардаг. Контейнерын хаяг эсвэл туннельд хүрэхээс өмнө IPAM дэд сүлжээг уншина уу.
Docker энэ хаягийн орон зайд pool өөр нэгтэй давхцаж байна гэсэн мессежтэй сүлжээ үүсгэхээс татгалздаг бөгөөд хэн нэгэн VPN маршрут л шалтгаан байх ёстой гэж шийддэг. Тийм байж болохгүй. Тэр алдаа нь pool хуваарилагдаж байх үед, нэг ч пакет байхын өмнө үүсдэг бөгөөд гараар хийсэн цөмийн маршрут түүнд ямар ч нөлөөгүй. VPN нэг алхамын дараа чухал болдог, өөрөөр хэлбэл хаягтай болсон контейнер маршрут гарч ирсний дараа хүрч болохгүй болдог. Хоёр асуудал, хоёр багц нотолгоо, тэдгээрийг холих нь аль нэг ч засдаггүй өөрчлөлтийг бий болгодог.
Ижил төстэй хоёр алдаа
Хуваарилалтын алдаа нь арифметик юм. Docker таны хүссэн дэд сүлжээг өөрийн удирдаж буй дэд сүлжээнүүдтэй харьцуулж, огтлолцол олж, татгалздаг. Одоохондоо юу ч ажиллахгүй байгаа тул маршрут, контейнер, шалгах хөдөлгөөн байхгүй.
Ажиллах үеийн шинж тэмдэг нь хүртээмжийн асуулт юм. Өчигдөр хариулж байсан контейнер одоо хариулахгүй байна, хостны маршрутжуулалтын хүснэгтэд ямар нэг зүйл өөрчлөгдсөн. Контейнер хаягаа хадгалсаар байна; асуулт нь тэр хаяг ямар замаар явах вэ гэдэгт.
Хоёулаа хаягийн төлөвлөгөөний асуудал. Зөвхөн нэг нь Docker-ийн асуудал.
Эхлээд хуваарилагдсан pool-уудыг уншина уу
Сүлжээг жагсааж, огтлолцож болохыг нь шалгана уу. Дэд сүлжээ нь IPAM тохиргоонд байдаг бөгөөд холбогдсон контейнерууд тусдаа жагсаагддаг:
docker network ls
docker network inspect EXISTING_NETWORK
Тэр дэд сүлжээг шинэ сүлжээний шаардаж буй pool-той харьцуулж, Compose төсөл бүрт өөрийн анхдагч сүлжээг үүсгэдгийг санаарай. Мартсан төсөлтэй зөрчил нь демонтой зөрчилтэй яг адилхан харагдана.
Үйлчилгээн дээрх статик ipv4_address нь нэг контейнерын хаяг бөгөөд pool-ийн тодорхойлолт биш. Үүнийг өөрчлөх нь давхцлыг арилгахгүй, учир нь давхцал нь контейнеруудын хооронд биш, сүлжээний дэд сүлжээнүүдийн хооронд байдаг. Docker-ийн network-create лавлагаа энгийн гүүрэн хуваарилалтад давхцахгүй дэд сүлжээг шаардаж, нэгийг нь тодорхой хэрхэн сонгохыг баримтжуулдаг.
VPN-ийг даван тулах префикс сонгоно уу
Одоогийн зөрчил ба ирээдүйн маршрутыг нэг сонголтоор шийддэг тул нэг удаа хийнэ үү. Кандидат мужийг LAN, хост хүрч чадах бүх VPN очих газар, ашиглагдаж буй бусад overlay-той харьцуулна уу.
Docker-ийг хангаж, алсын сүлжээтэй мөргөлддөг префикс нь танд цэвэрхэн эхэлж, туннель өргөгдсөн мөчид хүрч болохгүй болох контейнерыг өгдөг. Энэ бол энэ нийтлэлийн хоёр дахь алдаа бөгөөд одоо зайлсхийхээс илүү дараа нь оношлох нь хамаагүй хэцүү.
Сонгосон мужийг дараагийн төсөл уншиж болох газарт бичээрэй. Хуваарилагдсан префиксүүдийн нэг мөрийн бүртгэл нь тайлбаргүй долоо хоногийн таймаутаас хямд.
Сүлжээг санаатайгаар хасаж эсвэл өөрчил
Шинэ Compose сүлжээний хувьд сүлжээний IPAM тохиргоонд ашиглагдаагүй префиксыг тохируулна уу. Одоо байгаа төслийн хувьд дахин дугаарлалтыг төлөвлөнө үү: тогтмол хаяг, хамааралтай үйлчилгээ, сүлжээг дахин үүсгэх алхамыг бүгдийг нь тооцох ёстой, учир нь YAML засварлах нь ажиллаж буй сүлжээг дахин дугаарлахгүй.
Хэрэв хуучирсан сүлжээ зөрчилтэй хуваарилалтыг эзэмшдэг бол түүнийг устгахын өмнө хэн холбогдсоныг шалгана уу. docker network rm идэвхтэй endpoint байх үед татгалздаг, docker stop нь сүлжээний нэр биш контейнерын нэр эсвэл ID авдаг. Контейнер зогсоох нь pool-ыг хадгалж буй сүлжээний тодорхойлолтыг ч устгахгүй.
Өргөн prune нь оношлогооны хэрэгсэл биш. Энэ нь хамааралгүй төслүүдэд хүрч, таны цуглуулах гэж байсан нотолгоог устгадаг.
Анхдагч pool-ууд зөвхөн дараагийн хуваарилалтад тусална
Демоны анхдагч хаягийн pool тохиргоо нь ирээдүйн автомат хуваарилалтыг таны нөөцөлсөн мужаас гадуур байлгаснаар сайжруулдаг. Энэ нь аль хэдийн байгаа сүлжээнд буцаан хаяг олгохгүй, мөн өөр тодорхой дэд сүлжээтэй давхцаж буй тодорхой дэд сүлжээг шийдэхгүй.
Энэ тохиргоог өөрийн restart-тай тусдаа, төлөвлөсөн өөрчлөлт гэж үзэж, нэг төслийн засварын хэсэг гэж үзэж болохгүй. Хоёрыг холих нь демоны restart хамааралгүй мөрдөн байцаалтын дунд унахыг илэрхийлнэ. Үүнийг өөрийн цонхонд төлөвлө. Дараа нь нэг шинэ автомат хуваарилалт үнэхээр нөөцөлсөн мужаас гадуур унасныг баталгаажуул.
Үүсгэлт амжилттай болсны дараа бодитоор ажиллаж буй дэд сүлжээг шалгаж, дараа нь VPN-ийг зорилтот төлөвт нь байлгаж нэг бодит програмын хүсэлт гаргана уу. Хэрэв pool хүчинтэй боловч нэвтрэх боломж одоо ч бүтэлгүйтвэл үлдсэн ажил нь маршрут сонголт, шүүлтүүр, буцах зам юм. Энэ нь ажиллах үеийн мөрдөн байцаалт бөгөөд хуваарилалтын алдааг буцаан утгагүй болгохгүй.
Ажлын дараалал: хуваарилагдсан pool-уудыг уншиж, Docker болон VPN очих газруудыг хоёуланг нь тойрсон префикс сонгож, сүлжээг санаатайгаар дахин үүсгэж, дараа нь туннель өргөгдсөн байдалд нэг хүсэлтийг туршина уу.