breeze工具部署Kubernetes(1.17.3)集羣

部署環境:

名稱 IP 備註

master01

192.168.2.1 master,etcd
master02 192.168.2.2 master,etcd
master03 192.168.2.3 master,etcd
node01 192.168.2.4 node
node02 192.168.2.5 node
node03 192.168.2.6 node
node04 192.168.2.7 node
breeze 192.168.2.8 breeze部署機
harbor 192.168.2.9 harbor鏡像倉庫

 

 

 

 

 

 

 

 

 

 

 

部署機配置:

  關閉selinux和配置firewalld防火牆

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

  服務器時間同步:

yum install ntp -y
ntpdate time.windows.com

  安裝使用工具:

yum install docker lrzsz vim net-tools wget epel-release -y
yum install ansible -y

  安裝docker-compose命令:

    下載連接:https://github.com/docker/compose/releases/,下載需要的版本,實例使用1.24版本

    

cp docker-compose1.24-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

  下載用於部署某個Kubernetes版本的docker-compose文件,實例是centos7,版本1.17.3

    將文件內容https://github.com/wise2c-devops/breeze/blob/v1.17.3/docker-compose-centos.yml複製到本地

    vim docker-compose.yml

    

  docker啓動:

systemctl start docker
systemctl enable docker

  docker-compose運行部署文件:docker-compose up -d

  

  部署完成截圖:

  

  部署機上安裝其他服務器的ssh免密登錄:

    ssh-keygen 後面一直回車就行

    ssh-copy-id 192.168.2.1

    ...

    ssh-copy-id 192.168.2.9

    中間會有兩段交互信息,輸入密碼即可

      Are you sure you want to continue connecting (yes/no)? yes

      [email protected]'s password:

  使用ansible同步其他服務器的時間:

vim /etc/ansible/hosts  #輸入其他服務器,具體使用參考ansible配置
ansible all -m command -a 'yum install ntp -y'
ansible all -m command -a 'ntpdate time.windows.com'
ansible all -m cron -a "minute=00 hour=01 day=* month=* weekday=* name='Ntpdate server for sync time' job='ntpdate time.windows.com'"

 

WEB部署集羣:

  打開瀏覽器,訪問部署程序的圖形界面(部署機 IP 及端口 88),添加主機列表、添加服務角色並將加入的主機進行角色分配,然後開始部署:http://192.168.2.8:88

  創建集羣主機,master、node、harbor

  添加組件:

  docker組件添加:希望Breeze部署程序使用界面裏輸入的主機名代替當前服務器的主機名,則勾選format host name選項框

  harbor組件安裝:鏡像倉庫設置這裏如果選擇某個版本,那麼Breeze會自動部署非https的Harbor,如果在版本里選擇external,那麼Breeze則不再部署Harbor而是和現有Harbor做對接;參數harbor entry point是指用戶端訪問鏡像倉庫的URL,可以直接寫IP地址或寫對應的域名;如果對接外部的Harbor,請注意勾選外部Harbor是以http訪問還是以https訪問的

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

  etcd組件安裝:Etcd可以選擇部署於K8S Master節點也可以選擇獨立的三臺主機,Back up etcd database folder and upgrade etcd cluster 和 Make a snapshot backup for etcd and upgrade etcd cluster 這兩個選項是用於升級環節的,在升級Etcd集羣前做備份,默認新裝集羣不要勾選這兩項

  kubernetes組件安裝:Kubernetes entry point是指高可用的一個設定值,如果生產環境有硬件或軟件負載均衡指向這裏的k8s master所有節點,那麼就可以在這裏填寫負載均衡的統一入口地址。相對於昂貴的F5專業硬件設備,我們也可以使用HAProxy和Keepalived的組合輕鬆完成這個設置,Breeze自帶這個組合模塊的部署。例如下圖的 192.168.2.10:6444 就是k8s集羣高可用的統一入口,k8s的worker node會使用這個地址訪問API Server。請注意如果使用的是Breeze自帶的高可用組件haproxy+keepalived,則請填寫實際的虛IP與默認端口6444。Just add new worker nodes, do not reinstall this cluster這個選項是用於向現有集羣添加計算節點(Worker Nodes),Upgrade existing cluster和Upgrade K8s nodes automatically選項用於升級現有集羣而不是新裝集羣,而在生產環境升級集羣一般採用對節點逐步進行,Breeze只負責將需要升級的鏡像及腳本發到工作節點,應由管理員手動執行,並在執行過程中觀察業務應用的高可用不受影響,如果勾選了Upgrade K8s nodes automatically這一切會全自動進行,如果所有業務都是有多副本分佈在不同計算節點,那麼這不會影響業務服務,否則不推薦使用這種方式進行集羣在線升級。關於升級的詳情,請參考breeze視頻演示。Kubernetes的界面裏還有CNI模型供選擇,請按實際需求選擇部署Flannel、Calico還是Canal,至於Calico又分爲IPIP隧道模式和BGP路由模式,還需要注意集羣規模,詳情請參考Calico官方網站文檔解釋。對於網絡地址範圍CIDR參數共有三個,分別是Pod、Service、和ClusterIP的地址範圍定義,默認值即可正常工作,除非它與你實際網絡分配相沖突,才需要手動修改後進行部署

 

  點擊下一步,開始安裝:

  等待安裝,當上圖圖標全都變爲綠色時,就表示安裝成功

  可以在部署機上輸入命令 docker logs -f deploy-main 來獲取更詳細的日誌

  安裝完成查看:

 

訪問dashboard:

Kubernetes Dashboard的訪問入口我們採用了NodePort:30300的方式暴露端口,因此可以通過火狐瀏覽器訪問 https://任意服務器IP:30300 來登錄Dashboard頁面,注意其它瀏覽器例如Chrome因爲不接受自簽名證書會拒絕訪問請求;新版本Dashboard引入了驗證模式,可以通過以下命令獲取admin-user的訪問令牌:

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

  問題:安裝後,發現集羣並沒有安裝上dashboard

  解決:登陸master01,進入目錄/var/tmp/wise2c/kubernetes,運行命令:kubectl apply -f kubernetes-dashboard.yml和kubectl apply -f kubernetes-dashboard-svc.yml即可解決

 

 

參考文檔:https://github.com/wise2c-devops/breeze/blob/v1.17.3/BreezeManual-CN.md

常見排錯說明在此: https://github.com/wise2c-devops/breeze/blob/master/TroubleShooting-CN.md

 

 

 

-----------日常記錄---------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章