如何在群集ip上设置私有注册凭证

问题描述

我们已经在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"}}}