Приватный registry
В текущей реализации доступно два варианта настройки аутентификации в приватном registry: с помощью изменения конфига ContainerD (для cluster_admin) и при помощи ImagePullSecrets (для namespace_admin).
Преимущества и недостатки
Изменение конфигурации ContainerD:
Преимущества:
- Этот метод легко реализовать и понять.
- Возможность управлять registry в упрощенной форме.
- Удобен при большом количестве проектов с использованием приватного registry.
Недостатки:
- Если есть необходимость обновления или модификации registry, вам придется повторно редактировать и перезапускать ContainerD.
- Данный метод может не обеспечить достаточного уровня безопасности, поскольку учетные данные пользователя сохраняются в абсолютно открытом виде.
С использованием ImagePullSecrets:
Преимущества:
- Большая безопасность по сравнению с прямым редактированием конфигурации ContainerD.
- Управление секретами обеспечивает гибкость и контроль.
Недостатки:
- Больше шагов для настройки по сравнению с редактированием конфигурации ContainerD.
Рассмотрим подробнее шаги для настройки аутентификации:
Изменение конфигурации ContainerD
На каждом узле кластера необходимо изменить конфиг ContainerD. Его можно отредактировать по пути /etc/containerd/config.toml
В файле конфига найдите строку
[plugins."io.containerd.grpc.v1.cri".registry.configs]
После нее измените в своем конфигурационном файле следующее содержимое, укажите информацию о своем registry:
[plugins."io.containerd.grpc.v1.cri".registry.configs."myprivateregisrty.domain.ltd".auth]
username = "myLogin"
password = "myPassword"
Сохраните и закройте файл.
Перезапустите службу ContainerD systemctl restart containerd.
Использование ImagePullSecrets
Второй способ настройки аутентификации в приватном registry включает использование ImagePullSecrets:
Создайте файл в формате json с данными для аутентификации в registry. Пример данных:
{
"auths": {
"my-registry.example:5000":
{ "username": "tiger", "password": "pass1234", "email": "tiger@acme.example", "auth": "dGlnZXI6cGFzczEyMzQ=" }
}
}
Перейдите в неймспейс, в нагрузках которого необходимо использовать приватный registry. В разделе Хранилище/Secrets создайте Secret с типом dockerconfigjson.
В блоке Ключи нажмите на +. В открывшемся боковом окне загрузите созданный в формате json с данными для аутентификации в registry.
При создании нагрузки в поле Секреты образов (ImagePullSecrets) выберите секрет с данными для аутентификации.
Также можно создать секреты с помощью команды в cli:
kubectl create secret docker-registry Название \
--docker-email=Example@docker.email \
--docker-username=Username \
--docker-password=Pass1234 \
--docker-server=my-registry.example:5000
-n Имя_неймспейса
Подставьте необходимые значения в выделенные заглавными буквами параметры.
Обратите внимание, созданный секрет может быть использован только в этом неймспейсе. При необходимости аутентификации к этому registry в другом неймспейсе, создайте новый секрет.