我们正在从运行Docker for Mac(minikube)的运行Kubernetes的私有ECR(AWS)提取图像。我们有一个名为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
的值保持不变,即使在删除并重新创建机密之后也是如此。这对我来说有点不直观,我应该如何更新我的秘密?
答案 0 :(得分:1)
我使用此解决方案已有几个月没有问题了。它在您的群集中运行,并让您的机密保持刷新。 https://github.com/upmc-enterprises/registry-creds