当前位置: 首页 > 面试题库 >

拉本地图像以在Kubernetes中运行Pod

邓阳炎
2023-03-14
问题内容

我有一个由Dockerfile创建的以下图像:

REPOSITORY   TAG      IMAGE ID       CREATED       SIZE 
ruby/lab     latest   f1903b1508cb   2 hours ago   729.6 MB

我有以下YAML文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: ruby-deployment
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: ruby
    spec:
      containers:
      - name: ruby-app
        image: ruby/lab
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 4567

创建部署时,我在窗格中获得以下信息:

ruby-deployment-3830038651-sa4ii   0/1       ImagePullBackOff   0          7m
ruby-deployment-3830038651-u1tvc   0/1       ImagePullBackOff   0          7m

Failed to pull image "ruby/lab:latest": Error: image ruby/lab not found下面的错误:

 8m            2m              6       {kubelet minikube}      spec.containers{ruby}   Normal          Pulling         pulling image "ruby/lab:latest"
 8m            2m              6       {kubelet minikube}      spec.containers{ruby}   Warning         Failed          Failed to pull image "ruby/lab:latest": Error: image ruby/lab not found
 8m            2m              6       {kubelet minikube}                              Warning         FailedSync      Error syncing pod, skipping: failed to "StartContainer" for "ruby" with ErrImagePull: "Error: image ruby/lab not found"

为此,在docker中真正有必要注册吗?我只想在本地进行测试并将我的代码/存储库传递给朋友以进行测试

谢谢


问题答案:

您可以通过运行将Docker客户端指向VM的docker守护程序

eval $(minikube docker-env)

然后,您可以正常使用kubectl构建映像并正常创建kubernetes资源。确保你有

imagePullPolicy: IfNotPresent

在您的YAML或JSON规范中。

此外,还有一个标志可以将不安全的注册表传递给minikube VM。但是,必须在初次创建计算机时指定它。

minikube start --insecure-registry

使用私有注册表http://kubernetes.io/docs/user-
guide/images/
时,您可能还需要阅读此内容。



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

  • 我正在与Docker一起学习Kubernetes,以启动一个简单的Python web应用程序。我对以上所有技术都是新手。 以下是我计划采用的方法: 安装库伯内特斯。 在本地建立并运行一个集群。 安装Docker. 创建Python应用程序 我成功地安装了Kubectl在我的本地使用巧克力以下的指示https://kubernetes.io/docs/tasks/tools/install-kub

  • 当我使用以下命令运行下面的代码时 spark-提交prepiadstream_sample.py--主本地[3]--名称prepiadstream_sample--名称-执行器5--执行器-内存5G--驱动程序-内存5G 虽然我在Spark submit本地运行了配置,但我发现在代码中打印出的配置以客户端的身份返回部署模式,所以Spark不应该使用coniguration命令行

  • 问题内容: 我已经使用安装了React 。它安装得很好,但是我试图将图像加载到我的一个组件(,文件路径:)中,但是没有加载。这是我的代码: 如果我在变量中写入图像路径,则会出现错误: 编译失败。 ./src/Components/common/Header.js中的错误 找不到模块:/ var / www / html / wistful / src / Components / common中的

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

  • 我可以在docker上导入此图像,但无法运行。 我所做的: 将图像文件从“.img”格式压缩为“.tar.gz”格式,以便导入docker图像。我使用7-zip工具来转换这个。 我使用这个新文件(.tar.gz)<从本地文件导入了docker图像 试图运行此导入的映像,但失败。 执行的命令: 我对此错误进行了大量搜索,发现为了运行,我们需要指定创建映像时使用的路径(在Dockerfile中),但我