无法在Docker Desktop Kubernetes中使用本地Docker镜像

3

我有这个Kubernetes的YAML文件

apiVersion: v1
kind: Service
metadata:
  name: incremental-api-load-balancer
spec:
  selector:
    app: incremental-api
    tier: api
  ports:
  - protocol: "TCP"
    port: 80
    targetPort: 80
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: incremental-external-api-service
spec:
  selector:
    app: incremental-external-api
    tier: sidecar
  ports:
  - protocol: "TCP"
    port: 80
    targetPort: 80
  type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: incremental-api-deployment
spec:
  selector:
    matchLabels:
      app: incremental-api
      tier: api
      track: stable
  replicas: 3
  template:
    metadata:
      labels:
        app: incremental-api
        tier: api
        track: stable
    spec:
      containers:
      - name: incremental-flask-app
        image: incremental-flask
        imagePullPolicy: Never
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: incremental-external-api-deployment
spec:
  selector:
    matchLabels:
      app: incremental-external-api
      tier: sidecar
      track: stable
  replicas: 1
  template:
    metadata:
      labels:
        app: incremental-external-api
        tier: sidecar
        track: stable
    spec:
      containers:
      - name: incremental-external-api
        image: incremental-external-api
        imagePullPolicy: Never

当我执行

docker images ls

我知道了

REPOSITORY                                  TAG                                        IMAGE ID            CREATED             SIZE
incremental-flask                             latest                                     8bbc4c45efdf        2 minutes ago       1.21GB
incremental-external-api                        latest                                     532203259006        3 minutes ago       1.2GB

根据这个回答 - Docker for Mac(Edge) - Kubernetes - reference local image

我应该拉取本地镜像。

但是,当我运行时出现了以下情况:

kubectl get pods

incremental-api-deployment-98b5d7c95-bmqbf         0/1       ErrImageNeverPull   0          1m
incremental-api-deployment-98b5d7c95-tktqv         0/1       ErrImageNeverPull   0          1m
incremental-api-deployment-98b5d7c95-xcwk2         0/1       ErrImageNeverPull   0          1m
incremental-external-api-service-deployment-b9dddff77-6z4p9   0/1       ErrImageNeverPull   0          1m

我正在使用Docker桌面版运行本地集群,并且希望拉取本地镜像。
为什么会出现这个错误?

你的Kubernetes设置是什么?你在使用minikube吗? - 0x9BD0
2
@Philibobby 我相信他正在使用现在作为Docker分发的内置Kubernetes解决方案。 - Andrei Dascalu
@praks5432 我也遇到了同样的问题。你有关于解决方案的任何更新吗? - Rupesh
2个回答

1

--image-pull-policy=Never

使用“Never”选项将会使用本地镜像库,而不是强制拉取远程仓库的最新版本,因为使用“always”选项时,会去查找远程仓库并拉取最新版本。

当你添加了“Never”选项后,将会使用本地镜像库。


0

只需使用特定的标签版本,而不是使用“latest”(请查看此处的配置最佳实践)。


这个答案已经包含在他链接的帖子中,但对他来说并不起作用。 - Daniel Arechiga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接