1.選擇原因
在K8s選型的時候?qū)Ρ冗^ KubeOperator,OpenShift,Rancher,裸金屬等
- 裸金屬 搭建比較費勁,維護比較費勁
- OpenShift 比較重
- KubeOperator 給百度交了廣告費 ,感覺不靠譜 (不喜勿噴,就這么隨意)
- Rancher 安裝和使用很簡單
讓我這半吊子運維覺得安裝和使用都很簡單,我很難拒絕這一部分,就選擇它了。
2. Rancher介紹
Run Kubernetes Everywhere
From datacenter to cloud to edge, Rancher lets you deliver Kubernetes-as-a-Service.
有興趣可以去官網(wǎng)看看介紹,我懶得復制粘貼了。
3. 安裝Rancher2.0
這是一臺K8s集群管理機器,建議找一臺不要加入集群的機器,當然你也可以不采納我的建議,這臺機器配置無需太高,推薦4C8G的機器,條件不允許的話也可以更低
$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
對的,你沒看錯,就這么一句話。
等這個運行好了就直接進入 https://NodeIP 就可以安裝指引配置管理員賬號和密碼啥的。
這里要注意的就是在填寫IP的時候一定要填寫正確
4.構(gòu)建K8s集群

你可以導入一個已有的集群,也可以創(chuàng)建下面的任意托管集群,或者自定義集群,這里我是自己的機器所以選的自定義。

你也可以看著下面的參數(shù)去進行配置,沒啥需要注意的按照中文走就完事了。

這里的高級選項的話授權(quán)集群訪問地址選擇禁用,你可以按照你的需要去勾選。端口地址這里不建議修改,因為要開防火墻的端口,搞起來比較麻煩。
我這里這里填寫一個名字就完事了,然后點擊下一步。

注意:這里的高級選項要點開,去配置內(nèi)網(wǎng)地址和節(jié)點名稱,不然會出現(xiàn)稀奇古怪的問題
這里有三個主機角色 Etcd,Control,Worker
Etcd 是負責存儲的
Control 是控制器
Worker 是工作節(jié)點
這里Rancher官網(wǎng)的HA部署建議是任意一臺加入集群的機器都勾選三個角色,但是我不接受他的建議
裸金屬搭建K8s的經(jīng)驗告訴我,Master就是Etcd,Control,Node就是Worker 所以我選擇 Etcd,Control放在一起,Worker單獨放。我這里這里小集群的話Etcd和Control放在一臺機器上面。建議將穩(wěn)定性高的機器做為Master因為這臺機器只要求穩(wěn)定性,Pod調(diào)度默認也不會調(diào)度到這臺機器上,對性能要求沒有Worker高。有錢的話忽略這一段。
注意:在將機器加入集群之前先將端口號開放才行,不然集群不會正常運行
Rancher-Server(也就是你裝Rancher那臺機器)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
# 如果你的22沒有開放的話也是需要開放的
# firewall-cmd --zone=public --add-port=22/tcp --permanent
Etcd
firewall-cmd --zone=public --add-port=2079-2380/tcp --permanent
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=8472/udp --permanent #注意這里是udp的
firewall-cmd --reload
Control
firewall-cmd --zone=public --add-port=2079-2380/tcp --permanent
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=8472/udp --permanent #注意這里是udp的
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent
firewall-cmd --reload
Worker
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=8472/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=30000-49999/tcp --permanent
firewall-cmd --zone=public --add-port=9099/tcp --permanent
firewall-cmd --zone=public --add-port=10254/tcp --permanent
firewall-cmd --zone=public --add-port=19796/tcp --permanent
firewall-cmd --zone=public --add-port=9796/tcp --permanent
firewall-cmd --zone=public --add-port=4789/udp --permanent
firewall-cmd --zone=public --add-port=6783-6784/udp --permanent
firewall-cmd --zone=public --add-port=2376/tcp --permanent
firewall-cmd --zone=public --add-port=2379-2380/tcp --permanent
firewall-cmd --zone=public --add-port=6783/tcp --permanent
firewall-cmd --zone=public --add-masquerade --permanent # 沒有這個內(nèi)部會無法通信
firewall-cmd --reload
端口開放后再執(zhí)行加入命令就完事了
這里要注意先加入Master再加入Worker(雖然不知道是為啥,但是反正就是要這樣做)。

執(zhí)行完畢后應該會啟動一個代理的鏡像

這個鏡像等下集群啟動起來后會自動刪除的,不用在意。如果你想查看進度就可以執(zhí)行下面的代碼查看日志
$ docker logs 314ee0d78cdb

全部機器執(zhí)行完畢后就等就好了,這個鏡像有一個多G,慢慢等吧。
等機器的機器起來后就應該可以看到這樣的界面

然后你的Rancher集群就搭建完畢了。