使用開源Breeze工具部署Kubernetes 1.12.1高可用叢集
Breeze專案是深圳睿雲智合所開源的Kubernetes圖形化部署工具,大大簡化了Kubernetes部署的步驟,其最大亮點在於支援全離線環境的部署,且不需要翻牆獲取Google的相應資源包,尤其適合某些不便訪問網際網路的伺服器場景。
(專案地址
ofollow,noindex" target="_blank">https://github.com/wise2c-devops/breeze )
作者:Alan
Breeze開源工具由以下子專案構成
1. playbook(breeze) 該專案由不同的ansible
playbook構成,分別是docker、etcd、registry、kubernetes
2. yum-repo 該專案用於為安裝過程中提供離線的yum
repo源,包含了docker、kubelet、kubectl、kubeadm、kubernetes-cni、docker-compose等rpm包庫,除此之外我們還包括了可能會用到的ceph及nfs相關rpm
3. deploy-ui 使用者前端UI,採用vue.js框架實現
4. pagoda 實現了對ansible指令碼呼叫的API集
5. kubeadm-version 輸出kubernetes元件映象版本資訊
6. haproxy 用於安裝負載均衡的映象及啟動指令碼
7. keepalived 為負載均衡實現統一入口虛IP的元件映象及啟動指令碼
Breeze軟體架構簡圖:
使用者通過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節點請自行準備即可):
步驟
一、準備部署主機(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 chmodx /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),開始部署工作
(1)點選開始按鈕後,點選 圖示開始新增一個叢集:
(2)點選該叢集圖示進入新增主機介面:
點選右上角“新增主機按鈕”:
反覆依次新增完整個叢集的5臺伺服器:
點選下一步進行服務元件定義
(3)點選右上角“新增元件”按鈕新增服務元件,選擇docker,因為所有主機都需要安裝,因此無需選擇伺服器:
再新增映象倉庫元件
備註:registry entry point預設就填寫Harbor伺服器的IP地址,有些環節可能使用域名則填寫域名
繼續新增etcd元件,這裡我們將其合併部署於k8s master節點,也可以挑選單獨的主機進行部署:
最後新增k8s元件,這裡分為master和minion nodes
備註:這裡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
設定完成的介面如下:
如果要實現高可用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.sh https://raw.githubusercontent.com/ wise2ck8s/keepalived-k8s/master/start-keepalived.sh
注意修改上述指令碼中的VIP地址和網絡卡名與您實際場景一致:
VIRTUAL_IP=192.168.9.30 INTERFACE=ens33
拷貝指令碼至所有master節點:
chmodx /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/
四、點選下一步,執行部署流程:
在接下來的部署過程中,螢幕會有日誌及圖示顏色的動態變化:
當你看見Docker圖示顏色變為綠色的時候,表示所有節點的docker已經能正常執行,此時可以不等後續部署過程結束,立刻去所有k8s master節點進行HA元件的啟用:
docker load -i /root/k8s-ha.tar /root/start-haproxy.sh /root/start-keepalived.sh
然後耐心等待最後部署介面所有元件顏色變為綠色即可結束K8S高可用叢集的部署工作。
驗證:
原文連結:
https://mp.weixin.qq.com/s/6BDwHUOcQZkHmO-h3KgF3Q
關於Wise2C睿雲智合
深圳睿雲智合科技有限公司成立於2012年,總部位於深圳,並分別在成都、深圳設立了研發中心,北京、上海設立了分支機構,核心骨幹人員全部為來自金融、科技行業知名企業資深業務專家、技術專家。早期專注於為中國金融保險等大型企業提供創新技術、電子商務、CRM等領域專業諮詢服務。
自2016年始,在率先將容器技術引進到中國保險行業客戶後,公司組建了專業的容器技術產品研發和實施服務團隊,旨在幫助中國金融行業客戶將容器創新技術應用於企業資訊科技支援業務發展的基礎能力改善與提升,成為中國金融保險行業容器技術服務領導品牌。
此外,憑藉多年來在呼叫中心領域的業務經驗與技術積累,睿雲智合率先在業界推出基於開源軟交換平臺FreeSwitch的微服務架構多媒體數字化業務平臺,將語音、視訊、webchat、微信、微博等多種客戶接觸渠道整合,實現客戶統一接入、精準識別、智慧路由的CRM策略,並以容器化治理來支援平臺的全應用生命週期管理,顯著提升了數字化業務處理的靈活、高效、彈性、穩定等特性,為幫助傳統企業向“以客戶為中心”的數字化業務轉型提供完美的一站式整體解決方案。