minikube 不能在 ubuntu 20.04 LTS 上启动由于 GUEST_PROVISION 退出 解决方案:说明:

如何解决minikube 不能在 ubuntu 20.04 LTS 上启动由于 GUEST_PROVISION 退出 解决方案:说明:

我正在尝试使用 docker 驱动程序在安装了 ubuntu 桌面 20.04 LTS 的 VM 中设置 minikube。

我已按照步骤 here 进行操作,并且还考虑了 docker 驱动程序的限制(报告为 here),这与运行时安全选项有关。当我尝试启动 minikube 时,我得到的错误是:无法启动主机:创建主机:创建:创建:准备 kic ssh:复制公钥。

这就是我为安装 minikube 的全新 VM 所做的。

  1. 安装docker
  2. 将我的用户添加到 docker 组,否则 minkube start 将失败,因为 dockerd 以 root 身份运行(即 docker 术语中的 Rootless 模式)。
  3. 安装 kubectl(这不是必需的,但我选择了这个而不是 minikube 中的嵌入式 kubectl)
  4. 安装 minikube

当我启动 minikube 时,这就是我得到的:

ubuntuDesktop:~$ minikube start
?  minikube v1.16.0 on Ubuntu 20.04
✨  Using the docker driver based on user configuration
?  Starting control plane node minikube in cluster minikube
?  Creating docker container (CPUs=2,Memory=4500MB) ...
✋  Stopping node "minikube"  ...
?  Powering off "minikube" via SSH ...
?  Deleting "minikube" in docker ...
?  StartHost failed,but will try again: creating host: create: creating: prepare kic ssh: copying pub key: docker copy /tmp/tmpf-memory-asset051825440 into minikube:/home/docker/.ssh/authorized_keys,output: lstat /tmp/tmpf-memory-asset051825440: no such file or directory
: exit status 1
?  Creating docker container (CPUs=2,Memory=4500MB) ...
?  Failed to start docker container. Running "minikube delete" may fix it: creating host: create: creating: prepare kic ssh: copying pub key: docker copy /tmp/tmpf-memory-asset544814591 into minikube:/home/docker/.ssh/authorized_keys,output: lstat /tmp/tmpf-memory-asset544814591: no such file or directory
: exit status 1

❌  Exiting due to GUEST_PROVISION: Failed to start host: creating host: create: creating: prepare kic ssh: copying pub key: docker copy /tmp/tmpf-memory-asset544814591 into minikube:/home/docker/.ssh/authorized_keys,output: lstat /tmp/tmpf-memory-asset544814591: no such file or directory
: exit status 1

?  If the above advice does not help,please let us know: 
?  https://github.com/kubernetes/minikube/issues/new/choose

我怀疑该错误与 docker 驱动程序的安全设置问题有关,但这似乎就像一条狗在追尾巴:如果我不在 docker 中使用无根模式,并且尝试使用以下命令启动 minikube sudo(这样docker也可以用特权用户启动),然后我得到这个:

ubuntuDesktop:~$ sudo minikube start
[sudo] password for alberto: 
?  minikube v1.16.0 on Ubuntu 20.04
✨  Automatically selected the docker driver. Other choices: virtualbox,none
?  The "docker" driver should not be used with root privileges.
?  If you are running minikube within a VM,consider using --driver=none:
?    https://minikube.sigs.k8s.io/docs/reference/drivers/none/

❌  Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.

所以,或者我遗漏了什么,或者 minikube 根本无法与 docker 驱动程序一起使用,我对此表示怀疑。

这是我的环境信息:

ubuntuDesktop:~$ docker version
Client:
 Version:           19.03.11
 API version:       1.40
 Go version:        go1.13.12
 Git commit:        dd360c7
 Built:             Mon Jun  8 20:23:26 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.11
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.12
  Git commit:       77e06fd
  Built:            Mon Jun  8 20:24:59 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

ubuntuDesktop:~$ minikube version
minikube version: v1.16.0
commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1-dirty

如果有人在 ubuntu 20.04 上使用 minikube 并且可以共享版本和驱动程序,我将不胜感激。使用 minikube 和 docker 站点中的信息,我不知道还需要检查什么才能使其正常工作。

解决方法

解决方案:

正如我在评论中提到的,您可能只需要运行:

docker system prune

然后:

minikube delete

最后:

minikube start --driver=docker

这应该会有所帮助。

说明:

尽管正如我在评论中已经提到的,很难说在您的具体情况下是什么问题,但这种情况可能是由于之前尝试运行您的 Minikube 实例的失败而导致的。

当使用不同的驱动程序并且它作为 VM 运行时,有时也会发生这种情况,基本上删除这样的 VM 可能会有所帮助。通常运行 minikube delete && minikube start 就足够了。

在这种情况下,当使用 --driver=docker 时,您的 Minikube 实例被配置为您的 docker 运行时 中的容器,但除了容器本身之外,还有其他类似的东西已配置网络或存储。

docker system prune 命令删除所有未使用的容器、网络、图像(悬空的和未引用的)以及可选的卷。所以我们可以肯定地说它是上述之一。

从确切的错误信息来看:

❌  Exiting due to GUEST_PROVISION: Failed to start host: creating host: create: creating: prepare kic ssh: copying pub key: docker copy /tmp/tmpf-memory-asset544814591 into minikube:/home/docker/.ssh/authorized_keys,output: lstat /tmp/tmpf-memory-asset544814591: no such file or directory
: exit status 1

我想这可能只是清除一些对您有帮助的 cached 数据并删除对不存在文件的损坏引用。上面的消息很清楚地说明了什么不能做,即docker不能copy一个public ssh key到目的地minikube:/home/docker/.ssh/authorized_keys作为源文件{{ 1}},它试图从中复制它,根本不存在。所以说发生了什么实际上很简单,但是要能够告诉为什么它发生可能需要深入了解Docker和Minikube 内部结构,并逐步分析如何在使用 /tmp/tmpf-memory-asset544814591 时配置 Minikube 实例。

您可以尝试分析您的 docker 日志是个好主意,但我严重怀疑您是否会在那里找到引用不存在的临时文件 --driver=docker 的确切原因或原因它不存在。

,

问题是 docker 驱动程序不应与 root 权限一起使用。默认情况下,docker 守护进程始终以 root 用户身份运行。要不以 root 用户身份运行 docker 守护进程,请创建一个名为 docker 的 Unix 组并向其中添加用户。当 Docker 守护进程启动时,它会创建一个可供 docker 组成员访问的 Unix 套接字。

运行以下命令来解决这个问题

  1. 如果不存在则创建 docker 组

sudo groupadd docker

  1. 将用户添加到 docker 组

sudo usermod -aG docker [用户]

  1. 激活对组的更改

newgrp 码头工人

  1. 启动 minikube 集群

minikube 启动

,

minikube start --force --driver=docker 帮我修好了

,

如果你使用已经安装了 docker 和 minikube 的 Linux 桌面操作系统,只需运行

recording = new Blob(chunks,{ 'type' : mediaRecorder.mimeType });

并重新启动计算机。 它对我有用。

,

当我尝试在 Minikube 上安装 Ubuntu 20.04 system 时遇到了同样的问题。

“docker system prune”对我的情况没有帮助,但我发现问题的原因是 /varnosuid 选项一起安装,我不得不删除它,重新安装 /var。 minikube 集群初始化然后工作。

我可能太无知了,但我没有发现该信息被列为要求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-