Насколько я знаю, обычно по умолчанию serviceAccount отвечает за вытягивание изображений.
Чтобы легко добавить imagePullSecrets в учетную запись службы, вы можете использовать команду patch :
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "mySecret"}]}'
Возможно использовать kubectl patch
в сценарии, который вставляет imagePullSecrets на serviceAccounts во всех пространствах имен.
Если вам сложно управлять несколькими пространствами имен, вы можете взглянуть на kubernetes-replicator , который синхронизирует ресурсы между пространствами имен.
Решение 2:
В этом разделе документа объясняется, как вы можете установить личный реестр на основе узла:
Вот рекомендуемые шаги по настройке ваших узлов для использования
частный реестр. В этом примере запустите их на своем настольном компьютере / ноутбуке:
- Запустите
docker login [server]
для каждого набора учетных данных, которые вы хотите использовать. Это обновление $HOME/.docker/config.json
.
- Просмотрите
$HOME/.docker/config.json
в редакторе, чтобы убедиться, что он содержит только те учетные данные, которые вы хотите использовать.
Получите список ваших узлов, например:
Если вы хотите имена:
node = $ (kubectl получить узлы -o jsonpath = '{range.items [*]. метаданные} {. name} {end}')
Если вы хотите получить IP-адреса:
node = $ (kubectl получить узлы -o jsonpath = '{range .items [*]. status.addresses [? (@. type == "ExternalIP")]} {. address} {end}')
Скопируйте ваш локальный .docker / config.json в один из приведенных выше списков путей поиска. например:
для n в $ узлах; do scp ~ / .docker / config.json root @ $ n: /var/lib/kubelet/config.json; сделано
Решение 3:
Я обнаружил, что (очень грязно!) Не нужно настраивать imagePullSecret для развертывания / serviceAccount:
- Установить ImagePullPolicy: IfNotPresent
- Потянув изображение в каждом узле
2.1. вручную, используя docker pull myrepo/image:tag
.
2.2. используя скрипт или инструмент типа docker-puller для автоматизации этого процесса.
Ну, я думаю, мне не нужно объяснять, насколько это ужасно.
PS : Если это поможет, я обнаружил проблему на kubernetes / kops относительно возможности создания глобальной конфигурации для частного реестра.