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 ಅಥವಾ ಬದಲಾವಣೆಯಿಂದ ರಚಿಸಿದ ನೋಡ್ನಲ್ಲಿ. ಇದು workload ಇಡಬಹುದಾದ ಎಲ್ಲ pool ಅನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ, ಮರೆತವುಗಳೂ ಸೇರಿ. ಒಂದು ನೋಡ್ನಲ್ಲಿ ಕೈ ಸರಿಪಡಿಸುವಿಕೆ deployment ಮಾದರಿಯಲ್ಲ, ಮುಂದಿನ autoscale ಘಟನೆ ಅಂತರವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ.
ಬೇರೆ VNet ನಲ್ಲಿ ಕ್ಲಸ್ಟರ್ ಮತ್ತೆ ರಚಿಸುವುದು ಮಾರ್ಗ ಬದಲಿಸಬಹುದು, ಆದರೆ ಅದು ಮೊದಲ ನಿದಾನ ಹಂತವಲ್ಲ, ಕೊನೆಯ ಉಪಾಯ. ಸ್ಥಳಾಂತರ ಸೂಚಿಸುವ ಮೊದಲು ಇರುವ ನೋಡ್ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಅಗತ್ಯವಿರುವ ಖಾಸಗಿ ರೂಟ್ ಮತ್ತು ಬೆಂಬಲಿತ AKS ನೆಟ್ವರ್ಕ್ ನಿಯಂತ್ರಣಗಳೊಂದಿಗೆ ಹೋಲಿಸಿ, ಮತ್ತು ಆರಂಭದ ನಂತರದ ಅಪ್ಲಿಕೇಶನ್ ಸಂಪರ್ಕವನ್ನು ಪ್ರತ್ಯೇಕ ಪರಿಶೀಲನೆಯಾಗಿ ಇರಿಸಿ: pod ಮತ್ತು backend ಸಂಭಾಷಣೆ ನೋಡ್ನ ಇಮೇಜ್ ಡೌನ್ಲೋಡ್ಗಿಂತ ಬೇರೆ ಪರಿಶೀಲನೆ.