使用睿雲智合開源 Breeze 工具部署 Kubernetes v1.12.3 高可用集群


一、Breeze簡介

Breeze 項目是深圳睿雲智合所開源的Kubernetes 圖形化部署工具,大大簡化了Kubernetes 部署的步驟,其最大亮點在於支持全離線環境的部署,且不需要翻牆獲取 Google 的相應資源包,尤其適合某些不便訪問互聯網的服務器場景。詳細資料請閱讀官方文檔(項目地址https://github.com/wise2c-devops/breeze )

二、環境准備

1.系統環境

#主機名稱需要符合DNS命名規則,另外Harbor為必須組件,詳細信息請參考官方文檔

2.操作前准備

1.master與master、master與node、breeze與集群所有主機直接需要ssh互信 #如果機器比較多,ssh互信建議使用腳本來分發秘鑰 2.開放防火牆或者關閉防火牆 3.時間同步,配置時間同步服務 4.集群內主機名可解析
5.VIP綁定的網卡名稱需要一致

秘鑰分發腳本

[root@k8s-deploy ~]# cat fenfa_sshkey.sh #!/bin/bash . /etc/init.d/functions for ip in `cat iplist` do
/usr/bin/expect fenfa_sshkey.exp ~/.ssh/id_rsa.pub $ip > /dev/null 2>&1
if [ $? -eq 0 ]; then action "$ip" /bin/true
else action "$ip" /bin/false fi done
fenfa_sshkey.sh-檢查證書是否存在
[root@k8s-deploy ~]# cat fenfa_sshkey.exp #!/usr/bin/expect if { $argc != 2 } { send_user "usage: expect send_sshkey.exp file host\n" exit } # define var 定義變量 set file [lindex $argv 0] set host [lindex $argv 1] set password "123\$56" #特殊字符需要轉義 spawn ssh-copy-id -i $file $host expect { "yes/no" {send "yes\r";exp_continue} "*password" {send "$password\r"} } expect eof exit -onexit { send_user "good bye...\n" }
fenfa_sshkey.exp-確認命令是否存在

三、開始部署

1.安裝docker-compose命令和docker(deploy上)

[root@k8s-deploy ~]# wget https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m) #注意版本
[root@k8s-deploy ~]# mv docker-compose-Linux-x86_64 docker-compose [root@k8s-deploy ~]# chmod +x docker-compose [root@k8s-deploy ~]# mv docker-compose /usr/bin/
[root@k8s-deploy ~]# yum install docker -y

2.下載breeze對應k8s版本的資源文件,並啟動部署工具(項目地址 https://github.com/wise2c-devops/breeze)

[root@k8s-deploy ~]# wget https://raw.githubusercontent.com/wise2c-devops/breeze/v1.12.3/docker-compose.yml #注意版本號
[root@k8s-deploy ~]# systemctl start docker [root@k8s-deploy ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. [root@k8s-deploy ~]# docker-compose up -d #啟動部署工具,大概會下載1GB左右的文件 [root@k8s-deploy ~]# netstat -tnlp    #查看88端口是否啟動,沒有問題就可以訪問該端口,登錄到web頁面

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

點擊開始按鈕后,點擊+圖標開始添加一個集群:

點擊該集群圖標進入添加主機界面
點擊右上角“添加主機按鈕”

反復依次添加完整個集群的5台服務器加harbor服務器:

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

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

 

再添加鏡像倉庫組件

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

 

添加k8s組件,這里分為master和minion nodes

備注:

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

接下來是設置高可用組件(haproxy+keepalived):

vip for k8s master 是指三個 k8s master 服務器的高可用虛擬浮動 IP 地址;網卡請填寫實際操作系統下的網卡名,注
意請保證 3 個節點網卡名一致; router id 和 virtual router id 請確保不同 k8s 集群使用不同的值。

設置完成的界面如下:

點擊下一步,執行部署流程:,在接下來的部署過程中,屏幕會有日志及圖標顏色的動態變化, 耐心等待最后部署界面所有組件顏色變為綠色即可
結束 K8S 高可用集群的部署工作。

 四、驗證

五、其他

1.各組件yaml文件路徑,其中/etc/kubernetes/manifests/下的組件表示將會被創建為static pod

2.influxdb存儲問題

[root@k8s-master-03 kubernetes]# grep volumes: -A  3  ./influxdb.yaml volumes: - name: influxdb-storage emptyDir: {} ---

influxdb默認使用的存儲類型為emptyDir,意味着pod被重建之后數據會丟失,如果需要使用influxdb建議使用持久存儲

3.Chrome瀏覽器無法訪問dashboard問題

解決方法:https://www.cnblogs.com/panwenbin-logs/p/10052554.html  ,此文檔中有關於相關問題的解決方法

#本文內容完全抄自官方文檔 

 




 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM