使用開源Breeze工具部署Kubernetes 1.12.1高可用集羣

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

Breeze項目是深圳睿雲智合所開源的Kubernetes圖形化部署工具,大大簡化了Kubernetes部署的步驟,其最大亮點在於支持全離線環境的部署,且不需要翻牆獲取Google的相應資源包,尤其適合某些不便訪問互聯網的服務器場景。

(項目地址

https://github.com/wise2c-devops/breeze )

Breeze開源工具由以下子項目構成

  • playbook(breeze) 該項目由不同的ansible playbook構成,分別是docker、etcd、registry、kubernetes
  • yum-repo 該項目用於為安裝過程中提供離線的yum repo源,包含了docker、kubelet、kubectl、kubeadm、kubernetes-cni、docker-compose等rpm包庫,除此之外我們還包括了可能會用到的ceph及nfs相關rpm
  • deploy-ui 用戶前端UI,採用vue.js框架實現
  • pagoda 實現了對ansible腳本調用的API集
  • kubeadm-version 輸出kubernetes組件鏡像版本信息
  • haproxy 用於安裝負載均衡的鏡像及啟動腳本
  • keepalived 為負載均衡實現統一入口虛IP的組件鏡像及啟動腳本

Breeze軟件架構簡圖:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

用戶通過Breeze工具,只需要一臺安裝有Docker及docker-compose命令的服務器,連接互聯網下載一個對應Kubernetes版本的docker-compose.yaml文件即可將部署程序運行出來,對部署機而已,只需能有普通訪問互聯網的能力即可,無需翻牆,因為我們已經將所有Kubernetes所需要的docker鏡像以及rpm包內置於docker image裡了。

如果需要離線安裝,也是極其容易的,只需要將docker-compose.yaml文件裡涉及的docker鏡像保存下來,到了無網環境預先使用docker load命令載入,再運行docker-compose up -d命令即可無網運行部署程序。所有被部署的集群角色服務器,完全無需連入互聯網。

該項目開源,用戶可以很方便的fork到自己的git賬號結合travis自動構建出任意Kubernetes版本的安裝工具。

在我們的實驗環境中準備了六臺服務器,配置與角色如下(如果需要增加Minion/Worker節點請自行準備即可):

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

步驟:

一、準備部署主機(deploy / 192.168.9.10)

(1)以標準Minimal方式安裝CentOS 7.5 (1804) x64之後,登錄shell環境,執行以下命令開放防火牆:

 setenforce 0
sed –follow-symlinks -i “s/SELINUX=enforcing/SELINUX=
disabled/g” /etc/selinux/config
firewall-cmd –set-default-zone=trusted
firewall-cmd –complete-reload

(2)安裝docker-compose命令

curl -L https://github.com/docker/compose/releases/download/1.21.2/
docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

(3)安裝docker

 yum install docker

(4)建立部署主機到其它所有服務器的ssh免密登錄途徑

a) 生成秘鑰,執行:

 ssh-keygen

b) 針對目標服務器做ssh免密登錄,依次執行:

 ssh-copy-id 192.168.9.11ssh-copy-id 192.168.9.12ssh-copy-id 192.168.9.13ssh-copy-id 192.168.9.14ssh-copy-id 192.168.9.20 

二、獲取針對K8S某個具體版本的Breeze資源文件並啟動部署工具,例如此次實驗針對剛剛發佈的K8S v1.12.1

curl -L https://raw.githubusercontent.com/wise2ck8s/breeze/v1.12.1/
docker-compose.yml -o docker-compose.ymldocker-compose up -d

三、訪問部署工具的瀏覽器頁面(部署機IP及端口88),開始部署工作

http://192.168.9.10:88

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

(1)點擊開始按鈕後,點擊+圖標開始添加一個集群:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

(2)點擊該集群圖標進入添加主機界面:

點擊右上角“添加主機按鈕”:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

反覆依次添加完整個集群的5臺服務器:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

點擊下一步進行服務組件定義

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

(3)點擊右上角“添加組件”按鈕添加服務組件,選擇docker,因為所有主機都需要安裝,因此無需選擇服務器:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

再添加鏡像倉庫組件

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

備註:registry entry point默認就填寫Harbor服務器的IP地址,有些環節可能使用域名則填寫域名

繼續添加etcd組件,這裡我們將其合併部署於k8s master節點,也可以挑選單獨的主機進行部署:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

最後添加k8s組件,這裡分為master和minion nodes:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

