Как обновить пароль для репозитория AWS ECR в Kubernetes?

Я создал частный реестр докеров с помощью AWS ECR. Я хочу использовать его с кластером Kubernetes, управляемым Rancher, но пароль к реестру меняется AWS каждые 12 часов. Как сохранить его в секрете в кластере?

1 ответ

Самый простой способ создать и обновить секрет реестра Docker в Rancher 2.x для репозитория AWS ECR — настроить задание CRON, которое использует AWS CLI и Kubectl.

  • Войдите на хост-компьютер, на котором работает кластер.
  • Установите интерфейс командной строки AWS и настройте его для использования роли IAM, которая может читать учетные данные ECR.
  • Проверьте конфигурацию CLI с помощью этой команды:

aws ecr --region <регион_вашего_ecr> get-login-password

  • Установите kubectl и настройте его с помощью yaml для кластера, в котором вы хотите определить секрет, затем запуститеkubectl get podsчтобы убедиться, что все в порядке.
  • Создайте такой сценарий оболочки (необходимо удалить, поскольку по какой-то причине нет возможности обновить/перезаписать секрет):
       kubectl delete secret <name_of_the_docker_registry_secret>
kubectl create secret docker-registry <name_of_the_docker_registry_secret> \
  --docker-server=<your_ecr_registry_uri> \
  --docker-username=AWS \
  --docker-password=$(aws ecr --region <your_ecr's_region> get-login-password) \
  --docker-email=<your_notification_email>
  • Настройте задание cron для запуска этого сценария оболочки каждые 6 часов (AWS сбрасывает пароль каждые 12 часов, так что на всякий случай).

Секрет будет отображаться в проекте по умолчанию для кластера и будет использоваться каждый раз, когда Kubernetes захочет сделать что-то, связанное с вашим реестром ECR.

Другие вопросы по тегам