Быстрый старт
Этот документ поможет вам быстро понять, как создать OCI Connector и использовать его для безопасного доступа к реестрам контейнеров без прямой работы с учетными данными.
Содержание
ВведениеПрименимые сценарииОценочное время чтенияПримечанияПредварительные требованияОбзор процессаШаги выполненияШаг 1: Создать NamespaceШаг 2: Создать учетные данные реестра и OCI ConnectorШаг 3: Создать задачу сборки/отправки контейнераШаг 4: Проверить выполнениеОжидаемые результатыКак это работаетУстранение неполадокСледующие шагиВведение
Применимые сценарии
OCI (Open Container Initiative) Connector предоставляет безопасный способ:
- Доступа к реестрам контейнеров (Docker Hub, Harbor и др.) без встраивания учетных данных в рабочие нагрузки
- Централизованного управления информацией для аутентификации в реестрах
- Использования прокси-механизма для безопасной отправки и получения образов контейнеров
- Настройки контейнерных инструментов для работы с прокси реестра
Этот подход особенно полезен для:
- CI/CD конвейеров, которым необходимо отправлять образы в приватные реестры
- Многочисленных команд, которым нужно безопасно совместно использовать учетные данные реестра
- Процессов сборки контейнеров внутри Kubernetes
Оценочное время чтения
15 минут
Примечания
- OCI connector использует интеграцию с CSI драйвером для безопасной инъекции учетных данных реестра.
- Разным контейнерным инструментам (Buildah и др.) может потребоваться специфическая конфигурация для доступа к небезопасным реестрам.
- Файлы конфигурации, сгенерированные коннектором, действительны в течение 30 минут.
Предварительные требования
- Kubernetes кластер с установленной системой Connectors (Operator, Core и компоненты OCI). Подробнее об установке смотрите в Installation Guide.
- kubectl, настроенный для работы с вашим кластером
- Учетные данные для доступа к реестру контейнеров (Docker Hub, Harbor и др.)
- Базовые знания ресурсов Kubernetes
Обзор процесса
Шаги выполнения
Шаг 1: Создать Namespace
Создайте выделенный namespace для демонстрации:
Шаг 2: Создать учетные данные реестра и OCI Connector
Создайте Secret с учетными данными реестра и ресурс OCI Connector. Более подробную информацию о создании и настройке коннекторов смотрите в Connectors Quick Start Guide.
Проверьте, что коннектор находится в статусе "Ready":
Вывод должен быть следующим:
Шаг 3: Создать задачу сборки/отправки контейнера
Создайте ConfigMap с примером Dockerfile:
Создайте задачу, которая использует коннектор для сборки и отправки образа контейнера:
Ключевые параметры в определении томов:
connector.name: имя вашего OCI коннектораconfiguration.names: указывает, какую конфигурацию генерировать из OCI ConnectorClass:"docker-config": генерирует конфигурацию аутентификации (config.json), необходимую для любых операций с реестром"buildkitd": генерирует конфигурацию демона BuildKit для доступа к небезопасному реестру
mountPath: указывает, куда монтировать файл конфигурации в контейнере:- "/root/.docker" для конфигурации аутентификации OCI CLI, например buildkit, buildah
- "/etc/buildkit" для конфигурации BuildKit
Шаг 4: Проверить выполнение
Проверьте логи задачи, чтобы убедиться, что образ успешно собран и отправлен:
Вы должны увидеть завершение процесса сборки и отправку образа в реестр.
Ожидаемые результаты
После успешного выполнения всех шагов вы увидите:
-
OCI коннектор в статусе "Ready":
-
Успешную операцию сборки и отправки образа в логах задачи, показывающую, что образ был отправлен в реестр через прокси коннектора.
-
Адрес прокси коннектора в поле статуса:
Как это работает
OCI Connector работает следующим образом:
- Создает прокси-сервис, который находится между вашими рабочими нагрузками и реестром контейнеров
- Внедряет информацию для аутентификации при прохождении запросов через прокси
- Предоставляет файлы конфигурации для контейнерных инструментов для работы с прокси
Коннектор генерирует три типа файлов конфигурации, которые служат разным целям:
-
docker-config: создает файл
config.jsonс необходимой информацией для аутентификации при доступе к прокси-сервисуЭта конфигурация необходима для аутентификации и требуется для всех операций с контейнерами.
-
buildkitd: создает файл
buildkitd.toml, который настраивает BuildKit на доверие к небезопасному прокси реестраЭто нужно только при использовании BuildKit для сборки и отправки образов.
Чтобы просмотреть сгенерированную конфигурацию:
Просмотрите сгенерированную конфигурацию:
Устранение неполадок
Если операция с контейнером не удалась, проверьте следующее:
-
Статус коннектора: убедитесь, что коннектор в состоянии "Ready":
-
Права RBAC: проверьте правильность настройки RoleBinding.
-
Доступ к реестру: убедитесь, что учетные данные имеют доступ к указанному репозиторию.
-
Монтирование конфигурации: проверьте, что тома с конфигурацией корректно смонтированы в задаче.
-
Адрес прокси: убедитесь, что вы используете правильный адрес прокси из
status.proxy.httpAddress.urlв ссылках на образы.
Следующие шаги
После успешной отправки первого образа с помощью OCI Connector вы можете:
- Использовать коннектор в Kubernetes workload для получения приватных образов
- Интегрировать с CI/CD конвейерами для сборки и отправки образов
- Настроить различные контейнерные инструменты для работы с коннектором
- Использовать коннектор с разными сервисами реестров