Ni all AKS dynnu llun o gofrestr breifat y tu ôl i’r VPN
Mae’r kubelet yn tynnu trwy rwydwaith y node, nid trwy VPN y pod. Penderfynwch yn ôl llwybrau’r node, DNS y node, pob endpoint y mae’r tyniad yn ei gyffwrdd, yna TLS a hunaniaeth.
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.
| Condition | Typical symptom | Where to look |
|---|---|---|
| Node subnet has no route to the registry network | Timeout, no connection | Effective routes on the node NIC, gateway transit, return path on-premises |
| Node resolver cannot see the private zone | Name resolution failure in events | VNet DNS settings and the resolver the node actually uses |
| Only the manifest endpoint is reachable | Auth succeeds, layer download fails | Every hostname the registry hands out during the pull |
| TLS or identity is wrong | Certificate error, 401 or 403 | Server 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.