Na vašem prijenosniku slika se povlači bez problema, ali pod stoji u ImagePullBackOff. Prijedlog da pokrenete korporativni VPN klijent kao sidecar neće pomoći jer se povlačenje događa prije nego što vaš kontejner postoji: kubelet traži od container runtimea na nodeu da donese sliku, a runtime koristi mrežni namespace nodea.

Redoslijed operacija određuje sloj

Prvo se razrješava ime slike, pa slijedi povezivanje, autentifikacija i preuzimanje slojeva, a tek onda pokretanje kontejnera. Sve što pod radi s VPN-om dolazi nakon toga, pa tunel koji radi u klasteru nije dokaz o povlačenju.

Zato je keširana slika tako uvjerljiva laž: node koji je sliku povukao prije tjedana nastavlja je posluživati, deployment izgleda zdravo, a kvar se pojavi tek kad scheduler stavi repliku na noviji node. Scale-up ili zamjenu nodea tretirajte kao okidač, ne kao uzrok.

Tri uvjeta određuju popravak

Dostupnost privatnog registryja svodi se na rutiranje, razrješavanje imena i skup endpointa. Ako podmreža nodea ne može rutirati do mreže registryja, nikakve vjerodajnice ne pomažu. Ako se ime ne razrješava kroz DNS put nodea, veza ne počinje. Ako radi samo manifest, a ne blob endpoint, povlačenje pada na pola.

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

Samo VNet peering ne daje sve rasporede gateway transit-a, a ruta u jednom smjeru nije ruta koja radi. Nodeu treba podržan put kroz predviđeni VPN gateway, a strani registryja povratna ruta do podmreže nodea.

Pročitajte kvar prije odabira popravka

Počnite s događajima poda i nodea na koji je sletio, sa stvarnim imenima: kubectl describe pod app-example -n team-example i kubectl get pod app-example -n team-example -o wide. Tekst događaja razlikuje nerazriješeno ime hosta od timeouta, odbijanje certifikata od nedostajuće slike i grešku autorizacije od svega toga.

Autentifikacija je najprecijenjenija poluga. imagePullSecret daje runtimeu vjerodajnice za registry; ne postavlja rutu, ne mijenja resolver nodea i ne čini nepouzdan certifikat važećim. Ako događaj kaže da povlačenje nije autorizirano, gledajte opseg identiteta; ako kaže da je veza istekla, vjerodajnice su nebitne.

Kubernetes dokumentacija o slikama referenca je za ponašanje povlačenja i vjerodajnice privatnih registryja, i vrijedi je pročitati prije promjene mreže jer jasno pokazuje granicu između autentifikacije i transporta.

Izgradite put ispod poda

Radite ovim redom. Prvo rutirajte mrežu nodea: potvrdite podržan put do mreže registryja, provjerite efektivne rute na nodeu, sigurnosna pravila na oba kraja i povratnu rutu na strani registryja.

Zatim razriješite ime iz konteksta nodea. Resolver nodea nije DNS konfiguracija poda, a uspjeh u podu nije dokaz za host runtime. Koristite upravljani privatni DNS umjesto trajnog unosa u hosts; unos živi do zamjene nodea i onda tiho nestane.

Zatim dokažite svaki endpoint. Registry može dati odvojenu uslugu autentifikacije i odvojeno blob spremište. Dostizanje manifesta ne dokazuje gotovo ništa o slojevima. Na kraju dovršite TLS i autorizaciju: certifikat važeći za ime registryja i pouzdan kroz podržanu konfiguraciju nodea, plus identitet povlačenja ograničen na čitanje tog repozitorija.

Provjerite na nodeu koji niste popravili ručno

Test koji se računa je svježe povlačenje i potpuno preuzimanje svih slojeva na prikladnom nodeu, po mogućnosti stvorenom skaliranjem ili zamjenom. To pokriva sve poolove koji bi mogli postaviti workload, uključujući zaboravljene. Ručna popravka na jednom nodeu nije model isporuke, a sljedeći autoscale događaj naći će prazninu.

Ponovno stvaranje klastera u drugom VNetu može promijeniti put, ali to je posljednje sredstvo, ne prvi dijagnostički korak. Usporedite postojeću mrežu nodea s potrebnom privatnom rutom i podržanim AKS mrežnim kontrolama prije predlaganja migracije, i držite povezanost aplikacije nakon pokretanja odvojenom provjerom: pod koji razgovara s backendom druga je provjera od nodea koji preuzima sliku.

Povezani članci