搭建時間:2019.8.16 設備系統:windows10 虛擬軟件:VirtualBox 虛擬系統:Ubuntu 18.04 LTSlinux
感謝如下博客在問題解決中提供的幫助 JerryWangSAP --- 錯誤消息 This computer doesn't have VT-X/AMD-v enabled 向上的路 --- docker跨主機通訊方式四 docker-machinedocker
爲何我會想到要在多臺物理實體主機或虛擬機來搭建集羣呢?緣由有兩個:單臺設備性能極限、災備。第一條緣由很好理解,單臺設備的性能極限。災備的出發點並非容器內單個服務宕機的狀況,而是物理範疇的災備。國內可靠性達到99.99%的雲服務供應商不時宕機的新聞時常會會有報導,但咱們是否有在同一時間段內,兩個或兩個以上雲服務上同時宕機的新聞,咱們有曾聽過嗎?ubuntu
理論分析一下,以99.99%做爲標準,這個數字乍一看確實有種萬無一失的感受,但折算成絕對值的時間,倒是:52.56分鐘/年。若是咱們將服務同時部署在兩個不一樣的雲服務商上呢?服務理論宕機時間爲:0.31秒/年。固然這只是個理論分析,只是在相同預算下,購買分佈在2個或多個雲服務商的主機來搭建集羣,對服務的可靠性提高是不是一個更好的方案呢?vim
Docker文檔在Swarms部分經過"docker-machine create --driver virtualbox myvm1"命令宿主系統內建立虛擬節點,但該命令在本就已是由虛擬機建立的ubuntu系統內是沒法執行成功的,參見JerryWang的Blog。解決這個問題的方法有不少,雙系統、使用Mac等均可行,但受限於某些客觀緣由,而且想要嘗試跨主機構建集羣,所以採用瞭如下解決方案:在VirtualBox虛擬出3套ubuntu系統:A、B、C。其中將A等價爲教程中的宿主操做系統,B、C等價爲教程中宿主操做系統中的兩個節點。經過連通A、B、C來達到與教程在該處相同的效果,同時也是實現了跨主機集羣的搭建。windows
ifconfig // 若信息過長使用 ifconfig >> output 輸出大文件裏使用vim打開查看bash
PermitRootLogin yes服務器
ssh-keygen微信
ssh-copy-id IP
//執行兩次,分別將IP替換爲B、C的IPssh
ssh IP //成功後使用logout推出登陸ide
// docker文檔到此處前並無要求安裝docker-machine,參見官方文檔安裝 // 此命令須要執行兩次,分別使用B、C的IP,NodeName官方文檔分別命名爲了:myvm1 、myvm2,此處我命名爲docker一、docker2 docker-machine create -d generic --generic-ip-address=IP NodeName
docker-machine ls
docker-machine create --driver virtualbox myvm1
docker-machine create --driver virtualbox myvm2
複製代碼
完成docker swarms教程效果截圖以下
完成docker全部get-star教程的效果以下
最後推薦一篇k8s與Docker Swarms對比的文章Ankit Kumar -- Kubernetes vs. Docker Swarm: A Complete Comparison Guide
要獲取更多Haytham原創文章,請關注公衆號"許聚龍":