Juan Jimenez Asked: 2021-07-17 16:55:02 +0800 CST2021-07-17 16:55:02 +0800 CST 2021-07-17 16:55:02 +0800 CST 如何在 Kubernetes 中更新 AWS ECR 存储库的密码? 772 我使用 AWS ECR 创建了一个私有 docker 注册表。我想将它与 Rancher 管理的 Kubernetes 集群一起使用,但是 AWS 每 12 小时更改一次注册表的密码。如何将其更新为集群中的机密? password amazon-web-services kubernetes rancher ecr 1 个回答 Voted Best Answer Juan Jimenez 2021-07-17T16:55:02+08:002021-07-17T16:55:02+08:00 在 Rancher 2.x 中为 AWS ECR 存储库创建和更新 docker-registry 密钥的最简单方法是设置使用 AWS CLI 和 Kubectl 的 CRON 作业。 登录到运行集群的主机 安装 AWS CLI 并将其配置为使用可以读取 ECR 凭证的 IAM 角色。 使用以下命令测试 CLI 配置: aws ecr --region <your_ecr's_region> 获取登录密码 安装 kubectl 并使用要在其中定义机密的集群的 yaml 对其进行配置,然后运行 akubectl get pods以确保一切正常。 创建一个这样的 shell 脚本(删除是必要的,因为由于某种原因无法更新/覆盖秘密): 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 小时运行一次此 shell 脚本(AWS 每 12 小时重置一次密码,所以为了安全起见)。 该密钥将显示在集群的默认项目中,并且将在 Kubernetes 想要执行与您的 ECR 注册表相关的任何事情时使用。
在 Rancher 2.x 中为 AWS ECR 存储库创建和更新 docker-registry 密钥的最简单方法是设置使用 AWS CLI 和 Kubectl 的 CRON 作业。
kubectl get pods
以确保一切正常。该密钥将显示在集群的默认项目中,并且将在 Kubernetes 想要执行与您的 ECR 注册表相关的任何事情时使用。