Mae eich gliniadur yn tynnu’r llun yn iawn, ond mae’r pod yn aros yn ImagePullBackOff, ac mae rhywun yn awgrymu rhedeg cleient VPN y cwmni fel sidecar. Ni fydd hynny’n helpu, oherwydd mae’r tyniad yn digwydd cyn bod eich container: mae’r kubelet yn gofyn i’r container runtime ar y node nôl y llun, ac mae’r runtime yn defnyddio namespace rhwydwaith y node. Nid oes gan VPN y tu mewn i’r workload lwybr i’w gynnig, ac mae’n rhaid tynnu ei lun cynorthwyol yntau gyntaf.

Trefn y gweithrediadau sy’n penderfynu’r haen

Daw datrysiad enw’r llun gyntaf. Mae’r kubelet, trwy’r runtime, yn datrys enw’r gofrestr, yn cysylltu, yn dilysu, yn lawrlwytho’r haenau, ac yn unig wedyn yn cychwyn y container. Mae popeth mae’r pod yn ei wneud gyda’r VPN yn digwydd ar ôl y dilyniant hwnnw, felly nid yw twnnel sy’n gweithio yn y clwstwr yn brawf am y tyniad.

Dyna pam mae llun wedi’i gacheio mor argyhoeddiadol o gelwydd. Mae node a dynnodd y llun wythnosau’n ôl yn parhau i’w wasanaethu, mae’r deployment yn edrych yn iach, a’r methiant ond yn ymddangos pan fydd y trefnydd yn gosod replica ar node mwy newydd. Os yw llinell amser y digwyddiadau’n cynnwys scale-up, disodli node neu uwchraddio pool, triniwch y rheini fel ysgogydd, nid fel achos.

Mae tri amod yn penderfynu’r atgyweiriad

Mae cyraeddadwyedd cofrestr breifat o node pool a reolir yn dibynnu ar lwybro, datrys enwau a’r set endpoint. Os na all is-rwydwaith y node lwybro i rwydwaith y gofrestr, ni fydd unrhyw dystysgrif yn helpu. Os yw’n llwybro ond yn methu datrys enw’r gofrestr trwy lwybr DNS y node, ni fydd y cysylltiad byth yn dechrau. Os yw’r ddau yn gweithio ar gyfer yr endpoint manifest ond nid ar gyfer yr endpoint blob y mae’r gofrestr yn ailgyfeirio iddo, bydd y tyniad yn methu hanner ffordd.

ConditionTypical symptomWhere to look
Node subnet has no route to the registry networkTimeout, no connectionEffective routes on the node NIC, gateway transit, return path on-premises
Node resolver cannot see the private zoneName resolution failure in eventsVNet DNS settings and the resolver the node actually uses
Only the manifest endpoint is reachableAuth succeeds, layer download failsEvery hostname the registry hands out during the pull
TLS or identity is wrongCertificate error, 401 or 403Server certificate name and trust, scoped pull identity

Nid yw peering VNet yn unig yn rhoi pob trefniant gateway transit yn awtomatig, ac nid yw llwybr mewn un cyfeiriad yn llwybr sy’n gweithio. Mae ar y node angen llwybr a gefnogir trwy’r VPN gateway bwriadedig neu offeryn a gymeradwywyd, ac mae ar ochr y gofrestr angen llwybr dychwelyd i is-rwydwaith y node.

Darllenwch y methiant cyn dewis atgyweiriad

Dechreuwch gyda digwyddiadau’r pod a’r node y glaniodd arno, gyda’ch enwau go iawn: kubectl describe pod app-example -n team-example a kubectl get pod app-example -n team-example -o wide. Mae testun y digwyddiad yn gwahanu enw gwesteiwr heb ei ddatrys oddi wrth timeout, gwrthodiad tystysgrif oddi wrth lun coll, a methiant awdurdodi oddi wrth y cyfan. Mae gan y pedwar hynny bedwar perchennog gwahanol.

Awdurdodi yw’r lifer a oramcangyfrifir fwyaf. Mae imagePullSecret yn rhoi manylion y gofrestr i’r runtime; nid yw’n gosod llwybr, nid yw’n newid datryswr y node ac nid yw’n gwneud tystysgrif anniogel yn ddilys. Os yw’r digwyddiad yn dweud nad oedd y tyniad wedi’i awdurdodi, edrychwch ar gwmpas y hunaniaeth. Os yw’n dweud bod y cysylltiad wedi dod i ben, mae’r manylion yn amherthnasol.

Dogfennaeth lluniau Kubernetes yw’r ffynhonnell ar gyfer ymddygiad tynnu a manylion cofrestrau preifat, ac mae’n werth ei darllen unwaith cyn newid y rhwydwaith, oherwydd mae’n gwneud y ffin rhwng awdurdodi a chludo yn glir.

Adeiladwch y llwybr o dan y pod

Gweithiwch yn y drefn hon, oherwydd nid oes ystyr i bob cam nes bod yr un blaenorol yn dal. Llwybrwch rwydwaith y node gyntaf: cadarnhewch fod gan is-rwydwaith y node lwybr a gefnogir i rwydwaith y gofrestr, gwiriwch y llwybrau effeithiol ar y node, y rheolau diogelwch ar y ddau ben, a’r llwybr dychwelyd ar ochr y gofrestr.

Yna datryswch yr enw o gyd-destun y node. Nid yw datryswr y node yr un peth â chyfluniad DNS y pod, ac nid yw llwyddiant mewn pod yn brawf am runtime y gwesteiwr. Defnyddiwch DNS preifat a reolir yn hytrach na chofnod hosts parhaol; mae’r cofnod yn byw nes disodli’r node ac yna’n diflannu’n dawel.

Yna profwch bob endpoint. Gall cofrestr roi gwasanaeth dilysu ar wahân a lle storio blob ar wahân i’r cleient. Nid yw cyrraedd yr endpoint manifest yn profi fawr ddim am y haenau. Yn olaf cwblhewch TLS ac awdurdodiad: tystysgrif ddilys ar gyfer enw’r gofrestr ac wedi’i hymddiried trwy gyfluniad node a gefnogir, ynghyd â hunaniaeth tynnu wedi’i chyfyngu i ddarllen y storfa honno.

Gwiriwch ar node na wnaethoch ei atgyweirio â llaw

Y prawf sy’n cyfrif yw tyniad newydd a lawrlwythiad llawn o bob haen ar node addas, yn ddelfrydol un a grëwyd trwy scale neu ddisodli. Mae hynny’n cynnwys pob pool a allai osod y workload, gan gynnwys y rhai a anghofioch. Nid yw atgyweiriad â llaw ar un node yn fodel cyflwyno, a bydd y digwyddiad autoscale nesaf yn dod o hyd i’r bwlch.

Gall ail-greu’r clwstwr mewn VNet arall newid y llwybr, ond hwnnw yw’r dewis olaf, nid y cam diagnostig cyntaf. Cymharwch rwydwaith y node presennol â’r llwybr preifat sy’n ofynnol a’r rheolyddion rhwydwaith AKS a gefnogir cyn cynnig mudo, a chadwch gysylltedd y rhaglen ar ôl cychwyn fel gwiriad ar wahân: mae’r pod yn siarad â’i backend yn wahanol i’r node yn lawrlwytho’r llun.

Erthyglau cysylltiedig