Amazon-Web-Services

如何在 Kubernetes 中更新 AWS ECR 儲存庫的密碼?

  • July 22, 2021

我使用 AWS ECR 創建了一個私有 docker 系統資料庫。我想將它與 Rancher 管理的 Kubernetes 集群一起使用,但是 AWS 每 12 小時更改一次系統資料庫的密碼。如何將其更新為集群中的機密?

在 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 &lt;name_of_the_docker_registry_secret&gt;
kubectl create secret docker-registry &lt;name_of_the_docker_registry_secret&gt; \
  --docker-server=&lt;your_ecr_registry_uri&gt; \
  --docker-username=AWS \
  --docker-password=$(aws ecr --region &lt;your_ecr's_region&gt; get-login-password) \
  --docker-email=&lt;your_notification_email&gt;
  • 設置一個 cron 作業以每 6 小時執行一次此 shell 腳本(AWS 每 12 小時重置一次密碼,所以為了安全起見)。

該密鑰將顯示在集群的預設項目中,並且將在 Kubernetes 想要執行與您的 ECR 系統資料庫相關的任何事情時使用。

引用自:https://serverfault.com/questions/1069868