星期日, 4月 04, 2021

Rancher 2.5.7 with container in Azure 安裝小記

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



啟動 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:





沒有留言: