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 4. grep -E --color 'vmx|svm' /proc/cpuinfo 返回 0linux
不管學習docker swarms仍是minikubes,若是你碰到了以上的報錯信息,而且檢索到這篇文章,很遺憾的說,這是一條死路(有點深的坑),別(不建議)浪費時間了.........docker
從docker swarms向k8s過渡時,我碰到了不少坑,最終被docker for mac撈出來。這期間我一共使用瞭如下模式來探索可行性:ubuntu
Docker Swarms 跨主機集羣搭建 只是針對docker swarms的解決方案,爲了學習minikube繼續探索windows
這一條有替代解決方案,後續會給出。bash
中間碰到的問題大體歸結爲3類服務器
將以上情形,根據所使用宿主系統的結構方式差別,我大體將接觸docker swarms和minukube的方式大體分了2類:微信
逐條解釋:網絡
windows操做系統:......性能
linux操做系統 推薦,此處說的linux操做系統是指直接安裝在物理設備上、做爲宿主系統的linux系統,而不是在虛擬機安裝的linux系列系統。對於前者,建議安裝雙系統,對於後者,替代解決方案參見:Docker Swarms 跨主機集羣搭建學習
Mac的OS操做系統 推薦,docker for mac仍是很方便的,尤爲在裝k8s的時候,因爲某些衆所周知的緣由,我被卡了一個星期也跑不起來minikube,可是使用docker for mac和內置k8s安裝器,很是輕鬆的完成了k8s的安裝。
下面開始幾乎都是死路
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,若是有感興趣的能夠嘗試。
不管是docker swarms仍是minikube,仔細觀察會發現他們都是在宿主系統的虛擬軟件中建立了新的虛擬機(經過命令行)
其中,myvm一、myvm2爲docker swarms節點 minikube爲minikbe主節點
是否支持二次虛擬化的判斷標準很簡單,在當前系統(linux爲例)命令行中執行如下指令便可:(其餘系統參見kubernetes document)
grep -E --color 'vmx|svm' /proc/cpuinfo
複製代碼
若是無返回或返回0,則不支持虛擬化 若返回具體數字如4 or 8,則表示可虛擬化
以上
對於雲服務商的ECS不可二次虛擬這點我初始是有些驚訝的,由於若是使用ECS的用戶想要搭建集羣該怎麼辦呢?在我和其中一個雲服務商的工程師聯繫後,獲得了的回覆是:CES和雲虛擬主機都不支持二次虛擬化,裸金屬主機支持。雲服務商也有單獨的集羣相關產品,可是實現方式沒法透露,他們只在使用中提供技術支持。
最後貼上最低配的彈性裸金屬服務器的性能和價格截圖:
要獲取更多Haytham原創文章,請關注公衆號"許聚龍":