Kubernetes是否缓存docker-registry机密?

时间:2018-10-12 12:49:35

标签: kubernetes minikube aws-ecr

我们正在从运行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的值保持不变,即使在删除并重新创建机密之后也是如此。这对我来说有点不直观,我应该如何更新我的秘密?

1 个答案:

答案 0 :(得分:1)

我使用此解决方案已有几个月没有问题了。它在您的群集中运行,并让您的机密保持刷新。 https://github.com/upmc-enterprises/registry-creds