1. 程式人生 > >如何構建Piel.io的微服務交付第一篇:搭建Rancher Server

如何構建Piel.io的微服務交付第一篇:搭建Rancher Server

幾個月前,我們開始嘗試在我們的網站Piel.io上使用Rancher來構建我們的第一個微服務,在此期間,Rancher釋出了1.0版。所以我覺得這是一個很好的時間點,我將通過三篇blog跟大家分享一下我們是如何通過Rancher來構建Piel.io的微服務交付的。

本文希望可以幫助到那些剛剛接觸Rancher的使用者,對Rancher已經十分熟悉的技術大拿們可以跳過。第一篇,我將介紹下如何搭建自己的Rancher Server。第二篇,我將介紹下如何構建、配置以及整合自己的Docker Registry。第三篇,我們將討論下如何通過Stack向企業提供一個可用的平臺,可用於描述、部署和管理多種的業務應用。

首先,準備一臺虛擬機器。我是從vutlr.com上購買了一個Ubuntu 14.04 LTS.

前提:安裝Docker

curl -fsSL https://get.docker.com/ | sh

安裝完成後,用docker –v命令進行驗證:

docker -v
Docker version 1.10.3, build 20f81dd

成功,可以繼續。

docker pull rancher/server:v1.0.0
v1.0.0: Pulling from rancher/server

8387d9ff0016: Already exists

3b52deaaf0ed: Already exists
4bd501fad6de: Already exists a3ed95caeb02: Already exists 1dd2ffa08394: Already exists 6574a9c2d75b: Already exists fedb745f2358: Already exists 951a2617430a: Already exists 04f380ccb3c6: Already exists 6367f33eed6c: Already exists Digest: sha256:7634423082be8a3c7a7aafa71f3b344f212ce1b75ee3f4263362fbc87812bf6b
Status: Downloaded newer image for rancher/server:v1.0.0

成功!

容器環境下,可以通過volume來配置資料保持。我們先建立一個目錄:

mkdir -p /data/rancher-server

執行剛才已下載的Rancher image
注:docker run可以直接下載Rancher image,為了讓大家瞭解整個過程我在此把這兩步拆解了

sudo docker run -d -v /data/rancher-server:/var/lib/mysql --restart=always -p 80:8080 rancher/server:v1.0.0

f83e74a6b8f5c20d74acad519004635a74662954634966606e9046a7be29233b

看上去已經成功了,我們來驗證一下:

docker ps

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES

f83e74a6b8f5        rancher/server:v1.0.0   "/usr/bin/s6-svscan /"   35 seconds ago      Up 34 seconds       3306/tcp, 0.0.0.0:80->8080/tcp   distracted_elion

啟動了,但名字有點醜陋(Docker的自動命名導致),所以我幹掉了這個容器,重新執行命令並增加 –name rancher-server引數。

sudo docker run -d -v /data/rancher-server:/var/lib/mysql --restart=always -p 80:8080 --name rancher-server rancher/server:v1.0.0

1fa9cc4013e8e17f1ac175b011955308089819e8c10d423e3b06ed09c536e864

docker ps

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES

1fa9cc4013e8        rancher/server:v1.0.0   "/usr/bin/s6-svscan /"   3 seconds ago       Up 2 seconds        3306/tcp, 0.0.0.0:80->8080/tcp   rancher-server

接下來訪問Rancher Server主頁:

這裡寫圖片描述

好極了,現在Rancher Server已經啟動,可以通過8080埠訪問並配置了資料保持,當我們升級或者遷移Rancher Server時所有的配置都可以被儲存。

接下來我把主題從淺色設定為了深色,你可以跳過此步驟。

這裡寫圖片描述

同時,我們還可以通過頁面右下角的設定切換顯示語言,可進行一鍵切換。(已提供中文支援)

這裡寫圖片描述

現在任何人都可以通過此URL訪問到Rancher,所以我啟用了Github認證(Rancher目前支援AD、Github、本地賬戶以及OpenLDAP四種認證方式)。

系統管理 > 訪問控制

根據頁面說面完成訪問控制配置,我在此就不再重複說明了。

這裡寫圖片描述

輸入客戶端ID以及客戶端祕鑰,Github認證頁面將彈出並要求確認和授權。

配置完成後,我們已經成功設定了Rancher Server的訪問控制。

這裡寫圖片描述

讓我們重啟回顧下我們完成了哪些工作:

我們下載了Rancher Server 1.2.0-pre3的容器映象並使其執行在埠8080,啟動了資料保持方便日後的升級和運維操作。同時啟用了通過github進行認證的訪問控制。

下一篇文章,我會建立一個Docker Registry並且介紹如何在Rancher中使用它。