4

我们正在从运行 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

然后基本上重复上面的步骤,获取一个新的令牌。但是我注意到,我仍然无法从我们的 ECRAWS ECR: no basic auth credentials中提取 minikube 中的错误。

当我重复该过程,但我秘密重命名为 时aws-creds-2,一切正常。我怀疑存在某种缓存。事实上,我使用以下方法验证了这一点:

kubectl get secret aws-cred --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode

我可以看到该password值保持不变,即使在删除并重新创建秘密之后也是如此。这对我来说有点不直观,我应该如何更新我的秘密?

4

1 回答 1

1

我已经使用这个解决方案几个月了,没有任何问题。它在您的集群内运行并保持您的秘密更新。 https://github.com/upmc-enterprises/registry-creds

于 2018-10-14T08:14:57.997 回答