在 Compute Engine 虛擬機器 (VM) 上設定 Google Distributed Cloud 軟體,即可在高可用性 (HA) 模式中部署混合式叢集,不需專用硬體。這項設定提供功能測試環境,可讓您探索叢集管理和工作負載部署。
這項部署作業僅供評估之用。請勿在正式環境的 Compute Engine VM 上執行 Google Distributed Cloud 軟體。如要在正式環境中部署 Google Distributed Cloud,請按照「建立基本叢集」中的步驟操作。
在本教學課程中,您將設定六個 Compute Engine VM、透過 vxlan 疊加網路建立第 2 層連線能力、安裝必要條件,以及部署和驗證混合式叢集。
事前準備
- 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 請記下專案 ID,因為您需要設定環境變數,才能使用本頁中的指令碼和指令。如果選取現有專案,請確認您是專案擁有者或編輯者。
-
在 Linux 工作站上,確認您已安裝最新版的 Google Cloud CLI,這是與 Google Cloud互動的指令列工具。如已安裝 gcloud CLI,請執行下列指令更新元件:
gcloud components update
視 gcloud CLI 的安裝方式而定,您可能會看到下列訊息:
"You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:"按照操作說明複製並貼上指令,即可更新元件。
本指南中的步驟取自 anthos-samples 存放區中的安裝指令碼。常見問題一節進一步說明如何自訂這個指令碼,以便與一些常見的變化版本搭配使用。
在 Compute Engine 建立六個 VM
請按照下列步驟建立 VM:
- 一個 VM 用於管理員工作站。管理員工作站會託管指令列介面 (CLI) 工具和設定檔,以便在安裝期間佈建叢集。另外,這類工作站也會託管其他 CLI 工具,方便您在安裝後與已佈建的叢集互動。管理員工作站可透過 SSH 存取叢集中的所有其他節點。
- 三個 VM,用於執行 Google Distributed Cloud 控制層所需的三個控制層節點。
- 兩個 VM,用於在 Google Distributed Cloud 叢集上執行工作負載所需的兩個 worker 節點。
設定環境變數:
export PROJECT_ID=PROJECT_ID export ZONE=ZONE export CLUSTER_NAME=CLUSTER_NAME export BMCTL_VERSION=1.36.200-gke.118ZONE可使用us-central1-a或任何其他 Compute Engine 可用區。執行下列指令,使用 Google 帳戶登入,並將專案設為預設:
gcloud auth login gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONE建立
baremetal-gcr服務帳戶和金鑰:啟用 Google Cloud API 和服務:
為避免需要多個服務帳戶來處理不同的 API 和服務,請授予
baremetal-gcr服務帳戶額外權限:建立本頁所有指令所需的變數和陣列:
使用下列迴圈建立六個 VM:
這個指令會建立 VM 執行個體,名稱如下:
- abm-ws:管理員工作站的 VM。
- abm-cp1、abm-cp2、abm-cp3:控制層節點的 VM。
- abm-w1、abm-w2:執行工作負載的節點 VM。
使用下列迴圈,確認所有 VM 的 SSH 都已就緒:
建立 vxlan 網路,在 VM 之間建立 L2 連線
使用 Linux 的標準 vxlan 功能,建立網路,將所有 VM 與 L2 連線連結。
下列指令包含兩個迴圈,可執行下列動作:
- 使用 SSH 存取各個 VM。
- 更新及安裝所需套件。
執行必要指令,使用
vxlan設定網路。
您現在已在 10.200.0.0/24 網路中建立 L2 連線。VM 的 IP 位址如下:
- 管理員工作站 VM:10.200.0.2
- 執行控制層節點的 VM:
- 10.200.0.3
- 10.200.0.4
- 10.200.0.5
- 執行 worker 節點的 VM:
- 10.200.0.6
- 10.200.0.7
安裝 Google Distributed Cloud 的必要條件
安裝 Google Distributed Cloud 之前,您必須在管理員工作站上安裝下列工具:
bmctlkubectl- Docker
如要安裝工具並準備安裝 Google Distributed Cloud,請按照下列步驟操作:
執行下列指令,將服務帳戶金鑰下載至管理員工作站,並安裝必要工具:
執行下列指令,確保
root@10.200.0.x正常運作。這些指令會執行下列工作:- 在管理員工作站上產生新的安全殼層金鑰。
- 將公開金鑰新增至部署作業中的所有其他 VM。
部署混合式叢集
下列程式碼區塊包含完成下列工作所需的所有指令和設定:
- 為所需的混合式叢集建立設定檔。
- 執行預檢。
- 部署叢集。
驗證叢集
您可以在管理員工作站的根帳戶 bmctl-workspace 目錄中,找到叢集的 kubeconfig 檔案。如要驗證部署作業,請完成下列步驟。
使用 SSH 以 root 身分存取管理員工作站:
gcloud compute ssh root@abm-ws --zone ${ZONE}您可以忽略任何有關更新 VM 的訊息,並完成本教學課程。如果您打算將 VM 保留為測試環境,建議您按照 Ubuntu 說明文件中的說明更新 OS 或升級至下一個版本。
設定
KUBECONFIG環境變數,並指定叢集設定檔的路徑,以便在叢集上執行kubectl指令。export clusterid=CLUSTER_NAME export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig kubectl get nodes在環境變數中設定目前的背景資訊:
export CONTEXT="$(kubectl config current-context)"執行下列 gcloud CLI 指令。此指令會執行下列作業:
- 將叢集的 Kubernetes
clusterrole/cluster-admin角色授予使用者帳戶。 - 設定叢集,以便在本機電腦上執行
kubectl指令,不必透過 SSH 連線至管理員工作站。
將
GOOGLE_ACCOUNT_EMAIL替換為與 Google Cloud 帳戶相關聯的電子郵件地址。例如:--users=alex@example.com。gcloud container fleet memberships generate-gateway-rbac \ --membership=CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --apply這個指令會輸出類似以下的結果 (為方便閱讀,已截斷):
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig, context: CLUSTER_NAME-admin@CLUSTER_NAME Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.- 將叢集的 Kubernetes
探索完畢後,請輸入 exit 登出管理員工作站。
取得可透過 Connect 閘道存取叢集的
kubeconfig項目。gcloud container fleet memberships get-credentials CLUSTER_NAME輸出結果會與下列內容相似:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_CLUSTER_NAME" has been generated and set as the current context.現在可以透過 Connect 閘道執行
kubectl指令:kubectl get nodes kubectl get namespaces
從 Google Cloud 控制台登入叢集
如要在 Google Cloud 控制台觀察叢集上的工作負載,您必須登入叢集。首次登入控制台前,您必須先設定驗證方式。最容易設定的驗證方式是 Google Identity。這個驗證方式可讓您使用與Google Cloud 帳戶相關聯的電子郵件地址登入。
您在上一節執行的 gcloud container fleet memberships generate-gateway-rbac 指令會設定叢集,讓您可以使用 Google 身分登入。
前往 Google Cloud 控制台的「GKE Clusters」(GKE 叢集) 頁面。
按一下已註冊叢集旁的 「Actions」(動作),然後按一下「Login」(登入)。
選取「使用 Google 帳戶登入」。
按一下 [Login] (登入)。
清除所用資源
連線至管理員工作站,將叢集 VM 重設為安裝前的狀態,並從 Google Cloud專案取消註冊叢集:
gcloud compute ssh root@abm-ws --zone ${ZONE} << EOF set -x export clusterid=CLUSTER_NAME bmctl reset -c \$clusterid EOF列出名稱中含有
abm的所有 VM:gcloud compute instances list | grep 'abm'確認您要刪除名稱中含有
abm的所有 VM。驗證完畢後,請執行下列指令,刪除
abmVM:gcloud compute instances list --format="value(name)" | grep 'abm' | xargs gcloud \ --quiet compute instances delete