Docker-тің әдепкі пулын өзгерту желілерді қайта нөмірлемейді
default-address-pools параметрін өзгерту тек жаңа автоматты желілерді басқарады. Қазірдің өзінде пайдаланып жатқан ауқымдарды түгендеп, содан кейін жұмыс істеп тұрған желілерді көшіруді жоспарлаңыз.
default-address-pools параметрін өзгерту сізде бұрыннан бар желілерді қайта нөмірлемейді, және осыны күту — мұқият жоспардың кенеттен үзіліске айналу жолы. Бұл параметр демон жаңа конфигурациямен қайта іске қосылғаннан кейін жасалатын желілер үшін автоматты бөлуді басқарады. Бұрыннан жұмыс істеп тұрғанның бәрі өзіне берілген ішкі желіні сақтайды, өйткені бұл ішкі желі желінің сақталған анықтамасының бөлігі. Аңыз ыңғайлы, өйткені ол бір өзгерту барлық қабаттасуды түзетеді деп ұсынады, ал шындық — екі бөліктен тұратын жұмыс: шынымен бос ауқымды таңдаңыз, содан кейін бос емес желілерді көшіріңіз.
Аңыз: пулды бір рет өзгерту қабаттасуды түзетеді
Аңыздың нақты пішіні бар. Біреу Docker-дің әдепкі пулын өзгертуге болатынын оқып, оны өзгертеді, демонды қайта іске қосады және контейнер желісі енді кеңсе VPN-мен соқтығыспайды деп қорытынды жасайды. Ескі желі әлі де сонда, әлі қосылған және соқтығысатын мекенжайды әлі ұстап тұр.
Өзгергені — бөлгіштің болашақ әрекеті, ол шынымен пайдалы және шынымен шектеулі. Айқын --subnet жоқ жасалған жаңа желілер жаңа пулдан қиылады; бұрыннан барлары сол пулда ешқашан болмаған. Қайта іске қосу желілерді қайта салмайды және контейнерлерді олардың арасында жылжытпайды. Егер өзгерістен кейін де симптом сақталса, өзгеріс нақты болды, ал диагностика толық емес.
Негізгі ауқым және бөлінген префикс
Конфигурацияда шатастыруға оңай екі өріс бар. base — бөлгіш қиятын ауқым, ал size — әр бөлінген желінің префикс ұзындығы, сондықтан 10.10.0.0/16 негізі 24 өлшемімен сол /16 ішінде /24 таратады. Рөлдерді кері аудару сіз ойламаған бөлу үлгісін тудырады, әдетте бір алып желі немесе сарқылған пул.
Пул — брондау, дәлел емес. Docker хосттың маршруттау кестесінде көретін қақтығыстардан жалтарады, ал сіз әлі қосылмаған VPN-ді көре алмайды.
Осы шектеу — саналы таңдаудың бүкіл себебі. Салыстыратын ауқымдар — хост жетуге тиіс ауқымдар: кеңсе LAN, корпоративтік VPN-нің ішкі ішкі желілері, зертхана немесе staging префикстері және сол overlay-дегі кез келген басқа контейнер хосты. Демонға тимей тұрып оларды CIDR түрінде жазыңыз, өйткені бастағы тізім дәл маңыздысын өткізіп жібереді. Содан кейін олардың ешқайсысымен қабаттаспайтын негіз таңдап, тізімді орналастырумен бірге сақтаңыз, келесі адам бұл жаттығуды есте сақтаудан қайталамасын.
Таңдамас бұрын түгендеңіз
Алдымен бар нәрсені түгендеңіз. docker network ls желілерді тізімдейді, ал docker network inspect bridge -f '{{.IPAM.Config}}' нақты желі пайдаланатын ішкі желіні шығарады. Пайдаланушы анықтаған әр желі үшін қайталаңыз, өйткені Compose жобалары өзіндікін жасайды, ал compose файлындағы айқын --subnet пулды толығымен айналып өтеді.
Осы соңғы тармақ — көшіруден кейін де өмір сүретін тармақ. Пулды өзгерту әріптесіңіздің compose файлында 172.18.0.0/16 бекітуіне кедергі болмайды, ал қақтығыс басқа автормен қайта оралады.
Бұрыннан барды көшіру
Бар желілерді көшіру — бөлек, қолдау көрсетілетін операция. Әр зардап шеккен желіні жаңа ішкі желімен қайта жасау керек, бұл оны пайдаланатын контейнерлерді ажыратып, қайта қосуды білдіреді, ал желіні қайта жасау оның контейнер қосылымдарын жылжытудың орнына жояды. Томдар мен конфигурацияны сақтаңыз және қайта жасауды деректерді қалпына келтіру емес, орналастыру ретінде қарастырыңыз. Жұмысты техникалық қызмет көрсету терезесінде орындаңыз, өйткені қайта жасалған желідегі контейнерлер жоспарлағаныңызға қарамастан қайта іске қосылады.
Құжатталған демон конфигурациясы мен қайта іске қосу процедурасын орындаңыз және үзілісті үйлестіріңіз. Бір демоны бар хостта systemctl restart docker контейнерлерді олардың қайта іске қосу саясатына сәйкес қайта іске қосады, және бұл туралы кейін емес, алдын ала білген жөн.
Содан кейін өзгеріс түзетуге тиіс екі нәрсені тексеріңіз. Жаңа ішкі желіні docker network inspect арқылы қарап, оның таңдалған негіздің ішінде екеніне көз жеткізіңіз, содан кейін өкілдік VPN межелігіне маршрутты ip route get 10.20.30.40 арқылы тексеріп, ол күткен жерге баратынына, көпірге емес екеніне көз жеткізіңіз. Қызметтерді табу мен контейнераралық байланысты да тексеріңіз, өйткені басқа мекенжайлаумен қайта жасалған желі атауларды шешуді қолданба қатесіне ұқсайтын түрде бұзуы мүмкін.
Содан кейін де не бұзылады
Тұрақты бөлігі — жазба. Бөлу тізімін, таңдалған негіз бен өлшемді және қайта жасалған желілерді орналастырумен бір жерде сақтаңыз.
Ауқымның жеке болуы оны қайта пайдалануға қауіпсіз етпейді. 10.0.0.0/8 жеке және сонымен бірге жолдың бір жерінде бұрыннан пайдаланылып жатқан болуы ықтимал, сондықтан жауап — бір блокқа басымдық емес, нақты брондау. Docker желілік құжаттамасы ішкі желілерді автоматты бөлуді және пул өрістерін сипаттайды. Ауқымды тиянақты көрінетініне қарай емес, жетуге тиіс жеріңізге қарай таңдаңыз.