Skip to contentExplore SUSE Rancher Architecture
SUSE Rancher Cake

- On-prem(本地)、Cloud(雲端)、混合式(hybrid)
- 可以建立新的叢集或匯入現有的叢集。
在 Kubernetes 叢集中,每個運算資源都被稱為「node(節點)」,節點可以是裸機伺服器或是虛擬機器。
Kubernetes 可以執行許多功能,例如
- scheduling (排程)
- scaling (擴充)
- service discovery (服務發現)
- health check(健康檢查)
- secret management (密碼管理)
- configuration management (配置管理)。
SUSE Rancher Value Points
- 透過 Helm chart 輕鬆安裝
- Central authentication
- SUSE Rancher 內部的驗證
- 外部的驗證,例如 LDAP、OAuth、OIDC 和 SAML
- 提供單一管理點
- 可以配置 Kubernetes v1.17 或更新版本的叢集
- 所有叢集都有基於角色的存取控制 (RBAC)
SUSE Rancher 他自己是一個在 Kubernetes 中的 Deployment 做的 Application,也可以在單一節點環境下進行測試。
LDAP (Lightweight Directory Access Protocol)
一個公開的資料存儲庫,用於存放使用者相關資訊。LDAP(輕量級目錄訪問協議)還提供使用者身份驗證功能。
OAuth (Open Authorization)
允許第三方服務交換您的資訊。它使用 tokens (令牌)進行身份驗證,因此您的密碼不需要用於訪問該服務。
OIDC (OpenID Connect)
一個加入身份層的 OAuth 擴充功能。OIDC 允許客戶端使用授權服務器來確認終端使用者的身份。
SAML (Security Assertion Markup Language)
一個開放的標準,允許身份提供者將授權憑證傳遞給服務提供商。
Rancher Terminology
- Rancher Server:
- Is installed on top of any Kubernetes cluster
- Manages and provisions downstream Kubernetes clusters
- 透過 SUSE Rancher GUI 或 Rancher CLI 的 API 與下游叢集進行互動。
- RKE - Rancher Kubernetes Engine:
- 經過 Cloud Native Computing Foundation(CNCF)認證的 Kubernetes 發行版。
- 使用 CLI/程式庫 來建立和管理 Kubernetes 叢集。
- 在 2021 年 12 月與 RKE2 進行統一。
- Downstream Cluster
- 由 SUSE Rancher GUI 管理或與之互動的叢集。
- K3s - Lightweight Kubernetes
- CNCF 認證的 Kubernetes 發行版
- 只有一個二進制檔案 → 輕量級
- 非常適合單節點邊緣叢集(Edge clusters)。
- RKE2
- CNCF 認證的 Kubernetes 發行版
- 專注於美國聯邦政府部門的安全性和合規性。
- RancherD
- New installation utility for SUSE Rancher
- 目前處於實驗狀態
- 首先啟動一個 RKE2 Kubernetes 叢集,然後在該叢集上安裝 SUSE Rancher Server 的 Helm Chart。
如果 SUSE Rancher 被安裝在 RKE Kubernetes 叢集上,最小的 HA 叢集設定應該要有 3 台 Node,且每台 Node 都需要擔任 Etcd、ContorlPlane 和 Worker 的角色。如果安裝在 K3S 叢集上的話,對於設定 Etcd HA 叢集的架構的話,只需兩台 Nodes 就可以了
SUSE Rancher Management Cluster
- SUSE Rancher 是一個 Kubernetes 的 App
- 基本的 high availability 設定要求
- 3 台 Etcd Nodes
- 儲存叢集內部設定資訊的資料庫
- 可以與 Control Plane Node 共存
- 2 台 Control Plane Nodes
- SUSE Rancher management functionality
- 2 台 worker nodes
Kubernetes 將 Node 劃分為三種類型
- etcd nodes
- control plane nodes
- worker nodes
A Kubernetes cluster consists of at least one etcd, control plane, and worker node
SUSE Rancher 在單節點和高可用性安裝中都使用 etcd 作為數據存儲。在 Kubernetes 中,etcd 也是一種節點角色,負責儲存叢集的設定和狀態。
Kubernetes 叢集的狀態是由 etcd 維護的。Etcd Node 跑的是 Etcd Database,它是一個分散式的 key-value 存儲方式,用於作為 Kubernetes 的存儲來保存所有叢集資料,例如叢集協調和狀態管理。
Control plane nodes 運行 Kubernetes API server、scheduler 和 controller manager。 這些 nodes 負責日常任務以確保集群維護其設定。 因為所有集群數據都存儲在 etcd 節點上,所以控制平面節點是無狀態的。
Each worker node runs:
- Kubelets
- 監控 Node 狀態的 agent (代理),確保 Container 的健康
- Workloads
- 包含實際應用程序的 Container 和 pod,以及其他類型的部署
Worker nodes also run storage and networking drivers, and ingress controllers when required.

