跳至主要内容

建立 RKE2 Kubernetes 叢集

你現在可以使用內建的 Harvester 節點驅動程式在 Rancher 中於 Harvester 叢集之上配置 RKE2 Kubernetes 叢集。

rke2-cluster

備註
  • Harvester 節點驅動程式需要 VLAN 網路。
  • 配置 RKE2 Kubernetes 叢集涉及設定底層虛擬機器的 IP 位址。你可以使用虛擬機器所連接的 VLAN 網路上的 DHCP 伺服器來執行此操作。如果網路上不存在這樣的伺服器,你可以使用受管理的 DHCP 功能來設定 IP 位址。
  • Harvester 節點驅動程式僅支援雲端映像檔。
  • 有關在 Harvester 內部署的客體叢集的連接埠需求,請參閱此處的文件。
  • 有關 RKE2 與 Harvester 雲端提供者支援矩陣,請參閱此處的網站。

向後相容性注意事項​

備註

如果你使用 Harvester 雲端提供者版本 v0.2.2 或更高版本,請注意已知的向後相容性問題。如果你的 Harvester 版本低於 v1.2.0 並且你打算使用較新的 RKE2 版本(即 >= v1.26.6+rke2r1、v1.25.11+rke2r1、v1.24.15+rke2r1),在升級客體 Kubernetes 叢集或 Harvester 雲端提供者之前,必須將你的 Harvester 叢集升級到 v1.2.0 或更高版本。

有關詳細的支援矩陣,請參閱官方網站的 Harvester CCM & CSI Driver with RKE2 Releases 部分。

建立你的雲端憑證​

  1. 點擊 ☰ > Cluster Management。
  2. 點擊 Cloud Credentials。
  3. 點擊 Create。
  4. 點擊 Harvester。
  5. 輸入你的雲端憑證名稱。
  6. 選擇 "Imported Harvester Cluster"。
  7. 點擊 Create。

create-harvester-cloud-credentials

建立 RKE2 Kubernetes 叢集​

使用者可以透過 RKE2 節點驅動程式從 Cluster Management 頁面建立 RKE2 Kubernetes 叢集。

  1. 選擇 Clusters 選單。
  2. 點擊 Create 按鈕。
  3. 切換開關至 RKE2/K3s。
  4. 選擇 Harvester 節點驅動程式。
  5. 選擇一個 Cloud Credential。
  6. 輸入 Cluster Name(必填)。
  7. 輸入 Namespace(必填)。
  8. 輸入 Image(必填)。
  9. 輸入 Network Name(必填)。
  10. 輸入 SSH User(必填)。
  11. (選用) 設定 Show Advanced > User Data 以安裝虛擬機器所需的套件。
#cloud-config
packages:
- iptables
備註

Calico 和 Canal 網路需要在節點上安裝 iptables 或 xtables-nft 套件,如需更多詳細資訊,請參閱 RKE2 已知問題。

  1. 點擊 Create。

create-rke2-harvester-cluster-1 create-rke2-harvester-cluster-2 create-rke2-harvester-cluster-3

備註
  • RKE2 v1.21.5+rke2r2 或更高版本提供內建的 Harvester Cloud Provider 和 Guest CSI 驅動程式整合。
  • Harvester 節點驅動程式僅支援已匯入的 Harvester 叢集。

新增節點親和性​

自 v1.0.3 + Rancher v2.6.7 版起提供

Harvester 節點驅動程式現在支援透過節點親和性規則將一組機器排程到特定節點,這可以提供高可用性和更好的資源利用率。

在叢集建立期間,可以將節點親和性新增到機器池:

  1. 點擊 Show Advanced 按鈕,然後點擊 Add Node Selector。 affinity-add-node-selector
  2. 如果你希望排程器僅在規則滿足時排程機器,請將優先級設為 Required。
  3. 點擊 Add Rule 指定節點親和性規則,例如,對於拓撲分散約束使用案例,你可以新增 region 和 zone 標籤,如下所示:
    key: topology.kubernetes.io/region
    operator: in list
    values: us-east-1
    ---
    key: topology.kubernetes.io/zone
    operator: in list
    values: us-east-1a
    affinity-add-rules

新增工作負載親和性​

自 v1.2.0 + Rancher v2.7.6 版起提供

工作負載親和性規則允許你根據這些節點上已在執行的工作負載(虛擬機器和 Pod)的標籤來約束機器可以排程到哪些節點,而不是根據節點標籤。

在叢集建立期間,可以將工作負載親和性規則新增到機器池:

  1. 選擇 Show Advanced 並選擇 Add Workload Selector。 affinity-add-workload-selector
  2. 選擇 Type、Affinity 或 Anti-Affinity。
  3. 選擇 Priority。Prefered 表示這是一個選用規則,Required 表示一個強制規則。
  4. 選擇目標工作負載的命名空間。
  5. 選擇 Add Rule 指定工作負載親和性規則。
  6. 設定 Topology Key 以指定將 Harvester 主機劃分為不同拓撲的標籤鍵。

有關更多詳細資訊,請參閱 Kubernetes Pod 親和性和反親和性文件。

更新 RKE2 Kubernetes 叢集​

下面突出顯示的 RKE2 機器池欄位代表 Harvester 虛擬機器設定。對這些欄位的任何修改都將觸發節點重新配置。

rke2-harvester-fields

在離線環境中使用 Harvester RKE2 節點驅動程式​

RKE2 配置依賴於 qemu-guest-agent 套件來取得虛擬機器的 IP。

Calico 和 Canal 需要在節點上安裝 iptables 或 xtables-nft 套件。

然而,在離線環境中安裝套件可能不可行。

你可以使用以下選項解決安裝限制:

  • 選項 1. 使用預先設定了所需套件(例如 iptables、qemu-guest-agent)的虛擬機器映像檔。
  • 選項 2. 前往 Show Advanced > User Data,允許虛擬機器透過 HTTP(S) 代理伺服器安裝所需的套件。

Harvester 節點範本中的使用者資料範例:

#cloud-config
apt:
http_proxy: http://192.168.0.1:3128
https_proxy: http://192.168.0.1:3128