iT邦幫忙

2025 iThome 鐵人賽

DAY 2
2

牧場主今日工作

昨天我們確立了成為數位牧場主的目標,今天要來認識我們最重要的夥伴 - Rancher!就像傳統牧場主需要一匹好馬和一條牧羊犬來幫忙管理牲畜,在數位牧場中,Rancher 就是我們的得力助手。

它不只是一個管理工具,更像是一個經驗豐富的牧場管理員,能夠幫我們統一管理多個牧場(叢集),確保每頭數位牛羊(Pod)都在正確的牧地上安全地吃草,還能防止它們跑到別人家的草地上搗亂!

技術背景與概念

為什麼需要 Rancher?

在沒有 Rancher 之前,管理多個 Kubernetes 叢集就像同時管理多個牧場,但每個牧場都有不同的管理方式:

  • 多叢集管理困難:每個 K8s 叢集都需要單獨的 kubectl 配置和管理
  • 權限管理複雜:不同叢集的 RBAC 設定各自獨立,難以統一管理
  • 應用部署分散:每個叢集都要單獨部署和維護相同的應用
  • 監控資訊零散:需要分別登入各個叢集查看狀態和日誌

Rancher 的出現就是為了解決這些痛點,提供一個統一的管理平台。

Rancher 的核心價值

Rancher 並不是要取代 Kubernetes,而是讓 K8s 更容易管理和使用:

  1. 降低學習門檻:提供直觀的 Web UI,不需要熟記所有 kubectl 指令
  2. 統一管理介面:一個控制台管理所有叢集,就像牧場主站在瞭望台上俯瞰所有牧地
  3. 企業級功能:內建 RBAC、多租戶、應用商店等企業必需功能
  4. 混合雲支援:可以管理雲端和地端的各種 K8s 叢集

Rancher 核心概念解析

多層級架構設計

Rancher 採用分層管理的概念,就像公司的組織架構:

https://ithelp.ithome.com.tw/upload/images/20250817/20141794v48Pnah1Le.png

關鍵概念說明

1. Cluster(叢集/牧場)

  • 一個完整的 Kubernetes 叢集就是一個牧場
  • 可以是雲端託管的(EKS、GKE)或自建的(RKE2、Custom)
  • 每個叢集有自己的運算、儲存和網路資源

2. Project(專案/牧地)

  • 這是 Rancher 獨有的概念,一個 Project 包含多個 Namespace
  • 就像把一個大牧場劃分成不同用途的牧地
  • 每個牧地可以設定資源配額和權限控制

3. Namespace(命名空間/圍欄)

  • Kubernetes 原生的資源隔離單位
  • 就像牧地裡的圍欄,確保不同類型的牲畜不會混在一起

4. Workload(工作負載/牲畜群)

  • 實際運行的應用程式,包括 Deployment、StatefulSet 等
  • 就像不同種類的牲畜群:乳牛群、羊群、豬群等

權限管理 (RBAC)

Rancher 的權限設計非常細緻:

Global Roles(全域角色)

  • Global Admin:超級牧場主,可以管理所有牧場
  • Standard User:一般使用者,只能存取被授權的資源

Cluster Roles(叢集角色)

  • Cluster Owner:牧場主人,完全控制該牧場
  • Cluster Member:牧場員工,可以檢視和操作部分資源
  • Project Creator:可以在該牧場建立新牧地

Project Roles(專案角色)

  • Project Owner:牧地主人,完全控制該牧地
  • Project Member:牧地工人,可以部署和管理應用
  • Read Only:訪客權限,只能查看資訊

Rancher 的多租戶管理優勢

統一的管理介面

在沒有 Rancher 之前,管理多個 K8s 叢集需要:

  • 分別設定每個叢集的 kubeconfig
  • 記住不同叢集的存取方式和憑證
  • 在不同的終端視窗間切換操作

有了 Rancher 後,只需要一個瀏覽器就能管理所有叢集,就像牧場主站在瞭望台上就能看到所有牧地的狀況。

Project 概念的價值

Rancher 獨有的 Project 概念是多租戶管理的核心:

  • 跨 Namespace 的資源群組:一個 Project 可以包含多個 Namespace
  • 統一的權限管理:在 Project 層級設定權限,自動套用到底下所有 Namespace
  • 資源配額控制:可以限制整個 Project 的資源使用量

這樣的設計讓企業可以輕鬆地為不同部門或專案分配獨立的運算資源,又能保持統一管理。

實際應用場景

以我們公司為例,可能會有這樣的劃分:

牧場 (Cluster): 生產環境叢集
├─ 牧地 (Project): 電商部門
│  ├─ 圍欄 (Namespace): frontend
│  ├─ 圍欄 (Namespace): backend  
│  └─ 圍欄 (Namespace): database
├─ 牧地 (Project): 數據分析部門
│  ├─ 圍欄 (Namespace): data-pipeline
│  └─ 圍欄 (Namespace): analytics
└─ 牧地 (Project): 基礎設施
   ├─ 圍欄 (Namespace): monitoring
   └─ 圍欄 (Namespace): logging

Rancher 部署考量

在我們後續的實作中,會採用比較簡化的部署方式:

管理叢集 vs 工作叢集分離

  • 管理叢集:專門運行 Rancher Server 的 RKE2 叢集
  • 工作叢集:實際運行業務應用的叢集

這樣的分離設計可以確保 Rancher 管理平台的穩定性,不會被業務應用影響。

我們的實驗環境限制

由於硬體資源限制,我們會:

  • 先建立最小化的管理叢集(可能只有單節點開始)
  • 再建立簡單的工作叢集進行多租戶實驗
  • 重點展示概念和配置方法,而非大規模部署

今日總結與明日預告

今天我們深入認識了 Rancher 這個強大的數位牧場管理工具。它不只是一個 K8s 管理平台,更是企業級多租戶環境的最佳解決方案。

重點回顧:

  • 理解 Rancher 的核心價值和解決的問題
  • 掌握多層級架構和權限管理概念
  • 認識 Project 概念在多租戶管理中的重要性
  • 了解管理叢集與工作叢集分離的設計思維

明天我們將開始規劃實驗牧場架構藍圖,在有限的硬體資源下設計一個功能完整的多租戶學習環境。包括 VM 資源分配、網路架構、儲存規劃等實作要素。準備好開始畫設計圖了嗎?


💡 牧場主小提示:選擇 Rancher 就像選擇一位經驗豐富的牧場管理員,它能讓你的數位牧場管理工作事半功倍。記住,工具是為了讓工作更簡單,而不是更複雜!


上一篇
Day 1: 為什麼我要當數位牧場主?
下一篇
Day 3: 實驗牧場架構設計藍圖
系列文
牧場主的 K8s 放牧日記21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言