1.System has not been booted with systemd as init system (PID 1). Can't operate.
2.Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
3.Package virtualbox is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'virtualbox' has no installation candidate
无论学习docker swarms还是minikubes,如果你碰到了以上的报错信息,并且检索到这篇文章,很遗憾的说,这是一条死路(有点深的坑),别(不建议)浪费时间了.........
从docker swarms向k8s过渡时,我碰到了很多坑,最终被docker for mac捞出来。这期间我一共使用了以下模式来探索可行性:
> 只是针对docker swarms的解决方案,为了学习minikube继续探索尝试使用WSL搭建集群,失败:支持虚拟化,报(PID 1)的问题这一条有替代解决方案,后续会给出。尝试使用AliCloud的ECS搭建集群,失败:不支持二次虚拟化Mac for docker。docker swarms成功,k8s成功
中间碰到的问题大致归结为3类
将以上情形,根据所使用宿主系统的结构方式差异,我大致将接触docker swarms和minukube的方式大致分了2类:
逐条解释:
下面开始几乎都是死路 4. WSL:windows subsystem for linux 不想装虚拟机的用户win用户可能会想到这条路,但是会报出以下错误:System has not been booted with systemd as init system (PID 1). Can't operate.大致意思就是WSL并非系统id为1的线程,无法完成你想要进行的操作。这是一条“死路",但并非完全不可解,国外有位大佬想到一条替代解决方案:将docker安装在win系统,连接windows的docker与WSL。Running Docker containers on Bash on Windows,如果有感兴趣的可以尝试。
其中,myvm1、myvm2为docker swarms节点 minikube为minikbe主节点
是否支持二次虚拟化的判断标准很简单,在当前系统(linux为例)命令行中执行以下指令即可:(其他系统参见kubernetes document)
grep -E --color 'vmx|svm' /proc/cpuinfo
如果无返回或返回0,则不支持虚拟化
若返回具体数字如4 or 8,则表示可虚拟化
以上
对于云服务商的ECS不可二次虚拟这点我初始是有些惊讶的,因为如果使用ECS的用户想要搭建集群该怎么办呢?在我和其中一个云服务商的工程师联系后,得到了的回复是:CES和云虚拟主机都不支持二次虚拟化,裸金属主机支持。云服务商也有单独的集群相关产品,但是实现方式无法透露,他们只在使用中提供技术支持。
最后贴上最低配的弹性裸金属服务器的性能和价格截图:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。