Частный реестр недоступен из Rancher Deployment с помощью диаграммы Хелма - PullRequest
2 голосов
/ 17 апреля 2019

Мне кажется, что в Rancher V2.2.2 есть большой блокировщик, в котором я не могу определить реестр Private Azure, содержащий образы докеров, которые будут использоваться для создания развертывания K8s.

Я могу определить учетные данные Azure в разделе Ресурсы -> Реестры и аутентифицировать их для создания рабочей нагрузки. (Рабочая нагрузка обращается к личному реестру Azure и аутентифицирует его, используя набор учетных данных)

Теперь, если я создаю диаграмму Хелма, которая обращается к одному и тому же частному реестру Azure для извлечения образа и создания модуля, произойдет сбой, сказав, что образ докера не может быть извлечен. Я исследовал его и обнаружил, что при развертывании K8 можно найти учетные данные, установленные в пользовательском интерфейсе Rancher, но у кублета нет доступа к этим учетным данным.

Обычное предложение, которое дают люди, - использовать секреты в файле развертывания справочной таблицы, и это также работает, но это проблема безопасности, поскольку любой человек может получить доступ к контрольной диаграмме, чтобы найти описанные в ней учетные данные Azure. Я чувствую, что это все еще распространенная проблема в Rancher V2.

Вопрос: Развертывание диаграммы управления и частное хранилище Docker решает проблему, но имеет проблему безопасности, как указано выше.

Я не уверен, есть ли у сообщества Rancher ответ, потому что репозиторий также предлагает такое же решение. Пожалуйста, обратитесь (https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md#creating-image-pull-secrets)

Я не хочу определять секреты извлечения изображений в файле deployement.yaml диаграммы Helm, как указано ниже

  name: credentials-name
  registry: private-docker-registry
  username: user
  password: pass

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

Когда вы настраиваете новый набор учетных данных реестра в разделе Ресурсы -> Реестры в текущем проекте, Rancher создает для вас секретный ресурс Kubernetes, который содержит указанные учетные данные.

Чтобы убедиться, что секрет существует во всех пространствах имен, принадлежащих проекту, выполните следующую команду:

$ kubectl get secrets -n <some-project-namespace>

Затем - вместо сохранения учетных данных в виде простого текста в вашем deploy.yaml - вы будете ссылаться на секретный ресурс в спецификации контейнера следующим образом:

spec:
  containers:
  - name: mycontainer
    image: myregistry.azurecr.io/org/myimage
  imagePullSecrets:
  - name: project-azure-reg-creds

В приведенном выше примере project-azure-reg-creds соответствует имени учетной записи реестра, которую вы добавили в Rancher. Также обратите внимание, что ваше развертывание должно быть создано в пространстве имен, назначенном проекту.

1 голос
/ 17 апреля 2019

Кубернетес - это то, что есть. Если вы хотите вытащить из частного репо, вам нужен imagePullSecret. Это верно и для пользовательского интерфейса Rancher, он просто автоматически ассоциируется для вас, поэтому вам не нужно явно определять его самостоятельно.

...