Downstream Clusters
- 下游集群由 SUSE Rancher 管理
- SUSE Rancher 透過在叢集節點中運行的代理程式與標準的 Kubernetes API 進行通信。
- 下游集群在 Kubernetes worker nodes 上運行應用程序和服務
- SUSE Rancher 是一個完整的 Kubernetes Container 管理平台,為管理員提供了在任何地方成功運行 Kubernetes 的工具。
SUSE Rancher Server
- SUSE Rancher Server runs on top of a Kubernetes cluster:
- 包含管理整個 SUSE Rancher 部署所需的所有內容
- 通過 cluster agent (集群代理) 或 node agent (節點代理) 提供的 API 與下游集群進行通信
- SUSE Rancher cluster 應專門用於只運行 SUSE Rancher
- For security and best performance
- User workloads are to be run on downstream clusters
- Rancher is deployed with a Helm chart.
Authentication and Cluster Access
- Authentication Proxy
- 對呼叫者進行身份驗證
- Sets the proper Kubernetes impersonation headers
- 將 Kubernetes API 的請求轉發至下游叢集。
- Integrated authentication services
- Local authentication
- LDAP, OAuth, OIDC, SAML
SUSE Rancher 使用 Service Account 與 Kubernetes 集群進行溝通,該 Service Account 為在 pod 中運行的程序提供身份。
默認情況下,使用 kubeconfig 文件訪問 Kubernetes 集群。 kubeconfig 文件包含對集群的完全訪問權限。
使用 SUSE Rancher,由於認證代理(authentication proxy)的存在,這個檔案對於叢集 API 通訊並不需要,認證代理會被 SUSE Rancher Server 使用,以便連接到下游使用者叢集上的 Kubernetes API server。
如果需要,可以繞過認證代理。

