Rancher 佈署 K8S 至 OpenStack 流程
此篇不是利用Rancher 的 Node Driver 連線至OpenStack的方式,而是利用 Rancher 建立 cluster 的 custom 搭配 OpenStack VM 的 cloud-init 方式
OpenStack 本身有 Magnum 幫忙建立 Kubernetes,為什麼還要用Rancher? 因為我在使用Magnum的時候,時常建立失敗,所以改用Rancher,不過還是推薦使用Magnum,與OpenStack整合比較方便。
Rancher 端
建立 cluster,選擇 custom

輸入 cluster 名稱,選擇 k8s 版本,以及網路 Provider,完成後選擇下一步

此時會跳出command,要你輸入在被安裝 k8s 的機器上,腳色勾選 etcd 和 control plane,我們先稱呼為 Master 節點,將指令複製

如果要建立 Worker ,步驟同上,只是腳色勾選 worker,並複製指令。
OpenStack 端
建立 Master VM
建立 VM 前,請先設定安全群組,根據節點開啟port號
etcd
master
worker
443 TCP
443 TCP
443 TCP
2379 TCP
2379 TCP
6443 TCP
2380 TCP
2380 TCP
9099 TCP
6443 TCP
6443 TCP
10254 TCP
8472 UDP
10250 TCP
8472 UDP
9099 TCP
10254 TCP
8472 UDP
建立 Master VM ,image 選擇 ubuntu 16.04 cloud image,重點在於 Configuration,這裡輸入的腳本為cloud init的腳本,在 VM 第一次開機後,會按照腳本進行動作,我們在腳本內寫入兩件事:
安裝docker
安裝k8s master
安裝K8s master 就是在 Rancher 端複製的指令(請替換成自己Rancher產生的指令),所以腳本內容為
#!/bin/sh
sudo curl https://releases.rancher.com/install-docker/17.03.sh | sh
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.0.5 --server https://10.50.2.9 --token 5spw8d6xp9b4rkx6mnbhp5nrsnqmgjmrz4x8h4s6fcnp8t48flzpgs --ca-checksum 7c2c35acef98590e2310b1dc054a8475bb19f220217b64cb52e86a99c6c46bc4 --etcd --controlplane

VM 建立完成後,可以查看 VM 的開機 log,可以看到過程中會安裝docker,以及啟動rancher的agnet去安裝k8s maser

建立 Worker VM
步驟同上,只是在 Configuration 的腳本內,把安裝Master的指令換成,Rancher 端複製的 worker 指令
結果
在 VM 啟動了 rancher 的 agnet 後,可以在 Rancher 端的 cluster 看到節點正在安裝 k8s

都安裝完成後,可以 ssh 進入 master 安裝 kubectl後,至 cluster 點選 kubeconfig,複製後,把檔案放到 ~/.kube/config, 就可以用 kubectl 操作 k8s
root@demo1-master:~# kubectl get node
NAME STATUS ROLES AGE VERSION
demo1-master Ready controlplane,etcd 39m v1.10.5
demo1-worker Ready worker 25m v1.10.5
Last updated
Was this helpful?