私有 docker 存储库上的"拉取映像失败:拉取访问被拒绝"



我正在尝试通过Kubernetes运行我的节点应用程序(它成功地在我的带有Docker Desktop的PC上运行(。这是一个树莓派多节点ubuntu-kubeadm服务器(一切都是最新的稳定版本(。我确实有成功的pod在这台服务器上运行。我按照Kubernetes官方指南登录到docker hub上的私人docker存储库。我已经仔细检查了我的凭据,我可以在没有sudo权限的情况下使用docker。

下面列出了我的确切设置,如果你想让我添加更多信息,请发表评论!

我的错误代码:

未能提取图像";matthewine/node工具:重写":rpc错误:code=未知desc=来自守护进程的错误响应:matthewine/node工具的pull访问被拒绝,存储库不存在或可能需要"docker登录":被拒绝:请求的对资源的访问被拒绝

我的regcreddocker机密:

data:
.dockerconfigjson: ey...==
kind: Secret
metadata:
creationTimestamp: "2022-01-10T23:34:40Z"
name: regcred
namespace: default
resourceVersion: "1807979"
uid: 69...
type: kubernetes.io/dockerconfigjson

我的node-ht部署:

apiVersion: apps/v1
metadata:
name: node-ht
namespace: node
...
spec:
replicas: 1
selector:
matchLabels:
app: node-ht
template:
metadata:
...
spec:
containers:
- name: node-ht
image: matthewvine/node-tools:rewrite
ports:
- containerPort: 3000
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
imagePullSecrets:
- name: regcred
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600

My Soluton:原来这是一个简单的命名空间问题。机密需要与尝试使用它们的资源位于同一命名空间中。

密钥必须与分发命名空间位于同一位置。

如果您想将您的docker机密连接到kubernetes,您可以使用以下方法。

基于现有Docker凭据创建机密(链接(

kubectl create secret generic regcred 
--from-file=.dockerconfigjson=<path/to/.docker/config.json> 
--type=kubernetes.io/dockerconfigjson

我想你已经这么做了。名称空间的更改应该可以解决问题

最新更新