Hosted Kubernetes Providers
- Kubernetes can be provisioned by cloud providers such as
- Amazon Elastic Container Service for Kubernetes (EKS)
- Azure Kubernetes Service (AKS)
- Google Kubernetes Engine (GKE)
- And more …
- SUSE Rancher integrates with the cloud provider’s API
- Allows Role-Based Access Control from the Rancher GUI
SUSE Rancher Provisioned Kubernetes
- 在現有節點上設定 RKE:
- 透過 SUSE Rancher cluster agent 這台 Container 新增一台 Node
- SUSE Rancher GUI 使用 Docker 當作 container runtime
- Can be deployed on:
- Bare metal server
- Virtualization platform
- Cloud provider virtual machines
- Amazon EC2, Azure, Google, …
Rancher 生成的 K8S 和 import 進 Rancher 的 K8S,這兩種 Cluster,沒有支援以下能力
- Ability to rotate certificates
- Ability to back up the Kubernetes clusters
- Ability to recover and restore etcd
- Cleaning Kubernetes components when clusters are no longer reachable from SUSE Rancher
- Configuring Pod Security Policies
- Running Security Scans
Imported Kubernetes Clusters
- SUSE Rancher 能與已經運行中的 Kubernetes 群集進行溝通。
- 在下游群集上建立 SUSE Rancher node agent container ,以將群集導入到 SUSE Rancher Server 中。
- SUSE Rancher 的圖形使用者介面提供一個指令,這個指令可以在有權限訪問
kubeconfig 檔案的群集節點上執行。 - 註冊完成後,SUSE Rancher 可以透過 agent 使用原生的 Kubernetes API 與群集進行溝通。
Cluster Agent
- Downstream clusters run a cluster agent
- Cluster agent:
- 在 SUSE Rancher 啟動的 Kubernetes 集群上連接到 Kubernetes API Server
- 觀察下游集群的資源變化
- 使下游集群的當前狀態達到所需狀態
- 設定對 Cluster (群集) 和 Project (專案) 的存取控制政策。
- 通過調用所需的 Kubernetes 引擎(AKS、EKS、GKE)和 Docker 機器驅動程序 (RKE) 來配置集群
- 管理每個集群內的 Workloads、pod 創建和部署
- 套用每個群集的 global policies (全域策略) 中定義的 Role (角色) 和 binding (綁定)
- 提供 Rancher Server 關於 Event (事件)、 stats (統計)、node info (節點信息)和 health (健康) 的信息
- For RKE2 and K3s
containerd runtime is used.
Node Agent
- 如果目標沒有可用的 Cluster Agent,其中一個 Node Agent 會建立一個隧道到 Cluster Contorller ,以與 SUSE Rancher 進行通訊。
- Infrastructure clusters
- Amazon EC2, Azure, Google, …
- Existing registered, non-provisioned RKE, RKE2, and K3s clusters
- Node Agent 部署為 Kubernetes
DaemonSet 以確保其運行在集群中的每個節點上 - Node agent interaction is used for:
- Upgrading the Kubernetes version
- Creating or restoring etcd snapshots
cattle-node-agent 是用來在進行群集操作時,與 Rancher 啟動的 Kubernetes 群集中的節點互動。群集操作的例子包括升級 Kubernetes 版本和創建/恢復 etcd 快照。cattle-node-agent 是使用 DaemonSet 資源部署的,以確保它在每個節點上運行。當 cattle-cluster-agent 不可用時,cattle-node-agent 被用作備用選項,連接到 Rancher 啟動的 Kubernetes 群集的 Kubernetes API。
Access SUSE Rancher GUI
First Login to SUSE Rancher
- 打開一個瀏覽器,輸入 SUSE Rancher URL
- 第一次登入時,會要求
Bootstrap password

SUSE Rancher GUI Basic Configuration
- 如果使用隨機
Bootstrap password 引導密碼,必須設置管理密碼 - SUSE Rancher URL 用於
- 訪問 GUI 介面
- Downstream clusters API 的訪問
- Downstream clusters 在建立時,會需要能夠訪問 SUSE Rancher URL
- SUSE Rancher URL 在 Rancher 建立好後不支援更改
- 同意條款和條件
SUSE Rancher Landing Page
- Contains links for What’s New, Getting Started etc
- A list of clusters is displayed in the bottom of the page
Cluster List
- SUSE Rancher 主頁將顯示由 SUSE Rancher 啟動或導入的集群
- The default name of the SUSE Rancher cluster is
local - 可以導入現有集群或設定啟動新集群
- 提供有關集群的基本詳細信息
- SUSE Rancher GUI 專注於多集群環境
SUSE Rancher Post-Install Configuration
安裝後,系統管理員可以配置和微調 SUSE Rancher 的一系列設置和功能,包括:
- Authentication (身分驗證)
- Authorization (授權)
- Node and Cluster Drivers
- Helm repositories
- Continuous Delivery
- Security
- Advanced settings
Questions:
Q1: SUSE Rancher Server 可以管理什麼類型的集群?
SUSE Rancher Server 可以管理在雲端、本地或混合環境中運行的各種 Kubernetes 集群。
Q2: Downstream Cluster 是什麼意思?
由 SUSE Rancher 管理的集群稱為 Downstream Cluster (下游集群)。
Q3: SUSE Rancher 如何管理 Kubernetes clusters?
當在 SUSE Rancher 中提供或匯入群集時,會在目標系統上部署 Cluster 或是 Node Agent。這些 Agent 提供了與 SUSE Rancher Server 溝通的 API。