Մասնավոր API-ն պատասխանում է ձեր նոութբուքից, և minikube-ում գտնվող Pod-ը չի կարող հասնել դրան։ Հոսթի վրա որևէ բան փոխելուց առաջ անվանեք ակտիվ պրոֆիլի հետևում գտնվող դրայվերը, որովհետև այդ մեկ փաստը որոշում է, թե որ ցանցից է իրականում դուրս գալիս հարցումը։ Այնուհետև ստուգեք նույն endpoint-ը հոսթից, հանգույցից և Pod-ից։ Այդ երեքից միայն մեկն է այն, ինչը ձախողվել է, և սխալ ենթադրությունը արժենում է կես օր։

Քայլ 0՝ անվանեք դրայվերը և աղբյուրը

Հարցրեք minikube-ին, թե որ պրոֆիլն է ակտիվ և ինչպես է աշխատում։ Կոնտեյների դրայվերը հանգույցը տեղադրում է ձեր մեքենայի կոնտեյների մեջ, VM դրայվերը տեղադրում է այն վիրտուալ մեքենայում, իսկ հեռավոր դրայվերը տեղադրում է այն բոլորովին այլ տեղ։

minikube profile list
minikube status
kubectl config current-context

Դրանից գրի առեք, թե որտեղից է սկիզբ առնում հարցումը։ Պատասխանը որոշում է, թե ում resolver-ը և որ երթուղիներն են կարևոր, և դա միշտ չէ, որ հոսթինն է։ Նույն նոութբուքի երկու պրոֆիլ կարող են բոլորովին տարբեր կերպ վարվել նույն URL-ի համար։

ContextWhat has to work
Host processHost resolver and host route to the private destination
minikube nodeThe node's own resolver and its outbound path
PodPod 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 և proxy ձեռնարկը քննարկում է այս կոնֆլիկտները և իր օրինակային տիրույթները դիտարկում է որպես ստուգման ենթակա բաներ, ոչ որպես համընդհանուր ցանկ։ Կարդացեք այն ձեր իրականում ունեցած պրոֆիլի հետ միասին։

Այնտեղ, որտեղ իրական համընկնում կա, աջակցվող պատասխանը չհամընկնող տիրույթն է կամ VPN-ի սեփականատիրոջ կողմից հաստատված դիտավորյալ լոկալ մուտքի քաղաքականությունը։ Ծառայությունների տիրույթը փոխելը նույնը չէ, ինչ pod-երի տիրույթը փոխելը, և ոչ մեկը նույնը չէ, ինչ հանգույցների ցանցը փոխելը։

Կորպորատիվ թունելն անջատելը, որպեսզի լոկալ կլաստերը աշխատի, շրջանցում չէ. դա քաղաքականության որոշում է, որը պետք է կայացնի մեկ ուրիշը։ Տարեք այն այդ մարդուն, փոխարենը այն լուռ անելու բոլորի տուն գնալուց հետո։ Եթե արդեն արել եք, վերադարձրեք նախքան հարցնելը։

Քայլ 4՝ առանձնացրեք proxy-ն, DNS-ը և ձախողման չորս ձևերը

Եթե proxy է պահանջվում, որոշեք, թե որ կոնտեքստին է այն պետք։ Հոսթի վրա բրաուզերի կարգավորումը չի կարգավորում հանգույցի ներսում գտնվող գործընթացը, և Pod-ին անհրաժեշտ են միջավայրի փոփոխականները կամ կլաստերի մակարդակի proxy կարգավորում։

Ապա դասակարգեք ձախողումը՝ այն նկարագրելու փոխարեն։ Անունը, որը չի լուծվում, DNS է։ Անունը, որը լուծվում է և մերժում միացումը, երթուղավորում է կամ listener։ Միացումը, որը հաստատվում է և ձախողվում ինքնության վրա, TLS է։ Հաջող միացումը սխալի մարմնով հավելվածն է։

Այդ չորսից յուրաքանչյուրը պատկանում է տարբեր ուղղման, և դրանցից միայն մեկն է VPN-ի մասին։ Գրի առեք, թե որն եք դիտարկել յուրաքանչյուր կոնտեքստում, և հաջորդ մարդը ժառանգում է ապացույցներ, այլ ոչ թե պատմություն։

Առնչվող հոդվածներ