Our company's Kubernetes cluster recently started experiencing Docker image pull errors after AKS update of K8s versions (1.21.9 to 1.22.6). No changes were made to cluster config. Apparently the cluster no longer handshakes correctly with all Docker registries. If any Windows nodes are present in the cluster, image pull always defaults to the Windows version of the image, even though the repo also contains a valid Linux version. This is fine when the cluster makes the image pull request from a Windows node, but crashes when making the pull request from a Linux node.
It's possible the change occurred in version 1.22.4 with the deprecation of Dockershim. https://kubernetes.io/blog/2020/12/02/dockershim-faq/. Two possible workarounds are (1) using a different naming convention for our image repos or (2) use Linux-only K8s clusters for Linux images.
For reference the Frankenpath error message in the pod's Event log is -"/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/624/fs/Files/Program Files (x86)/common files/Microsoft Shared/ink/en-US/micaut.dll.mui: no such file or directory: unknown"
I did verify that all container deployments include nodeSelector: kubernetes.io/os: linux or nodeSelector: kubernetes.io/os: windows as appropriate.
Anyone else experiencing similar issues or know of workarounds?