kubernetes的集群搭建有多種方式:二進(jìn)制、kubeadm、ansible自動化、minikube。minikube方式比較簡單,但是只是單節(jié)點(diǎn),適合學(xué)習(xí)kubernetes基礎(chǔ)的時(shí)候使用。其他的方式安裝都會出各種問題。我花了一個(gè)星期,嘗試了這幾種方式,除了minikube,其他都沒有成功。從centos到Ubuntu,心力交瘁。
前幾天在跟同事聊天的時(shí)候,我對他說,kubernetes的學(xué)習(xí)終止于環(huán)境搭建。同事神秘的一笑,對我說,我有一個(gè)秘籍,五分鐘搭建、百分百成功,看你骨骼驚奇,一包辣條賣給你吧。
我以不相信的語氣說,憋™吹牛逼了,你倒是說呀。同事伸出兩根手指
- 拉取rancher容器
- 在rancher界面安裝kubernetes
超過五分鐘,說明你網(wǎng)速不好。我一聽果然是我不知道的一種方式,下班后立馬回家嘗試,于是有了以下的記錄。
主機(jī)準(zhǔn)備
我們一定要保證以上環(huán)境的初始化信息正常,主要是IP和主機(jī)名,IP一定要配置為靜態(tài)IP,主機(jī)名一定要修改為不同的,具體可參考上一篇文章VMware Fusion安裝CentOS7并配置網(wǎng)絡(luò)
k8s-master上執(zhí)行初始化
- 安裝rancher
# 拉取rancher/rancher:v2.0.0鏡像,這個(gè)是在Docker hub上,不推薦使用最新的rancher鏡像
docker run -d --restart=always -p 80:80 -p 443:443 rancher/rancher:v2.0.0
- 配置時(shí)間同步
# 在所有機(jī)器上安裝
yum install -y ntp ntpdate
# ************在192.168.143.130上修改***********
# 修改/etc/ntp.conf,注釋掉server開頭的幾行,增加如下
server ntp3.aliyun.com iburst
# 192.168.143.2是網(wǎng)關(guān)地址
restrict 192.168.143.2 mask 255.255.255.0 nomodify notrap
# 注釋掉這一行
# restrict 127.0.0.1
- 開放主機(jī)端口主要是方便各主機(jī)之間的通信,這些命令要在所有主機(jī)上都執(zhí)行
firewall-cmd --zone=public --add-port=2379/tcp --permanent
firewall-cmd --zone=public --add-port=2380/tcp --permanent
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --zone=public --add-port=10250/tcp --permanent
firewall-cmd --reload
其他主機(jī)初始化
yum install -y ntp ntpdate
# 修改/etc/ntp.conf,注釋掉server開頭的幾行,增加如下
server 192.168.143.130 prefer
# 注釋掉這一行
# restrict 127.0.0.1
# 保存以上文件后,在控制臺執(zhí)行以下命令同步一次
ntpq -p
在rancher上執(zhí)行初始化操作
上面我們已經(jīng)在主機(jī)上安裝好了rancher,通過瀏覽器打開https://192.168.143.130,先設(shè)置admin用戶的密碼,然后下一步就行了
修改語言為簡體中文,然后點(diǎn)擊左上角的集群,再點(diǎn)擊右邊的添加集群
選擇Custom,表示自建kubernetes集群,如果已經(jīng)有了集群,可以點(diǎn)擊import,導(dǎo)入現(xiàn)有集群
名稱隨便填,其他的先不用管,點(diǎn)擊下一步
首先把三個(gè)都選中,我們這里是要先創(chuàng)建kubernetes集群的master節(jié)點(diǎn),所以必須都選中,否則創(chuàng)建不成功,然后點(diǎn)擊生成命令旁邊的復(fù)制,復(fù)制需要執(zhí)行的命令后,在我們的k8s-master主機(jī)執(zhí)行此命令,執(zhí)行成功后會在以上界面的左下角顯示一臺主機(jī)已注冊,然后點(diǎn)擊Done
回到集群界面,點(diǎn)擊集群右邊的三個(gè)小點(diǎn),選擇編輯,有些版本這里顯示的升級,就點(diǎn)擊升級按鈕
在這個(gè)界面選中控制和工作節(jié)點(diǎn),然后復(fù)制命令,在其他的主機(jī)上去執(zhí)行命令,每個(gè)主機(jī)執(zhí)行完后,都會在左下角顯示主機(jī)已注冊,都執(zhí)行完后點(diǎn)擊保存。每個(gè)主機(jī)加入集群后都會進(jìn)行一番初始化操作,這個(gè)時(shí)間視機(jī)器的情況而定。
主機(jī)注冊完后,就會在上面這里看到我們已經(jīng)注冊的集群,點(diǎn)擊后顯示如下
點(diǎn)擊節(jié)點(diǎn)就可以看到我們的主機(jī)機(jī)器,我們的三節(jié)點(diǎn)kubernetes集群就搭建完成了。是不是非常簡單,而且是界面化操作,非常方便,幾乎不會出現(xiàn)錯(cuò)誤。
rancher可以安裝kubernetes,也提供了很多操作,但是我還是建議通過kubectl命令進(jìn)行操作。如果你已經(jīng)非常熟悉了,使用可視界面能提高效率,如果你剛接觸kubernetes,命令行方式更利于學(xué)習(xí)。
異常問題
在搭建過程中可能出現(xiàn)的問題是機(jī)器初始化的問題,比如多個(gè)機(jī)器的主機(jī)名相同或者IP地址相同,只要注意這兩點(diǎn),幾乎不會出任何問題。