k3s容器化的使用到目前為止或多或少還是發現不少問題,不過相對於相對較小的項目或者個人使用來說,應該還是很不錯的選擇,可以滿足絕大多數的場景應用;而且總結對比了官方文檔后,搭建初始化的步驟也越發簡單明了。
實列:
master1-192.168.17.85(MySQL5.7版本以上,默認賬號密碼都是root)
master2-192.168.17.86(rancher-stable版本)
master3-192.168.17.87
nginx轉發-192.168.17.88
由於測試設備的不足,部分資源都是重復使用,按理來說應該最好能獨立負責相應的業務。
三台master主機負責k3s的集群搭建,nginx負責代理三台的api地址,也就是默認的6443的端口業務鏈接,保證以后有新的work節點加入,有一個唯一的地址值。
首先
做好准備工作:1.搭建MySQL5.7以上版本,保存三台master地址信息2.安裝nginx3.安裝rancher單節點服務
注意點
1.nginx新增nginx.conf中的配置
stream { upstream k3s { server 192.168.17.87:6443; server 192.168.17.86:6443; server 192.168.17.85:6443; } server { listen 6443; proxy_pass k3s; } }
2.安裝rancher單節點命令
docker run -d --restart=unless-stopped --name rancher-server -v /data/rancher/:/var/lib/rancher/ -p 8088:80 -p 8443:443 --privileged rancher/rancher:stable
最新版本新增了--privileged參數,需要注意!
其次
在任意一台master中執行官方文檔提供的命令,指定server角色
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint='mysql://root:root@tcp(192.168.17.85:3306)/k3s'
等待幾分種后,第一台master就安裝完畢,這時需要獲取server的tocken值
cat /var/lib/rancher/k3s/server/node-token
保證server服務的唯一性
其他另外兩台master就可以執行最新的命令
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh |K3S_TOKEN=token值 INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint='mysql://root:root@tcp(192.168.17.85:3306)/k3s'
完成以上步驟后,驗證集群是否創建成功
最后
進入安裝好的rancher界面,導入已創建好的k3s集群
需要注意點
最后一步導入過程需要執行命令,在其中任何一台master上就可以執行,但第二條和第三條命令由於本機curl不支持https的鏈接,所以可以手動下載yaml文件后,再使用使用kubectl命令執行yaml文件。
總結
k3s現在的集群搭建已經比剛開始的官方給出的文檔要好很多了,也是比較推薦k3s+MySQL+rancher的組合。