跳至主要内容

建立 Google Compute Engine 叢集

在本節中,你將學習如何透過 Rancher 使用 Google Compute Engine (GCE) 在 Google Cloud Platform (GCP) 上佈建 RKE2/K3s Kubernetes 叢集。

首先,你將在 Rancher UI 中啟用 GCE 節點驅動程式。然後,你將依照步驟建立一個具有必要權限的 GCP 服務帳戶,並產生一個 JSON 金鑰檔案。此金鑰檔案將用於在 Rancher 中建立雲端憑證。

然後,你將在 Rancher 中建立一個 GCE 叢集,在配置叢集時,你將為其定義機器池。每個機器池將具有 etcd、controlplane 或 worker 的 Kubernetes 角色。Rancher 將在新節點上安裝 RKE2,並根據機器池定義的 Kubernetes 角色設定每個節點。

  1. 啟用 GCE 節點驅動程式
  2. 建立你的雲端憑證
  3. 使用你的雲端憑證建立 GCE 叢集
  4. GCE 最佳實踐

前提條件​

  1. 一個有效的 Google Cloud Platform 帳戶和專案。
  2. 一個 GCP 服務帳戶 JSON 金鑰檔案。與此金鑰關聯的服務帳戶必須具有以下 IAM 角色:
    1. Compute Admin
    2. Service Account User
    3. Viewer
  3. 一個用於佈建 VM 的 VPC 網路。

有關建立和管理服務帳戶金鑰的更多詳細資訊,請參閱 GCP 文件。

1. 啟用 GCE 節點驅動程式​

GCE 節點驅動程式在 Rancher 中預設不會啟用。在你可以佈建 GCE 叢集或使用 GCE 特定的 CRD 之前,你必須先啟用它。

  1. 點擊 ☰ > Cluster Management。
  2. 在左側,點擊 Drivers。
  3. 開啟 Node Drivers 標籤。
  4. 找到 Google GCE 驅動程式並選擇 ⋮ > Activate。

2. 建立雲端憑證​

  1. 點擊 ☰ > Cluster Management。
  2. 點擊 Cloud Credentials。
  3. 點擊 Create。
  4. 點擊 Google。
  5. 輸入你的 GCP 服務帳戶 JSON 金鑰檔案。
  6. 點擊 Create。

結果: 你已建立了將用於在叢集中佈建節點的雲端憑證。你可以在其他叢集中重複使用這些憑證。根據授予服務帳戶的權限,此憑證也可用於 GKE 叢集。

3. 使用雲端憑證建立叢集​

  1. 點擊 ☰ > Cluster Management。
  2. 在 Clusters 頁面上,點擊 Create。
  3. 點擊 Google GCE。
  4. 選擇一個 Cloud Credential 並提供要在其中建立 VM 的 GCP 專案。
  5. 輸入 Cluster Name。
  6. 為每個 Kubernetes 角色建立一個機器池。請參閱最佳實踐以獲取有關角色分配和數量的建議。
  7. 對於每個機器池,定義機器配置。請參閱 Google GCE 機器配置參考以獲取配置選項的資訊。
  8. 使用 Cluster Configuration 選擇要安裝的 Kubernetes 版本、要使用的網路提供者,以及是否要啟用專案網路隔離。有關配置叢集的幫助,請參閱 RKE2 和 K3s 叢集配置參考。
  9. 使用 Member Roles 配置叢集的使用者授權。點擊 Add Member 以新增可以存取叢集的使用者。使用 Role 下拉選單為每個使用者設定權限。
  10. 點擊 Create。

結果:

你的叢集已建立並被指派為 Provisioning 狀態。Rancher 正在建立你的叢集。

當叢集狀態更新為 Active 後,你就可以存取你的叢集。

Active 叢集被指派兩個專案:

  • Default,包含 default 命名空間
  • System,包含 cattle-system、ingress-nginx、kube-public 和 kube-system 命名空間

GCE 最佳實踐​

外部防火牆規則、開放埠和 ACE​

如果正在佈建的叢集將使用授權叢集端點 (ACE) 功能,controlplane 節點必須公開埠 6443。此埠在預設機器池配置中不會公開,以防止它在所有叢集節點上公開,並減少 Rancher 建立的防火牆規則數量。

為了讓 ACE 按預期工作,你必須在配置 controlplane 機器池時,在 Rancher UI 中指定此埠,方法是在機器池配置 UI 的 Show Advanced 區段下啟用 Expose external ports 核取方塊。或者,你可以在 GCP 中手動建立自訂防火牆規則,並在 controlplane 機器池配置中提供相關的網路標籤。

內部防火牆規則​

Rancher 將自動建立一個防火牆規則和網路標籤,以便在指定的 VPC 網路內部的叢集節點之間進行通訊。此規則將包含建立 RKE2/K3s 叢集所需的最小埠數量。

如果你需要擴展叢集節點之間內部公開的埠數量,應手動建立一個新的防火牆規則,並將相關的網路標籤分配給相關的機器池。如果需要,在建立或更新叢集時,可以對每個給定的機器池停用自動建立內部防火牆規則的功能。

跨網路部署​

雖然可以將不同的機器池部署到不同的 VPC 網路中,但 Rancher 建立的內部防火牆規則預設不支援此配置。要在不同網路中建立機器池,必須手動建立額外的防火牆規則以便在不同網路中的節點之間進行通訊。

可選的後續步驟​

建立叢集後,你可以透過 Rancher UI 存取它。作為最佳實踐,我們建議設定以下替代方式來存取你的叢集:

  • 使用 kubectl CLI 存取你的叢集: 按照這些步驟在你的工作站上使用 kubectl 存取叢集。在這種情況下,你將透過 Rancher 伺服器的身份驗證代理進行身份驗證,然後 Rancher 將連接你到下游叢集。此方法讓你無需 Rancher UI 即可管理叢集。
  • 使用 kubectl CLI 透過授權叢集端點存取你的叢集: 按照這些步驟直接使用 kubectl 存取你的叢集,無需透過 Rancher 進行身份驗證。我們建議設定這種替代方法來存取你的叢集,以便在你無法連接到 Rancher 的情況下,仍然可以存取叢集。