Создание секрета docker-registry и проверка статуса пода
Создание секрета docker-registry
Чтобы создать секрет типа docker-registry с учётными данными для доступа к Docker Registry, выполните команду (в терминале, где у вас настроен доступ к кластеру):
где:
- <имя секрета> — имя создаваемого секрета;
- <URL репозитория> — URL, который вы указали в поле URL при настройке приватного репозитория;
- <логин> — логин для доступа к репозиторию;
- <пароль или токен> — пароль или токен доступа (например, Personal Access Token из GitLab/GitHub);
- <email> — электронная почта, привязанная к учётной записи на хостинге репозиториев.
Подробнее см. в официальной документации Kubernetes.
Добавление секрета в манифесты подов
Есть два основных способа сообщить Kubernetes, какой секрет использовать для загрузки образов:
Проверка статуса пода
Убедитесь, что под успешно создался и образ загрузился, проверив выводы команд и логи:
- Проверьте статус пода, выполнив команду:
- Проведите диагностику. Если под завис в статусе ContainerCreating или статус пода ErrImagePull или ImagePullBackOff, изучите описание пода. Чтобы получить описание пода, выполните команду:
Частые ошибки в секции Events:- 404 Not Found — образ не найден по указанному URL. Проверьте путь к образу, тег и имя образа;
- x509: certificate signed by unknown authority — Kubernetes не может проверить SSL-сертификат при подключении к приватному репозиторию. Возможно, сертификат самоподписанный или корневой сертификат не доверен. Установите корневой доверенный сертификат или настройте Kubernetes на игнорирование проверки сертификатов (что небезопасно);
- no basic auth credentials — не предоставлены учётные данные для доступа к образу в приватном репозитории. Убедитесь, что:
- секрет добавлен в манифесты подов и связан с соответствующим пространством имен (namespace);
- учётные данные в секрете верные, непросроченные и имеют права на скачивание образа;
- секрет корректно добавлен в сервисный аккаунт (ServiceAccount), если используется метод привязки секрета к ServiceAccount;
- брандмауэр, группа безопасности и DNS не блокируют доступ узла к приватному репозиторию;
- указанный образ имеется в приватном репозитории, и у него верный тег.
- секрет добавлен в манифесты подов и связан с соответствующим пространством имен (namespace);
Обратите внимание на секцию Events — Kubernetes хронологически выводит всё, что происходило с подом. Ищите сообщения с типом Warning. - Если под перешёл в статус Running, но вы хотите увидеть логи работы приложения внутри контейнера, используйте команду:
Команда покажет логи приложения (например, логи Nginx или вашего кода), но не покажет логи процесса загрузки образа. Для диагностики проблем с загрузкой образа используйте команду kubectl describe pod.