Amazon-Web-Services
如何在 Kubernetes 中更新 AWS ECR 儲存庫的密碼?
我使用 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 對其進行配置,然後執行 a
kubectl 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 系統資料庫相關的任何事情時使用。