问题描述
我们已经在kubernetes集群上使用nexus设置了私有注册。我们将集群IP上的注册信息公开为专用ip,并且我们能够使用docker进行推送。当我使用秘密为私人注册设置Docker凭证时,出现以下错误
Failed to pull image "ip:port/repository/ydocker-repo/apps:tag": rpc error: code = UnkNown desc = Error response from daemon: Get http://ip:port/v2/repository/docker/app/manifests/1.0: no basic auth credentials
我在这里做什么?
下面是我的部署代码
apiVersion: apps/v1
kind: Deployment
Metadata:
name: xyz
spec:
selector:
matchLabels:
app: xyz
replicas: 3
template:
Metadata:
labels:
app: xyz
spec:
containers:
- name: yuwee-app-server
image: ip:port/repository/ydocker-repo/apps:tag
imagePullPolicy: "Always"
stdin: true
tty: true
ports:
- containerPort: port-number
imagePullPolicy: Always
imagePullSecrets:
- name: myregistrykey
restartPolicy: Always
serviceAccountName: default
有人知道如何为clusterIP设置注册机密吗?
解决方法
所以我发现了问题。我的部署位于名称空间内,并且我已在默认名称空间内创建了机密,该名称空间应位于该名称空间内。现在它正在按我的预期工作。
,我通常会按照this k8s文档在私有Docker注册表上配置推/拉。
创建秘密:
kubectl create secret docker-registry docker-secret --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
在部署时参考机密:
imagePullSecrets:
- name: docker-secret
要检查机密信息是否正确,请解码机密.dockerconfigjson:
值。应该类似于以下内容:
{"auths":{"your.private.registry.example.com":{"username":"janedoe","password":"xxxxxxxxxxx","email":"jdoe@example.com","auth":"c3R...zE2"}}}