Rancher 2.5.7 with container in Azure 安裝小記
OS: openSUSE Leap 15.2 in Azure
Rancher: 2.5.7
今年又開始重拾 Kubernetes 的研讀, 之前就有注意 Rancher 的相關消息, 在 SUSE 正式併購 Rancher 之後, 就有打算找時間看看他
目前的想法就是研讀 K8S 的時候, 搭配他來看看, 因為是嘗試, 就從 single node with container 方式開始
安裝需求
https://rancher.com/docs/rancher/v2.x/en/installation/requirements/
以 single-node 方式, 規格是 1 vCPU 4GB RAM / 2 vCPU 8GB RAM, 換成 Azure Virtual Machine 的 Size 比較節費的就是 Standard_B2ms
使用 SSH 連入建立的 openSUSE Leap 15.2 in Azure
切換身份爲 root
> sudo su -
啟動 docker 服務, 並預設啟動
# systemctl start docker
# systemctl enable docker
叄考官方文件 啟用 rancher container
https://rancher.com/docs/rancher/v2.x/en/installation/other-installation-methods/single-node-docker/
因為是測試性質, 所以使用 docker 方式 A Docker installation of Rancher is recommended only for development and testing purposes.
For Rancher v2.5+, the Rancher backup operator can be used to migrate Rancher from the single Docker container install to an installation on a high-availability Kubernetes cluster. For details, refer to the documentation on migrating Rancher to a new cluster.
這樣看起來至少都要考慮 Rancher 2.5 以上的版本爲佳
啟動 Rancher
#docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:latest
然後在 Azure 的 網路安全性群組 開放 Port 443 與 Port 80
開啟瀏覽器 https://YOUR_IP:443
會看到歡迎畫面
輸入管理者 admin 的密碼
勾選同意協定 -- > Continue
設定 Rancher 的 URL
輸入相關 IP 或是 URL 後 -- > Save URL
接下來會看到歡迎畫面與 Rancher 2.5 的介紹視窗
這樣可以清楚的知道目前使用的是 Rancher 2.5 (笑)
觀察一下目前的歡迎畫面
右下角可以調整介面的語系, 可以調整成自己想要的語系
切換後的樣貌
我們來嘗試透過 Rancher 來建立 AKS Cluster 吧
點選 添加叢集
看的出來有支援很多種型態
這邊我點選 Azure AKS
接下來有看到設定畫面
在新增 Cluster 之前要先處理 Azure 上面 Service principals 的部分
我是使用 Azure 的 Cloud Shell 來進行
建議建立之前可以先使用下列指定觀察目前的 Service principals
$ az ad sp list --all --output table
根據官方文件建立 Service Principal
$ az ad sp create-for-rbac --skip-assignment --name testRancherServicePrincipal
這樣的方式顯示出來的欄位爲 appID / displayName / name / password / tenant
可是其實我們只需要的是 Subscription ID / Client ID / Tenant ID / Client Secret
補充: Client ID 就是 AppID, Client Secret 就是 password, 所以只差了 Subscription ID
所以決定把剛剛那個 Service Principal 先刪除了 ( 順便複習一下之前的 )
使用剛剛的指令加上 grep Rancher 找出剛剛的 Service Principal
$ az ad sp list --all --output table | grep Rancher
參考之前自己的文章
刪除剛剛建立的 Service Principal
$ az ad sp delete --id 8faa88b0-a540-4d8c-a790-1ca6a0522dsd
8faa88b0-a540-4d8c-a790-1ca6a0522dsd 爲剛剛建立的 AppId, 可以看第三欄位
建立 Service Principal
$ az ad sp create-for-rbac --name testRancherServicePrincipal-20210404 --query '{"client_id": appId, "secret": password, "Tenant_id": tenant}'
這邊有個雷點, 不可以加上 --skip-assignment 否則會遇到權限不足的問題, 會遇到錯誤訊息 access was recently granted, please refresh your credentials
這次的指令相比於之前自己文章的指令, 有加上 --name 的選項在裡面, 如果沒有使用 --name 指定名稱, 預設會是 azure-cli-20xx-xx-xx-xx-xx-xx, 這樣的好處是可以知道建立時間, 所以我的名稱也有加入時間進去, 以免以後不知道那個 SP 過期
加上 --query 的方式, 輸出自己要的資訊
接下來取得 Subscription ID
使用 az account 指令取得
$ az account show --query "{ subscription_id: id }"
{
"subscription_id": "6a2bdf3b-XXXX-XXXX-XXXX-3371d3401feb"
}
好的, 原料備齊, 回到 Rancher 填入資訊
點選 Next: Authenticate & configure nodes
再次提醒自己剛剛在建立 az ad sp 的時候不可以加上 --skip-assignment 否則會遇到權限不足的問題
驗證通過之後, 就是設定 Kubernetes 相關選項
版本我用他預設給的 1.19.7
填入 Resource Group 名稱
設定要使用的 VM 規格, 主機數量
貼上 SSH 公鑰
點選 創建
這個時候可以觀察相關狀態
建立需要一點時間, 可以同步觀察 Azure 上面的資源
建立完成, 可以在 Rancher 與 Azure 上面同步觀察
可以直接在網頁上面執行 kubectl
也可以下載 Kubeconfig
Azure 這邊則可以觀察到
有建立相關的 AKS 服務以及 Resource Group for AKS
最後來測試一個猛的, 刪除 cluster
點選剛剛建立的 Cluster 點選刪除
觀察了一下 Azure 那邊, Rancher 也很盡責的刪除剛剛建立的 AKS 與相關資源
小結一下: 目前看起來 Rancher UI 是很方便的, 所以日後可以多嘗試一下他的相關功能
也算是跨出 Rancher 的一小步了
~ enjoy it
Reference:
https://rancher.com/docs/rancher/v2.x/en/installation/requirements/
https://rancher.com/docs/rancher/v2.x/en/installation/other-installation-methods/single-node-docker/
https://docs.microsoft.com/en-us/azure/aks/kubernetes-service-principal
http://sakananote2.blogspot.com/2020/05/azure-dynamic-inventory-with-ansible.html
沒有留言:
張貼留言