Защищает ли Kubernetes секреты реестра? - PullRequest
0 голосов
/ 12 октября 2018

Мы извлекаем изображения из частного ECR (AWS) под управлением Kubernetes, который поставляется с Docker для Mac (мини-куб).У нас есть секрет под названием aws-cred.Я создал его, используя:

kubectl create secret docker-registry aws-creds --docker-server=OUR-ACCOUNT.ecr.eu-central-1.amazonaws.com --docker-username=AWS --docker-password=SUPER_LONG_TOKEN --docker-email=foo@bar.com

вместе с этим в моих развертываниях:

"imagePullSecrets":[{"name":"aws-creds"}]

SUPER_LONG_TOKEN Я получаю при запуске:

aws ecr get-login --region eu-central-1 --profile default --no-include-email

Конечно, срок действия токена истекаетЧерез несколько часов я попытался освежить секрет.Сначала я удалил секрет:

kubectl delete secret aws-creds

Затем, в основном, повторил шаги, описанные выше, получив свежий токен.Однако я заметил, что все еще не могу вытащить из нашего ECR сообщение об ошибке AWS ECR: no basic auth credentials в мини-кубе.

Когда я повторяю процесс, но я переименовываю секрет, то есть в aws-creds-2, все работает.Я подозреваю, что существует какое-то кеширование.На самом деле я проверил это, используя:

kubectl get secret aws-cred --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode

, и я вижу, что значение password остается неизменным даже после удаления и повторного создания секрета.Это немного не понятно для меня, как мне вместо этого обновить свой секрет?

1 Ответ

0 голосов
/ 14 октября 2018

Я использую это решение в течение нескольких месяцев без проблем.Он работает внутри вашего кластера и обновляет ваш секрет.https://github.com/upmc-enterprises/registry-creds

...