備註:這裡kubernetes entry point是為了HA場景,比如此次試驗我們在每一個k8s master節點同時各部署了haproxy和keepalived組件,其產生的虛IP是192.168.9.30,端口是6444,那麼我們在這裡應該填寫為192.168.9.30:6444,如果您只安裝一個master,那麼可以填寫為master的入口,例如192.168.9.11:6443

設置完成的界面如下:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

如果要實現高可用HA架構,請提前在部署機準備好以下資源包,詳情請參閱:

https://github.com/wise2ck8s/haproxy-k8s

https://github.com/wise2ck8s/keepalived-k8s

(1)haproxy-k8s鏡像與啟動腳本

(2)keepalived-k8s鏡像與啟動腳本

在部署機上下載兩個鏡像:

 docker pull wise2c/haproxy-k8s
docker pull wise2c/keepalived-k8s

保存鏡像包:

 docker save wise2c/haproxy-k8s wise2c/keepalived-k8s -o /root/k8s-ha.tar

拷貝鏡像包至所有master節點:

 scp /root/k8s-ha.tar 192.168.9.11:/root/
scp /root/k8s-ha.tar 192.168.9.12:/root/
scp /root/k8s-ha.tar 192.168.9.13:/root/

下載啟動腳本

 curl -L /root/start-haproxy.sh https://raw.githubusercontent.com/
wise2ck8s/haproxy-k8s/master/start-haproxy.sh

注意修改上述腳本中的IP地址與您實際場景一致:

 MasterIP1=192.168.9.11
MasterIP2=192.168.9.12

MasterIP3=192.168.9.13
curl -L /root/start-keepalived.shhttps://raw.githubusercontent.com/
wise2ck8s/keepalived-k8s/master/start-keepalived.sh

注意修改上述腳本中的VIP地址和網卡名與您實際場景一致:

 VIRTUAL_IP=192.168.9.30
INTERFACE=ens33

拷貝腳本至所有master節點:

 chmod +x /root/start-haproxy.sh /root/start-keepalived.sh
scp –p /root/start-haproxy.sh 192.168.9.11:/root/
scp –p /root/start-haproxy.sh 192.168.9.12:/root/
scp –p /root/start-haproxy.sh 192.168.9.13:/root/
scp –p /root/start-keepalived.sh 192.168.9.11:/root/
scp –p /root/start-keepalived.sh 192.168.9.12:/root/
scp –p /root/start-keepalived.sh 192.168.9.13:/root/

四、點擊下一步,執行部署流程:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

在接下來的部署過程中,屏幕會有日誌及圖標顏色的動態變化:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

當你看見Docker圖標顏色變為綠色的時候,表示所有節點的docker已經能正常運行,此時可以不等後續部署過程結束,立刻去所有k8s master節點進行HA組件的啟用:

 docker load -i /root/k8s-ha.tar
/root/start-haproxy.sh
/root/start-keepalived.sh

然後耐心等待最後部署界面所有組件顏色變為綠色即可結束K8S高可用集群的部署工作。

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

驗證:

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群

關於Wise2C睿雲智合

深圳睿雲智合科技有限公司成立於2012年,總部位於深圳,並分別在成都、深圳設立了研發中心,北京、上海設立了分支機構,核心骨幹人員全部為來自金融、科技行業知名企業資深業務專家、技術專家。早期專注於為中國金融保險等大型企業提供創新技術、電子商務、CRM等領域專業諮詢服務。

自2016年始,在率先將容器技術引進到中國保險行業客戶後,公司組建了專業的容器技術產品研發和實施服務團隊,旨在幫助中國金融行業客戶將容器創新技術應用於企業信息技術支持業務發展的基礎能力改善與提升,成為中國金融保險行業容器技術服務領導品牌。

此外,憑藉多年來在呼叫中心領域的業務經驗與技術積累,睿雲智合率先在業界推出基於開源軟交換平臺FreeSwitch的微服務架構多媒體數字化業務平臺,將語音、視頻、webchat、微信、微博等多種客戶接觸渠道集成,實現客戶統一接入、精準識別、智能路由的CRM策略,並以容器化治理來支持平臺的全應用生命週期管理,顯著提升了數字化業務處理的靈活、高效、彈性、穩定等特性,為幫助傳統企業向“以客戶為中心”的數字化業務轉型提供完美的一站式整體解決方案。

客戶&合作伙伴

使用開源Breeze工具部署Kubernetes 1.12.1高可用集群


分享到:


相關文章: