利用Rancher管理阿里雲Kubernetes叢集
Rancher是企業級容器管理平臺,可以支援在多個雲平臺上建立和管理Kubernetes叢集。最近Rancher宣佈了增加了對阿里雲Kubernetes服務(ACK)的支援,將在19年初發布的Rancher 2.2版本里支援通過UI和API建立和管理ACK叢集,詳細見: ofollow,noindex" target="_blank">https://rancher.com/press/2018-11-12-press-release-kubecon-china/
那麼在2.2釋出之前,有沒有辦法先嚐鮮一下呢?有的,現在Rancher最新的版本為2.1.1,利用匯入叢集的功能,可以把一個建立好的ACK叢集匯入到Rancher中並進行管理。下面我們就來看看怎麼做。
建立ACK叢集
如果你還沒有阿里雲Kubernetes叢集,可以在阿里雲控制檯建立一個。點選控制檯右上角的“建立Kubernetes叢集“的按鈕,按提示即可建立成功。具體操作請參考幫助文件。
安裝Rancher
如果沒有安裝Rancher,可以按照Rancher快速入門 https://rancher.com/quick-start/ 安裝一個。
首先進入阿里雲控制檯建立一臺ECS,規格和作業系統參見快速入門。本文我建立了一個4c16G ECS,作業系統為Ubuntu 16.04,併為ECS掛了一個EIP,允許從公網訪問。記得安全組要開啟22埠和443埠。
登入進入ECS,安裝Docker CE。可以參考文件:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
Docker安裝成功後執行如下命令:
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
訪問 https:// {Rancher Server EIP地址},就可以看到Rancher的介面了
匯入ACK叢集
在Rancher匯入ACK叢集之前,需要現在ACK叢集中建立一個為Rancher的admin使用者建立名為 cluster-admin-binding
的clusterrolebinding,執行如下命令:
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user user-xxxx
那麼這個使用者ID從哪裡獲得呢?可以在Rancher介面上進入“使用者”管理介面,用其中Default Admin的使用者ID即可。
clusterrolebinding建立成功後,點選介面右上腳的“新增叢集”按鈕,選擇“匯入現有的Kubernetes叢集“。
給叢集起個名字後點擊建立會建立好需要部署到K8S的YAML檔案,在你的ACK叢集上執行YAML檔案即可完成Kubernetes叢集的匯入工作。
注意,由於本次部署的Rancher Server使用自簽名SSL證書會導致資源建立失敗,建議用以下的方式建立。在Rancher Server的介面也有相應提示。
curl --insecure -sfL https://<Rancher Server EIP地址>/v3/import/xxxx.yaml | kubectl apply -f -
回到Rancher介面,等到叢集變成‘Active’狀態。
看到這個介面你可以利用Rancher UI來管理阿里雲Kubernetes叢集了。
支援的叢集型別
本文在普通叢集和託管版叢集上驗證通過,在Kuernetes上通過Virtual Kubeletes addon增加serveless的叢集也支援用Rancher管理。Serverless addon相關內容可以參考雲棲文章:
阿里雲Kubernetes容器服務 - 使用彈性容器例項ECI和Virtual Kubelet快速部署Serverless Addon
小結
阿里雲Kubernetes服務(ACK)已在全球十六個地區推出,為客戶提供雲原生方式和開放式容器技術,幫助企業加速數字化轉型。通過支援Rancher,將推動企業通過Kubernetes完成向雲遷移和多雲管理的程序。有關ACK的詳細資訊可以參考 https://www.aliyun.com/product/kubernetes 。