当前位置: 首页 > 知识库问答 >
问题:

无法从本地注册表中提取用于Kubernetes部署的docker映像

欧阳睿范
2023-03-14

我在Linode上有一个K8s集群和另一个用于操作的VM。

我已经安装了Docker

注意:我还没有在这个虚拟机上安装迷你库贝。

我可以构建我的映像,但无法将其从本地注册表拉到k8s pod。

以下是我已经做过的事情

  1. 创建docker镜像并将其推送到本地注册表
  2. 从图像中运行docker容器,但不会在K8s中被拉入
  3. 创建“regcred”secret并在部署yaml中使用它
  4. 创建映像并使用VM的IP推送(10.128.234.123:5000/应用程序前端),并在部署映像引用中使用相同的映像
  5. 将图像拉取策略更改为IfNotPresent

我在pod描述中得到以下错误:

  Warning  ErrImageNeverPull  11s (x4 over 13s)  kubelet            Container image "localhost:5000/app-frontend" is not present with pull policy of Never
  Warning  Failed             11s (x4 over 13s)  kubelet            Error: ErrImageNeverPull

下面是我的部署yaml:

  apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: app-frontend
      labels:
        app: app-frontend
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: app-frontend
      template:
        metadata:
          labels:
            app: app-frontend
        spec:
          containers:
            - name: app-frontend
              image: localhost:5000/docker-image
              imagePullPolicy: Never
              ports:
                - containerPort: 80
          imagePullSecrets:
          - name: regcred

任何帮助或指导,不胜感激。

共有1个答案

宋宏毅
2023-03-14

在文档中,我看到了

当imagePullPolicy设置为“从不”时,从不提取图像。

试试这个

imagePullPolicy: IfNotPresent

image: localhost:5000/docker-image

但在第4点。您指定的 IP

 类似资料:
  • 问题内容: 我在机器上安装了docker,并且在其中安装了docker的minikube上,所以可能我有两个在不同VM上运行的docker实例 我建立一个图像并对其进行标记,然后将其推入本地注册表,并成功将其推入,我也可以从注册表中将其拉出,也可以在运行curl以获取标签列表时得到结果,这就是我所做的 以上所有步骤均正常进行,没有任何问题。 我的问题是当我运行minikube并尝试在其中的本地注册

  • 我觉得自己很蠢。我希望K8s从本地注册表中拉出Docker图像,以确保我的开发周期尽可能快。 我已经按照说明设置了本地注册表,并且正在使用一个不安全的注册表。我已经向它推送了图像,并通过使用VS代码的Docker扩展查看注册表内部来确认它们位于注册表中: 我真的不知道是使用、还是,所以我都使用了这三种方法。

  • 我尝试使用minikube从本地docker镜像和docker hub部署kubernetes。但两者都不起作用。 方法1:使用保存和加载tar文件,创建了图像,它可用于kubectl。 执行以下命令以创建部署: 从kubectl描述pod命令, 方法2:我将映像推送到我的docker hub存储库(https://hub.docker.com/r/get2arun/elk/tags),然后在终端

  • 我正在使用OpenShift版本: 我的docker版本是: 要在我的计算机上启动本地OpenShift群集,我执行了以下步骤:https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md#linux 我想部署一个Redis实例,由于没有默认的Redis模板(有20个默认模板),我从URL将其加载为JSON模板:ht

  • 问题内容: 我已经建立了一个4节点kubernetes集群,该集群运行都在CoreOS上运行的多容器Pod。这些图像来自公共和私人存储库。现在,我必须登录到每个节点,并在每次更新图像时手动下拉图像。我希望能够自动将其拉出。 我试过在每台服务器上运行docker登录并将.dockercfg文件放在/ root和/ core中 我也使用.docker / config.json完成了上述操作 我已将密

  • 我创建了一个docker映像,并将其推入(标记然后推入)本地不安全的docker-registry v2,该v2运行在192.168.99.100:5000/image/name上。 在VM内部的/var/lib/boot2docker/profile上,我向EXTRA_ARGS添加了标志 。 &从在Docker(VM)中运行良好。 _catalog可以从邮递员:获得注册表中的图像。 我将使用以下