VPN ਪਿੱਛੇ ਰੱਖੇ ਨਿੱਜੀ registry ਤੋਂ AKS ਇਮੇਜ ਨਹੀਂ ਖਿੱਚ ਸਕਦਾ
kubelet ਨੋਡ ਦੇ ਨੈੱਟਵਰਕ ਰਾਹੀਂ ਖਿੱਚਦਾ ਹੈ, pod ਦੇ VPN ਰਾਹੀਂ ਨਹੀਂ। ਨੋਡ ਰੂਟ, ਨੋਡ DNS, ਖਿੱਚ ਦਾ ਹਰ endpoint, ਫਿਰ TLS ਅਤੇ ਪਛਾਣ ਨਾਲ ਫੈਸਲਾ ਕਰੋ।
ਤੁਹਾਡਾ ਲੈਪਟਾਪ ਇਮੇਜ ਸੌਖੇ ਹੀ ਖਿੱਚ ਲੈਂਦਾ ਹੈ, ਪਰ pod ImagePullBackOff ਵਿੱਚ ਰੁਕਿਆ ਰਹਿੰਦਾ ਹੈ। ਕਾਰਪੋਰੇਟ VPN ਕਲਾਇੰਟ ਨੂੰ sidecar ਵਜੋਂ ਚਲਾਉਣ ਦਾ ਸੁਝਾਅ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ, ਕਿਉਂਕਿ ਖਿੱਚ ਤੁਹਾਡੇ ਕੰਟੇਨਰ ਤੋਂ ਪਹਿਲਾਂ ਹੁੰਦੀ ਹੈ: kubelet ਨੋਡ ਦੇ container runtime ਨੂੰ ਇਮੇਜ ਲਿਆਉਣ ਲਈ ਕਹਿੰਦਾ ਹੈ ਅਤੇ runtime ਨੋਡ ਦਾ ਨੈੱਟਵਰਕ namespace ਵਰਤਦਾ ਹੈ।
ਕੰਮਾਂ ਦਾ ਕ੍ਰਮ ਪਰਤ ਤੈਅ ਕਰਦਾ ਹੈ
ਪਹਿਲਾਂ ਨਾਮ ਦਾ ਹੱਲ, ਫਿਰ ਕਨੈਕਸ਼ਨ, ਪ੍ਰਮਾਣਿਕਤਾ, ਪਰਤਾਂ ਦਾ ਡਾਊਨਲੋਡ ਅਤੇ ਫਿਰ ਕੰਟੇਨਰ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। pod ਦਾ VPN ਕੰਮ ਇਸ ਤੋਂ ਬਾਅਦ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਕਲਸਟਰ ਵਿੱਚ ਚੱਲਦੀ ਟਨਲ ਖਿੱਚ ਦਾ ਸਬੂਤ ਨਹੀਂ।
ਇਸ ਲਈ cache ਵਾਲੀ ਇਮੇਜ ਭਰੋਸੇਯੋਗ ਝੂਠ ਹੈ: ਹਫ਼ਤੇ ਪਹਿਲਾਂ ਇਮੇਜ ਖਿੱਚਣ ਵਾਲਾ ਨੋਡ ਦਿੰਦਾ ਰਹਿੰਦਾ ਹੈ, deployment ਸਿਹਤਮੰਦ ਦਿਸਦਾ ਹੈ, ਅਤੇ ਨਵੇਂ ਨੋਡ ਉੱਤੇ replica ਰੱਖਣ ਉੱਤੇ ਹੀ ਗੜਬੜ ਦਿਸਦੀ ਹੈ। scale-up ਜਾਂ ਨੋਡ ਬਦਲਣਾ ਕਾਰਨ ਨਹੀਂ, ਟ੍ਰਿਗਰ ਹੈ।
ਤਿੰਨ ਸ਼ਰਤਾਂ ਮੁਰੰਮਤ ਤੈਅ ਕਰਦੀਆਂ ਹਨ
ਪਹੁੰਚ ਰੂਟਿੰਗ, ਨਾਮ ਹੱਲ ਅਤੇ endpoint ਦੇ ਸਮੂਹ ਉੱਤੇ ਟਿਕੀ ਹੈ। ਨੋਡ ਦਾ subnet registry ਨੈੱਟਵਰਕ ਤੱਕ ਰੂਟ ਨਹੀਂ ਕਰ ਸਕਦਾ ਤਾਂ ਕੋਈ credential ਸਹਾਇਤਾ ਨਹੀਂ ਕਰੇਗਾ। ਨੋਡ ਦੇ DNS ਰਾਹੀਂ ਨਾਮ ਨਹੀਂ ਹੱਲ ਹੁੰਦਾ ਤਾਂ ਕਨੈਕਸ਼ਨ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਵੇਗਾ। ਸਿਰਫ਼ manifest ਮਿਲੇ ਅਤੇ blob ਨਾ ਮਿਲੇ ਤਾਂ ਖਿੱਚ ਵਿਚਕਾਰ ਹੀ ਫੇਲ ਹੋਵੇਗੀ।
| 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 |
ਸਿਰਫ਼ VNet peering ਹਰ gateway transit ਬੰਦੋਬਸਤ ਨਹੀਂ ਦਿੰਦੀ, ਅਤੇ ਇੱਕ ਦਿਸ਼ਾ ਦਾ ਰੂਟ ਕੰਮ ਕਰਨ ਵਾਲਾ ਰੂਟ ਨਹੀਂ। ਨੋਡ ਨੂੰ VPN gateway ਰਾਹੀਂ ਸਮਰਥਿਤ ਰਾਹ ਚਾਹੀਦਾ ਹੈ ਅਤੇ registry ਪਾਸੇ ਨੋਡ ਦੇ subnet ਤੱਕ ਵਾਪਸੀ ਰੂਟ।
ਹੱਲ ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਗੜਬੜ ਪੜ੍ਹੋ
pod ਦੀਆਂ ਘਟਨਾਵਾਂ ਅਤੇ ਜਿਸ ਨੋਡ ਉੱਤੇ ਉਹ ਉਤਰਿਆ ਉਸ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ, ਆਪਣੇ ਅਸਲ ਨਾਮਾਂ ਨਾਲ: kubectl describe pod app-example -n team-example ਅਤੇ kubectl get pod app-example -n team-example -o wide। ਘਟਨਾ ਦਾ ਪਾਠ ਨਾ-ਹੱਲ ਹੋਏ hostname ਨੂੰ timeout ਤੋਂ, certificate ਦੀ ਨਾਮਨਜ਼ੂਰੀ ਨੂੰ ਗੁੰਮ ਇਮੇਜ ਤੋਂ, ਅਤੇ ਅਧਿਕਾਰ ਫੇਲ ਹੋਣ ਨੂੰ ਸਭ ਤੋਂ ਵੱਖ ਕਰਦਾ ਹੈ।
ਪ੍ਰਮਾਣਿਕਤਾ ਸਭ ਤੋਂ ਵੱਧ ਵਧਾ-ਚੜ੍ਹਾ ਕੇ ਅੰਕਿਆ ਉਪਾਇ ਹੈ। imagePullSecret runtime ਨੂੰ registry credential ਦਿੰਦਾ ਹੈ; ਇਹ ਰੂਟ ਨਹੀਂ ਲਾਉਂਦਾ, resolver ਨਹੀਂ ਬਦਲਦਾ ਅਤੇ ਭਰੋਸੇਯੋਗ ਨਾ ਹੋਣ ਵਾਲੇ certificate ਨੂੰ ਵੈਧ ਨਹੀਂ ਕਰਦਾ। ਘਟਨਾ ਕਹੇ ਕਿ ਖਿੱਚ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਸੀ ਤਾਂ ਪਛਾਣ ਦਾ ਦਾਇਰਾ ਵੇਖੋ; ਕਹੇ ਕਿ ਕਨੈਕਸ਼ਨ timeout ਹੋਇਆ ਤਾਂ credential ਲਾਜ਼ਮੀ ਨਹੀਂ।
Kubernetes ਇਮੇਜ ਦਸਤਾਵੇਜ਼ ਖਿੱਚ ਦੇ ਵਿਵਹਾਰ ਅਤੇ ਨਿੱਜੀ registry credential ਦਾ ਸਰੋਤ ਹੈ, ਅਤੇ ਨੈੱਟਵਰਕ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਵਾਰ ਪੜ੍ਹਨਾ ਚਾਹੀਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਢੋਆ-ਢੁਆਈ ਵਿਚਕਾਰ ਹੱਦ ਸਾਫ਼ ਕਰਦਾ ਹੈ।
pod ਦੇ ਹੇਠਾਂ ਰਾਹ ਬਣਾਓ
ਇਸੇ ਕ੍ਰਮ ਵਿੱਚ ਕੰਮ ਕਰੋ। ਪਹਿਲਾਂ ਨੋਡ ਨੈੱਟਵਰਕ ਰੂਟ ਕਰੋ: subnet ਕੋਲ registry ਨੈੱਟਵਰਕ ਤੱਕ ਸਮਰਥਿਤ ਰਾਹ ਹੈ ਜਾਂ ਨਹੀਂ ਪੱਕਾ ਕਰੋ, ਨੋਡ ਦੇ ਪ੍ਰਭਾਵੀ ਰੂਟ, ਦੋਵੇਂ ਸਿਰਿਆਂ ਦੇ ਸੁਰੱਖਿਆ ਨਿਯਮ ਅਤੇ registry ਪਾਸੇ ਦਾ ਵਾਪਸੀ ਰੂਟ ਵੇਖੋ।
ਫਿਰ ਨੋਡ ਦੇ ਸੰਦਰਭ ਤੋਂ ਨਾਮ ਹੱਲ ਕਰੋ। ਨੋਡ ਦਾ resolver pod ਦੀ DNS ਸੈਟਿੰਗ ਨਹੀਂ, ਅਤੇ pod ਵਿੱਚ ਸਫਲਤਾ host runtime ਦਾ ਸਬੂਤ ਨਹੀਂ। ਪੱਕੀ hosts ਐਂਟਰੀ ਦੀ ਥਾਂ ਪ੍ਰਬੰਧਿਤ ਨਿੱਜੀ DNS ਵਰਤੋ; ਐਂਟਰੀ ਨੋਡ ਬਦਲਣ ਤੱਕ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਫਿਰ ਚੁੱਪ-ਚਾਪ ਗਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ।
ਫਿਰ ਹਰ endpoint ਸਾਬਤ ਕਰੋ। registry ਗਾਹਕ ਨੂੰ ਵੱਖਰੀ ਪ੍ਰਮਾਣਿਕਤਾ ਸੇਵਾ ਅਤੇ ਵੱਖਰਾ blob ਸਟੋਰੇਜ ਦੇ ਸਕਦਾ ਹੈ। manifest ਤੱਕ ਪਹੁੰਚਣਾ ਪਰਤਾਂ ਬਾਰੇ ਲਗਭਗ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ। ਅੰਤ ਵਿੱਚ TLS ਅਤੇ ਅਧਿਕਾਰ ਪੂਰੇ ਕਰੋ: registry ਨਾਮ ਲਈ ਵੈਧ ਅਤੇ ਸਮਰਥਿਤ ਨੋਡ ਸੰਰਚਨਾ ਰਾਹੀਂ ਭਰੋਸੇਯੋਗ certificate, ਨਾਲ ਹੀ ਉਸ repository ਨੂੰ ਪੜ੍ਹਨ ਤੱਕ ਸੀਮਤ ਖਿੱਚ ਪਛਾਣ।
ਉਸ ਨੋਡ ਉੱਤੇ ਜਾਂਚੋ ਜਿਸਨੂੰ ਹੱਥ ਨਾਲ ਠੀਕ ਨਹੀਂ ਕੀਤਾ
ਅਸਲ ਪਰਖ ਯੋਗ ਨੋਡ ਉੱਤੇ ਨਵੀਂ ਖਿੱਚ ਅਤੇ ਸਾਰੀਆਂ ਪਰਤਾਂ ਦਾ ਪੂਰਾ ਡਾਊਨਲੋਡ ਹੈ, ਬਿਹਤਰ ਹੈ ਕਿ scale ਜਾਂ ਬਦਲੀ ਨਾਲ ਬਣਿਆ ਨੋਡ ਹੋਵੇ। ਇਹ ਉਹ ਸਾਰੇ pool ਢੱਕਦਾ ਹੈ ਜੋ workload ਰੱਖ ਸਕਦੇ ਹਨ, ਭੁੱਲੇ ਹੋਏ ਵੀ। ਇੱਕ ਨੋਡ ਉੱਤੇ ਹੱਥੀ ਮੁਰੰਮਤ deployment ਮਾਡਲ ਨਹੀਂ, ਅਤੇ ਅਗਲੀ autoscale ਘਟਨਾ ਖਾਲੀ ਥਾਂ ਲੱਭ ਲਵੇਗੀ।
ਕਲਸਟਰ ਨੂੰ ਹੋਰ VNet ਵਿੱਚ ਮੁੜ ਬਣਾਉਣਾ ਰਾਹ ਬਦਲ ਸਕਦਾ ਹੈ, ਪਰ ਉਹ ਪਹਿਲਾ ਨਿਦਾਨ ਕਦਮ ਨਹੀਂ, ਆਖਰੀ ਉਪਾਇ ਹੈ। ਸਥਾਨਾਂਤਰਨ ਸੁਝਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਨੋਡ ਨੈੱਟਵਰਕ ਦੀ ਤੁਲਨਾ ਲੋੜੀਂਦੇ ਨਿੱਜੀ ਰੂਟ ਅਤੇ ਸਮਰਥਿਤ AKS ਨੈੱਟਵਰਕ ਨਿਯੰਤਰਣਾਂ ਨਾਲ ਕਰੋ, ਅਤੇ ਸ਼ੁਰੂਆਤ ਤੋਂ ਬਾਅਦ ਐਪ ਕਨੈਕਟੀਵਿਟੀ ਨੂੰ ਵੱਖਰੀ ਜਾਂਚ ਰੱਖੋ: pod ਦਾ backend ਨਾਲ ਗੱਲ ਕਰਨਾ ਨੋਡ ਦੇ ਇਮੇਜ ਡਾਊਨਲੋਡ ਤੋਂ ਵੱਖਰੀ ਜਾਂਚ ਹੈ।