Глобальный реестр образов Docker Hub был заблокирован 30.05.2024.
ELMA365 разрабатывается на территории РФ, и для хранения образов наших сервисов мы используем реестры, расположенные на территории РФ. Однако, в продукте все ещё используются некоторые утилиты, которые ссылаются на глобальный репозиторий.
С версии системы 2023.10 мы скопировали большую часть внешних образов в свой реестр на территории РФ. Сейчас команда вендора дорабатывает и проверяет установку последних версий системы локально и в офлайн-окружении. Все поддерживаемые версии будут обновлены в скором времени.
Некоторые клиенты с более старыми версиями, всё же могут столкнуться с проблемами при использовании системы. В этом случае есть два способа обойти блокировку.
Способ 1: Использование зеркал реестра
Этапы настройки отличаются в зависимости от используемой поставки и оркестратора.
Настройка для поставки KinD и MicroK8s
Cпособ настраивается через конфигурационный файл докера (как зеркало docker.io). Он расположен:
- Linux, regular setup —
/etc/docker/daemon.json
; - Linux, rootless mode —
~/.config/docker/daemon.json
; - поставка MicroK8s — https://microk8s.io/docs/registry-private.
- Измените конфигурационный файл и настройте в нём параметр
{ "registry-mirrors" : [ "https://mirror.gcr.io" ] }
. - Перезапустите докер командой:
systemctl restart docker
Теперь, при попытке загрузки образа докер сначала будет пытаться использовать прокси.
Настройка для оркестратора Kubernetes, использующего containerd
- Отредактируйте конфигурационный файл
/etc/containerd/config.toml
, добавив:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://mirror.gcr.io"]
- Перезапустите сервис командой:
systemctl restart containerd
Настройка для оркестратора Deckhouse
- Измените
weight
до значения 31, чтобы без перезагрузки применить параметр NodeGroupConfiguration:
kubectl edit NodeGroupConfiguration
nodeGroups:
- '*'
weight: 31
- Отредактируйте файлы
nano /etc/containerd/deckhouse.toml
иnano /etc/containerd/config.toml
, добавив:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://mirror.gcr.io"]
- Перезапустите containerd:
systemctl restart containerd-deckhouse.service
Другие известные прокси:
- https://dockerhub.timeweb.cloud — РФ;
- https://mirror.gcr.io — Google;
- https://daocloud.io — Китай;
- https://c.163.com — Китай;
- https://registry.docker-cn.com — Китай.
Способ 2: Использование альтернативного маршрута на сервере
C использованием VPN на сервере докер будет продолжать обращаться за некоторыми образами в глобальный реестр Docker Hub.
Проблему с блокировкой и варианты решения для разных случаев активно обсуждают на сайте Хабр.