本頁說明如何使用在 Compute Engine 上執行的虛擬機器 (VM),以高可用性 (HA) 模式設定混合式叢集。
您可以快速試用 Google Distributed Cloud 軟體,不必準備任何硬體。完成本頁的步驟後,您就能取得在 Compute Engine 上執行的測試環境。
如要在 Compute Engine VM 上試用 Google Distributed Cloud 軟體,請完成下列步驟:
- 在 Compute Engine 中建立六部 VM
- 在所有具備 L2 連線的 VM 之間建立
vxlan
網路 - 安裝 Google Distributed Cloud 的必要條件
- 部署混合式叢集
- 驗證叢集
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
- 請記下專案 ID,因為您需要這個 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:"
按照操作說明複製並貼上指令,更新元件。
- 管理員工作站專用的 VM。管理員工作站:用於託管指令列介面 (CLI) 工具和設定檔,以便在安裝期間佈建叢集。另外,這類工作站也會託管其他 CLI 工具,方便您在安裝後與已佈建的叢集互動。管理員工作站將可透過 SSH 存取叢集中的所有其他節點。
- 三個 VM,分別對應執行 Google Distributed Cloud 控制層所需的三個控制層節點。
- 兩個 VM,分別對應在 Google Distributed Cloud 叢集上執行工作負載所需的兩個工作站節點。
設定環境變數:
export PROJECT_ID=PROJECT_ID export ZONE=ZONE export CLUSTER_NAME=CLUSTER_NAME export BMCTL_VERSION=1.32.100-gke.106
對於
ZONE
,您可以使用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 和服務:
授予
baremetal-gcr
服務帳戶額外權限,避免需要多個服務帳戶才能使用不同 API 和服務:建立本頁所有指令所需的變數和陣列:
使用下列迴圈建立六部 VM:
這個指令會建立下列名稱的 VM 執行個體:
- abm-ws:管理員工作站的 VM。
- abm-cp1、abm-cp2、abm-cp3:控制平面節點的 VM。
- abm-w1、abm-w2:執行工作負載的節點 VM。
使用下列迴圈,確認所有 VM 都已準備好使用 SSH:
- 使用 SSH 存取每個 VM。
- 更新及安裝所需套件。
執行必要指令,使用
vxlan
設定網路。- 管理員工作站 VM:10.200.0.2
- 執行控制層節點的 VM:
- 10.200.0.3
- 10.200.0.4
- 10.200.0.5
- 執行工作站節點的 VM:
- 10.200.0.6
- 10.200.0.7
bmctl
kubectl
- Docker
執行下列指令,將服務帳戶金鑰下載至管理工作站,並安裝必要工具:
執行下列指令,確保
root@10.200.0.x
正常運作。這些指令會執行下列工作:- 在管理員工作站上產生新的 SSH 金鑰。
- 將公開金鑰新增至部署作業中的所有其他 VM。
- 為所需的混合式叢集建立設定檔。
- 執行預檢。
- 部署叢集。
使用 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.
現在您可以透過連線閘道執行
kubectl
指令:kubectl get nodes kubectl get namespaces
前往 Google Cloud 控制台的「GKE Clusters」(GKE 叢集) 頁面。
按一下已註冊叢集旁的
「動作」,然後按一下「登入」。選取「使用 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。驗證完成後,即可執行下列指令刪除
abm
VM:gcloud compute instances list --format="value(name)" | grep 'abm' | xargs gcloud \ --quiet compute instances delete
本指南中的步驟取自 anthos-samples
存放區的安裝指令碼。如要進一步瞭解如何自訂這個指令碼,使其適用於某些常見的變化版本,請參閱常見問題部分。
在 Compute Engine 中建立六部 VM
請完成下列步驟,建立下列 VM:
建立 vxlan
網路,在 VM 之間提供第 2 層連線
使用 Linux 的標準 vxlan
功能建立網路,將所有 VM 連線至 L2 連線。
下列指令包含兩個迴圈,會執行下列動作:
您現在已在 10.200.0.0/24 網路中建立第 2 層連線。VM 的 IP 位址如下:
安裝 Google Distributed Cloud 的必要條件
在管理員工作站上安裝 Google Distributed Cloud 之前,請先安裝下列工具:
如要安裝工具並準備安裝 Google Distributed Cloud,請執行下列操作:
部署混合式叢集
下列程式碼區塊包含完成下列工作所需的所有指令和設定:
驗證叢集
您可以在根帳戶的 bmctl-workspace
目錄中,找到叢集的 kubeconfig
檔案。如要驗證部署作業,請完成下列步驟。
從 Google Cloud 控制台登入叢集
如要在 Google Cloud 控制台中觀察叢集上的工作負載,您必須登入叢集。首次登入主控台前,請先設定驗證方法。最容易設定的驗證方法是 Google 身分。您可以使用與Google Cloud 帳戶相關聯的電子郵件地址登入。
您在上一個章節中執行的 gcloud container fleet memberships generate-gateway-rbac
指令會設定叢集,讓您可以使用 Google 身分登入。