参考带有命名空间的 Kubernetes Docker 注册表机密



我有什么

我已经在default命名空间中使用了 Kube 机密进行私有 Docker 注册表身份验证。这按预期工作。例如:

$ kubectl get secret regsecret
NAME        TYPE                             DATA      AGE
regsecret   kubernetes.io/dockerconfigjson   1         30m

在我的deployment.yml中引用了它,如下面的代码片段所示:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
template:
...
spec:
containers:
- name:  bootstrap-nginx
image: quay.io/example/nginx:latest
...
imagePullSecrets:
- name: regsecret

这是我的问题

我需要在namepsace中创建上面的regsecret,例如,myns如下所示:

$ kubectl get secret regsecret --namespace=myns
NAME        TYPE                             DATA      AGE
regsecret   kubernetes.io/dockerconfigjson   1         30m

有了这个,如何将regsecretmyns命名空间引用到我的部署规范中?如果我使用如上所示imagePullSecrets,则无法说明 Kubernetes 无法拉取映像(找不到秘密regsecret(。有没有办法在imagePullSecrets中引用"完全限定"的秘密名称?

根据设计,没有办法做到这一点。您需要在部署所在的同一命名空间中创建regsecret

ImagePullSecrets是对同一机密的引用的可选列表 用于拉取此 PodSpec 使用的任何映像的命名空间。如果 指定,这些机密将传递给各个拉拔器 供他们使用的实现。例如,在 docker 的情况下,只有 支持 DockerConfig 类型的机密。

另请参阅: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod

最新更新