【发布时间】:2019-03-17 16:57:47
【问题描述】:
我们正在从运行 Kubernetes 的私有 ECR (AWS) 中提取图像,该 Kubernetes 随 Docker for Mac (minikube) 一起提供。我们有一个名为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 中提取 minikube 中的 AWS ECR: no basic auth credentials 错误。
当我重复这个过程,但我重命名秘密,即aws-creds-2,一切正常。我怀疑存在某种缓存。事实上,我通过以下方式验证了这一点:
kubectl get secret aws-cred --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode
我可以看到password 的值保持不变,即使在删除并重新创建秘密之后也是如此。这对我来说有点不直观,我应该如何更新我的秘密?
【问题讨论】:
标签: kubernetes minikube aws-ecr