0

我使用 JFrog 存储库作为我的私人注册表。我已经指定了秘密,以便通过 JFrog 进行身份验证。但它说

Failed to pull image "private_registry/image_name": rpc error: code = Unknown desc = failed to pull and unpack image "private_registry/image_name": failed to resolve reference "": failed to authorize: failed to fetch oauth token: unexpected status: 401 Unauthorized
  Warning  Failed     2s (x2 over 14s)  kubelet, worker-0  Error: ErrImagePull

Pod-def.yml

我也创建了一个秘密文件。但它仍然没有拉图像。当我这样做时docker image pull private_registry/image_name,图像会被拉出。

4

1 回答 1

1

从这个问题来看,很明显它由于某种原因无法进行身份验证,这可能是秘密的错误配置,也可能是所使用的凭证无效。

由于secret.yaml文件不存在,不知道格式。

在这种情况下,我建议看两件事

  1. 检查凭据是否正确。(在这种情况下,可能您可以使用docker pullafterdocker login与相同的凭据)

如果您能够成功拉取图像,请看下一点。

  1. 在此,您可以检查图表中配置或传递凭据的方式是否正确。

在不同的情况下有不同的方式来传递凭证,你可以看看这个官方文档。devops 交流中 ,答案也可能有助于获得一些见解。

这是我的secret.yaml样子:

---
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Chart.Name }}-docker-credentials
  namespace: {{ .Release.Namespace }}
  labels:
    app: {{ .Chart.Name }}
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
    release: "{{ .Release.Name }}"
type: kubernetes.io/dockercfg
data:
  .dockercfg: {{ "{\".Values.REGISTRY.URL>>/\":{\"username\":\".Values.REGISTRY.USER_NAME>>\",\"password\":\".Values.REGISTRY.PASSWORD>>\",\"email\":\".Values.REGISTRY.EMAIL>>\",\"auth\":\".Values.REGISTRY.AUTH_TOKEN>>\"}}" | b64enc | quote }}


在我做的部署中:

spec:
   imagePullSecrets:
      - name: {{ .Chart.Name }}-docker-credentials

既然你已经解决了,希望这对其他人有帮助。

于 2020-11-17T03:21:13.357 回答