Kubernetes无法拉取本地构建的镜像

e5nqia27  于 2023-05-06  发布在  Kubernetes
关注(0)|答案(1)|浏览(245)

我使用的是Kubernetes 1.26,我有一个Kubernetes集群,其中有一个节点既是主节点又是工作节点。我已经在本地构建了一个docker镜像,我可以用docker images命令列出镜像:

$ sudo docker images | grep nipun

nipun/a                                                                    1.0                 ed1059539edf   52 minutes ago   250MB

但是当我在部署中使用imagePullPolicy“Never”或“IfNotPresent”的镜像“nipun/a:1.0”时,Kubernetes也会尝试提取镜像并失败。我的部署定义如下:

apiVersion: apps/v1    
kind: Deployment    
metadata:   
  name: nipun-deployment
  labels:
    app: nipun
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nipun
  template:
    metadata:
      labels:
        app: nipun
    spec:
      containers:
      - name: nipun
        image: nipun/a:1.0
        imagePullPolicy: Never
        ports:
        - containerPort: 8112

这里有什么问题吗?我在较低版本的k8s(可能是1.20)上使用了相同的方法,并且成功了。

eit6fx6z

eit6fx6z1#

首先,你需要构建自己的local docker registry

docker run -d -p 5000:5000 --restart=always --name registry registry:2

然后,您可以按如下方式将图像推送到注册表:

docker tag nipun/a:1.0 localhost:5000/nipun/a:1.0
docker push localhost:5000/nipun/a:1.0

使用部署中的本地注册表设置映像名称:

localhost:5000/nipun/a:1.0

相关问题