我有什么
我已经在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
有了这个,如何将regsecret
从myns
命名空间引用到我的部署规范中?如果我使用如上所示imagePullSecrets
,则无法说明 Kubernetes 无法拉取映像(找不到秘密regsecret
(。有没有办法在imagePullSecrets
中引用"完全限定"的秘密名称?
根据设计,没有办法做到这一点。您需要在部署所在的同一命名空间中创建regsecret
。
ImagePullSecrets
是对同一机密的引用的可选列表 用于拉取此 PodSpec 使用的任何映像的命名空间。如果 指定,这些机密将传递给各个拉拔器 供他们使用的实现。例如,在 docker 的情况下,只有 支持 DockerConfig 类型的机密。
另请参阅: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod