Аутентификация в приватном 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 в другом неймспейсе следует создать новый секрет.