ELMA365 On-Premises / ELMA365 On-Premises и Docker Hub

ELMA365 On-Premises и Docker Hub

Глобальный реестр образов Docker Hub был заблокирован 30.05.2024.

ELMA365 разрабатывается на территории РФ, и для хранения образов наших сервисов мы используем реестры, расположенные на территории РФ. Однако, в продукте все ещё используются некоторые утилиты, которые ссылаются на глобальный репозиторий.

С версии системы 2023.10 мы скопировали большую часть внешних образов в свой реестр на территории РФ. Сейчас команда вендора дорабатывает и проверяет установку последних версий системы локально и в офлайн-окружении. Все поддерживаемые версии будут обновлены в скором времени.

Некоторые клиенты с более старыми версиями, всё же могут столкнуться с проблемами при использовании системы. В этом случае есть два способа обойти блокировку.

Способ 1: Использование зеркал реестра

Этапы настройки отличаются в зависимости от используемой поставки и оркестратора.

Настройка для поставки KinD и MicroK8s

Cпособ настраивается через конфигурационный файл докера (как зеркало docker.io). Он расположен:

  1. Измените конфигурационный файл и настройте в нём параметр { "registry-mirrors" : [ "https://mirror.gcr.io" ] }.
  2. Перезапустите докер командой:

systemctl restart docker

Теперь, при попытке загрузки образа докер сначала будет пытаться использовать прокси.

Настройка для оркестратора Kubernetes, использующего containerd

  1. Отредактируйте конфигурационный файл /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"]

  1. Перезапустите сервис командой:

systemctl restart containerd

Настройка для оркестратора Deckhouse

  1. Измените weight до значения 31, чтобы без перезагрузки применить параметр NodeGroupConfiguration:

kubectl edit NodeGroupConfiguration
  nodeGroups:
  - '*'
  weight: 31

  1. Отредактируйте файлы 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"]

  1. Перезапустите containerd:

systemctl restart containerd-deckhouse.service

Другие известные прокси:

Способ 2: Использование альтернативного маршрута на сервере

C использованием VPN на сервере докер будет продолжать обращаться за некоторыми образами в глобальный реестр Docker Hub.

Проблему с блокировкой и варианты решения для разных случаев активно обсуждают на сайте Хабр.