minikube жеке API'га жетпейби? Адегенде драйверди текшериңиз
Хост, түйүн жана Pod ар биринин өз маршруттары жана өз resolver'и бар. Драйверди атаңыз, ошол эле endpoint'ти үчөөнөн тең текшериңиз, анан ийгиликсиз болгон контекстти оңдоңуз.
Жеке API ноутбукуңуздан жооп берет, ал minikube ичиндеги Pod ага жете албайт. Хостто бир нерсени өзгөртүүдөн мурун активдүү профилдин артындагы драйверди атаңыз, анткени ушул бир факт сурамдын иш жүзүндө кайсы тармактан чыгарын чечет. Анан ошол эле endpoint'ти хосттон, түйүндөн жана Pod'дон текшериңиз. Ошол үчөөнүн ичинен бир гана нерсе ийгиликсиз болду, ал эми туура эмес божомол түштөн кийинки убакытты кетирет.
0-кадам: драйверди жана келип чыгуу булагын атаңыз
minikube'дан кайсы профиль активдүү жана ал кантип иштеп жатканын сураңыз. Контейнер драйвери түйүндү машинаңыздагы контейнерге жайгаштырат, VM драйвери аны виртуалдык машинага жайгаштырат, ал эми алыскы драйвер аны таптакыр башка жерге жайгаштырат.
minikube profile list
minikube status
kubectl config current-context
Ушундан сурам кайдан келерин жазып алыңыз. Жооп кайсы resolver жана кайсы маршруттар маанилүү экенин аныктайт, жана бул дайыма хосттуку боло бербейт. Бир ноутбуктагы эки профиль бир URL үчүн таптакыр башкача жүрүшү мүмкүн.
| Context | What has to work |
|---|---|
| Host process | Host resolver and host route to the private destination |
| minikube node | The node's own resolver and its outbound path |
| Pod | Pod DNS through cluster services plus the cluster network path |
1-кадам: ошол эле endpoint'ти үч жолу текшериңиз
Бир коопсуз endpoint колдонуңуз жана хост атын, портту жана дарек тобун үч тестте тең бирдей кармаңыз. Алардын кайсынысын болбосун иштетүүлөрдүн ортосунда өзгөртсөңүз, натыйжаларды салыштыруу мүмкүн болбойт.
curl -sS -o /dev/null -w '%{http_code}\n' https://api.corp.example/health
minikube ssh -- curl -sS -o /dev/null -w '%{http_code}\n' https://api.corp.example/health
kubectl run probe --rm -it --image=curlimages/curl --restart=Never -- \
curl -sS -o /dev/null -w '%{http_code}\n' https://api.corp.example/health
Түйүндүн ийгиликтүү image тартуусу жеке хост үчүн аттарды чечүү жөнүндө эч нерсени далилдебейт. Ийгиликтүү ачык сурам андан да азыраакты далилдейт. Натыйжаларды контекст боюнча өзүнчө кармаңыз, анткени үч саптагы мыйзам ченем — диагностика, ал эми жалгыз ийгиликсиздик — белги.
Эгер хост сабы да ийгиликсиз болсо, токтоңуз. Сизде хосттун тармак маселеси бар, ал эми кластер — көңүлдү бурган нерсе.
2-кадам: хосттун кластерге барган жолун сактаңыз
Адамдар унутуучу экинчи багыт бар: хост кластердин өз API'сине жана кызматтарына жете берүүсү керек. VPN кардары minikube түйүндөр тармагы, кызмат диапазону жана pod диапазону үчүн колдонгон префикстер менен атаандашкан маршруттарды орното алат.
Бул болгондо симптом татаалдашат, анткени туннель иштейт, ал эми kubectl жооп берүүнү токтотот же NodePort байланыштарды четке кагат. Бул кластердин бузулушуна окшош, чындыгында ноутбуктун маршруттоо бузулушу.
Туннелди башка нерсе үчүн күнөөлөөдөн мурун хосттун маршруттоо таблицасын minikube диапазондору менен салыштырыңыз. Кабатташуу адатта кластер өзүнө тиешелүү деп күткөн префикс үчүн туннель интерфейсине көрсөткөн так маршрут катары көрүнөт.
3-кадам: VPN'ди өчүрбөстөн кабатташууну чечиңиз
minikube'дун өз VPN жана прокси колдонмосу бул кагылышууларды карайт жана мисал диапазондорун универсалдуу тизме катары эмес, текшериле турган нерселер катары карайт. Аны чындыгында бар профилиңиз менен бирге окуңуз.
Чыныгы кабатташуу бар жерде колдоого алынган жооп — кабатташпаган диапазон же VPN ээси тарабынан бекитилген атайын жергиликтүү кирүү саясаты. Кызмат диапазонун өзгөртүү pod диапазонун өзгөртүү менен бирдей эмес, жана экөө тең түйүндөр тармагын өзгөртүү менен бирдей эмес.
Жергиликтүү кластер иштеши үчүн корпоративдик туннелди өчүрүү — бул айланып өтүү жолу эмес; бул башка бирөө кабыл алышы керек болгон саясий чечим. Баары үйлөрүнө кеткенден кийин аны унчукпай жасоонун ордуна ошол адамга алып барыңыз. Эгер муну мурун жасаган болсоңуз, сураардан мурун кайтарыңыз.
4-кадам: прокси, DNS жана төрт бузулуу түрүн ажыратыңыз
Эгер прокси керек болсо, кайсы контекстке керек экенин аныктаңыз. Хосттогу браузер жөндөөсү түйүн ичиндеги процессти конфигурациялабайт, ал эми Pod айлана-чөйрө өзгөрмөлөрүн же кластер деңгээлиндеги прокси конфигурациясын талап кылат.
Анан бузулууну сүрөттөөнүн ордуна классификациялаңыз. Чечилбеген ат — DNS. Чечилип, байланыштан баш тарткан ат — маршруттоо же listener. Орнотулуп, идентификацияда ийгиликсиз болгон байланыш — TLS. Ката денеси менен ийгиликтүү байланыш — колдонмо.
Ошол төртөөнүн ар бири башка оңдоого таандык, жана алардын бирөө гана VPN жөнүндө. Ар бир контекстте кайсынысын байкаганыңызды жазыңыз, ал эми кийинки адам окуя эмес, далилдерди мураска алат.