天天看點

如何使用Docker Machine部署Swarm叢集

大家好,今天我們來研究一下如何使用docker machine部署swarm叢集。docker machine提供了标準的docker api 支援,是以任何可以與docker守護程序進行互動的工具都可以使用swarm來(透明地)擴增到多台主機上。docker machine可以用來在個人電腦、雲端以及的資料中心裡建立docker主機。它為建立伺服器,安裝docker以及根據使用者設定來配置docker用戶端提供了便捷化的解決方案。我們可以使用任何驅動來部署swarm叢集,并且swarm叢集将由于使用了tls加密具有極好的安全性。

下面是我提供的簡便方法。

如何使用Docker Machine部署Swarm叢集

<a target="_blank"></a>

docker machine 在各種linux系統上都支援的很好。首先,我們需要從github上下載下傳最新版本的docker machine。我們使用curl指令來下載下傳最先版本docker machine ie 0.2.0。

64位作業系統:

<code># curl -l https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 &gt; /usr/local/bin/docker-machine</code>

32位作業系統:

<code># curl -l https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-i386 &gt; /usr/local/bin/docker-machine</code>

下載下傳了最先版本的docker machine之後,我們需要對 /usr/local/bin/ 目錄下的docker-machine檔案的權限進行修改。指令如下:

<code># chmod +x /usr/local/bin/docker-machine</code>

在做完上面的事情以後,我們要確定docker-machine已經安裝正确。怎麼檢查呢?運作<code>docker-machine -v</code>指令,該指令将會給出我們系統上所安裝的docker-machine版本。

<code># docker-machine -v</code>

如何使用Docker Machine部署Swarm叢集

為了讓docker指令能夠在我們的機器上運作,必須還要在機器上安裝docker用戶端。指令如下。

<code># curl -l https://get.docker.com/builds/linux/x86_64/docker-latest &gt; /usr/local/bin/docker</code>

<code># chmod +x /usr/local/bin/docker</code>

在将docker machine安裝到我們的裝置上之後,我們需要使用docker machine建立一個machine。在這篇文章中,我們會将其部署在digital ocean platform上。是以我們将使用“digitalocean”作為它的driver api,然後将docker swarm運作在其中。這個droplet會被設定為swarm主要節點,我們還要建立另外一個droplet,并将其設定為swarm節點代理。

建立machine的指令如下:

<code># docker-machine create --driver digitalocean --digitalocean-access-token &lt;api-token&gt; linux-dev</code>

備注: 假設我們要建立一個名為“linux-dev”的machine。是使用者在digital ocean cloud platform的digital ocean控制台中生成的密鑰。為了擷取這個密鑰,我們需要登入我們的digital ocean控制台,然後點選api選項,之後點選generate new token,起個名字,然後在read和write兩個選項上打鈎。之後我們将得到一個很長的十六進制密鑰,這個就是了。用其替換上面那條指令中的api-token字段。

現在,運作下面的指令,将machine 的配置變量加載進shell裡。

<code># eval "$(docker-machine env linux-dev)"</code>

如何使用Docker Machine部署Swarm叢集

docker machine digitalocean cloud

然後,我們使用如下指令将我們的machine标記為active狀态。

<code># docker-machine active linux-dev</code>

現在,我們檢查它(指machine)是否被标記為了 active "*"。

<code># docker-machine ls</code>

如何使用Docker Machine部署Swarm叢集

docker machine active list

現在,在我們建立完成了machine之後。我們需要将swarm docker鏡像部署上去。這個machine将會運作這個docker鏡像,并且控制swarm主要節點和從節點。使用下面的指令運作鏡像:

<code># docker run swarm create</code>

如何使用Docker Machine部署Swarm叢集

docker machine swarm create

如果你想要在32位作業系統上運作swarm docker鏡像。你需要ssh登入到droplet當中。

<code># docker-machine ssh</code>

<code># exit</code>

在我們的swarm image已經運作在machine當中之後,我們将要建立一個swarm主要節點。使用下面的語句,添加一個主要節點。

<code># docker-machine create \</code>

<code>-d digitalocean \</code>

<code>--digitalocean-access-token &lt;digitalocean-token&gt;</code>

<code>--swarm \</code>

<code>--swarm-master \</code>

<code>--swarm-discovery token://&lt;cluster-id&gt; \</code>

<code>swarm-master</code>

如何使用Docker Machine部署Swarm叢集

docker machine swarm master create

現在,我們将要建立一個swarm從節點,此節點将與swarm主要節點相連接配接。下面的指令将建立一個新的名為swarm-node的droplet,其與swarm主要節點相連。到此,我們就擁有了一個兩節點的swarm叢集了。

<code>--swarm-discovery token://&lt;token-from-above&gt; \</code>

<code>swarm-node</code>

如何使用Docker Machine部署Swarm叢集

docker machine swarm nodes

現在,我們連接配接swarm主要節點以便我們可以依照需求和配置檔案在節點間部署docker容器。運作下列指令将swarm主要節點的machine配置檔案加載到環境當中。

<code># eval "$(docker-machine env --swarm swarm-master)"</code>

然後,我們就可以跨節點地運作我們所需的容器了。在這裡,我們還要檢查一下是否一切正常。是以,運作docker info指令來檢查swarm叢集的資訊。

<code># docker info</code>

我們可以用docker machine輕而易舉地建立swarm叢集。這種方法有非常高的效率,因為它極大地減少了系統管理者和使用者的時間消耗。在這篇文章中,我們以digital ocean作為驅動,通過建立一個主要節點和一個從節點成功地部署了叢集。其他類似的驅動還有virtualbox,google cloud computing,amazon web service,microsoft azure等等。這些連接配接都是通過tls進行加密的,具有很高的安全性。如果你有任何的疑問,建議,回報,歡迎在下面的評論框中注明以便我們可以更好地提高文章的品質!

<b>原文釋出時間為:2015-08-03</b>

<b></b>

<b>本文來自雲栖社群合作夥伴“linux中國</b>

繼續閱讀