Кластер Kubernetes нашей компании недавно начал сталкиваться с ошибками извлечения образа Docker после обновления AKS версий K8s (с 1.21.9 до 1.22.6). Никаких изменений в конфигурацию кластера не вносилось. По-видимому, кластер больше не корректно рукопожатие со всеми реестрами Docker. Если в кластере присутствуют какие-либо узлы Windows, при извлечении образа по умолчанию всегда используется версия образа для Windows, даже если репозиторий также содержит допустимую версию для Linux. Это нормально, когда кластер отправляет запрос на извлечение образа с узла Windows, но происходит сбой при отправке запроса на извлечение с узла Linux.
Возможно, изменение произошло в версии 1.22.4 с прекращением поддержки Dockershim. https://kubernetes.io/blog/2020/12/02/dockershim-faq/. Два возможных обходных пути: (1) использование другого соглашения об именах для наших репозиториев образов или (2) использование кластеров K8s только для Linux для образов Linux.
Для справки, сообщение об ошибке Frankenpath в журнале событий модуля: "/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: нет такого файла или каталога: неизвестно"
Я проверил, что все развертывания контейнеров включают nodeSelector: kubernetes.io/os: linux или nodeSelector: kubernetes.io/os: windows в зависимости от обстоятельств.
Кто-нибудь еще сталкивался с подобными проблемами или знает обходные пути?