建立管理員叢集

本頁說明如何建立 Google Distributed Cloud 的管理員叢集。管理員叢集會管理執行工作負載的使用者叢集。如要使用拓撲網域,請參閱「建立要搭配拓撲網域使用的管理員叢集」。

本文適用於負責設定、監控及管理技術基礎架構的管理員、架構師和作業人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。

如要進一步瞭解管理員叢集,請參閱安裝總覽

事前準備

  • 請確認您已設定管理員工作站,並能登入,如「建立管理員工作站」一文所述。

  • 請確認服務帳戶的 JSON 金鑰檔案位於管理工作站。

  • 查看IP 位址規劃文件。確認您有足夠的 IP 位址,可供三個控制層節點和一個控制層 VIP 使用。如果您打算建立任何kubeception 使用者叢集,則必須為這些使用者叢集的控制層節點預留充足的 IP 位址。

  • 請參閱負載平衡總覽,重新考慮要使用的負載平衡器類型。如果是手動負載平衡器,您必須先設定負載平衡器,才能建立管理員叢集。

  • 如果您使用 gkectl 建立管理員叢集,請決定要為 Google Distributed Cloud 元件使用公開或私人登錄檔。如要瞭解如何使用私密 Docker 登錄檔,請參閱 privateRegistry。Terraform 和 Google Cloud 控制台都不支援使用私有 Docker 登錄檔做為系統元件。

  • 決定要在管理員叢集節點上執行的作業系統類型。

  • 如果貴機構規定輸出流量必須通過 Proxy 伺服器,請務必將必要 API 和 Artifact Registry 位址加入許可清單

  • 在 1.29 以上版本中,伺服器端預檢預設為啟用。伺服器端預檢需要額外的防火牆規則。在「管理員叢集適用的防火牆規則」中,搜尋「前置檢查」,並確認已設定所有必要的防火牆規則。伺服器端前置檢查會在啟動叢集上執行,而不是在管理員工作站本機執行。

使用您選擇的工具建立管理員叢集

本節提供使用 gkectl、Terraform 和 Google Cloud 控制台建立管理員叢集的步驟。如需選擇工具的相關資訊,以及部分工具的限制,請參閱「選擇管理叢集生命週期的工具」。

gkectl

在 1.32 以上版本中,使用 gkectl 建立的新叢集預設會啟用進階叢集功能。請務必先詳閱執行進階叢集時的差異。如不想啟用進階叢集,您必須在設定檔中將 enableAdvancedCluster 設為 false

程序總覽

建立管理員叢集的主要步驟如下:

  1. 填寫設定檔。
    完成並驗證管理員叢集設定檔、憑證設定檔,以及可能的 IP 區塊檔案,指定新管理員叢集的詳細資料。
  2. 將 OS 映像檔匯入 vSphere,並視需要將容器映像檔推送至私人登錄檔。
    執行 gkectl prepare
  3. 建立管理員叢集。
    使用 gkectl 建立新的管理員叢集,如已完成的設定檔中所指定。Google Distributed Cloud 建立管理員叢集時,會部署 Kubernetes in Docker (kind) 叢集,暫時代管建立管理員叢集所需的 Kubernetes 控制器。這個暫時性叢集稱為「啟動叢集」。使用者叢集是由管理員建立及升級,無須使用啟動程序叢集。
  4. 確認管理員叢集正在執行中。
    使用 kubectl 查看叢集節點。

完成這項程序後,您將擁有可建立及管理使用者叢集的管理員叢集。

如果您使用 VPC Service Controls,執行部分 gkectl 指令 (例如 "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services") 時可能會看到錯誤訊息。如要避免發生這些錯誤,請在指令中加入 --skip-validation-gcp 參數。

填寫設定檔

  • 確認管理員工作站已安裝必要版本的 gkectl。 一般來說,您使用的 gkectl 版本會與建立叢集時使用的版本相同。您可以在叢集設定檔的 gkeOnPremVersion 欄位中指定叢集版本。建立叢集時,系統會強制執行下列版本規則:

    • gkectl 次要版本不得低於叢集的次要版本。舉例來說,您無法使用 gkectl 1.29 版建立 1.30 叢集。修補程式版本不重要。舉例來說,您可以使用 gkectl 1.29.0-gke.1456 版建立修補程式版本較高的叢集,例如 1.29.1000-gke.94。

    • gkectl 次要版本不得高於叢集版本超過兩個次要版本。舉例來說,如果您要建立 1.28 版叢集,gkectl 版本可以是 1.29 或 1.30。但您無法使用 gkectl 1.31 版,因為該版本比叢集版本高出三個子版本。

    如有需要,請參閱「下載 gkectl」一文,瞭解如何取得支援的 gkectl 版本。

如果您使用 gkeadm 建立管理員工作站,系統會產生名為 admin-cluster.yaml 的設定檔。

如果您未使用 gkeadm 建立管理員工作站,請在管理員工作站上執行下列指令,產生 admin-cluster.yaml

gkectl create-config admin

這個設定檔用於建立管理員叢集。

請詳閱管理員叢集設定檔文件,瞭解設定檔。建議您在另一個分頁或視窗中開啟這份文件,以便在完成下列步驟時參考。

name

如要指定管理員叢集的名稱,請填寫 name 欄位。

bundlePath

套件是包含叢集元件的 ZIP 檔案。管理員工作站隨附這項功能。系統會自動填寫這個欄位。

vCenter

這個區段中的欄位已填入您建立管理工作站時輸入的值。

enableAdvancedCluster

如要啟用預先發布版進階叢集功能,請將 enableAdvancedCluster 設為 true

請注意,進階叢集預覽功能有下列限制:

  • 您只能在建立新的 1.31 叢集時啟用進階叢集。
  • 啟用進階叢集後,您將無法將叢集升級至 1.32 版。請僅在測試環境中啟用進階叢集。

network

填寫「network.controlPlaneIPBlock和「network.hostConfig部分。同時將 adminMaster.replicas 設為 3

「network.podCIDR」network.podCIDR和「network.serviceCIDR」network.serviceCIDR欄位已預先填入值,除非這些值與網路中已使用的位址衝突,否則您可以保留不變。Kubernetes 會使用這些範圍,將 IP 位址指派給叢集中的 Pod 和 Service。

視需要填寫設定檔網路部分中的其餘欄位。

loadBalancer

為管理員叢集的 Kubernetes API 伺服器預留 VIP。將 VIP 提供為 loadBalancer.vips.controlPlaneVIP 的值

詳情請參閱「管理員叢集子網路中的 VIP」。

決定要使用的負載平衡類型。選項如下:

  • MetalLB 套裝組合負載平衡。將 loadBalancer.kind 設為 "MetalLB"

  • 手動負載平衡。將 loadBalancer.kind 設為 "ManualLB",然後移除 manualLB 區段。

如要進一步瞭解負載平衡選項,請參閱「負載平衡總覽」。

antiAffinityGroups

根據您的偏好設定,將 antiAffinityGroups.enabled 設為 truefalse

使用這個欄位指定是否要讓 Google Distributed Cloud 為管理員叢集節點建立 VMware Distributed Resource Scheduler (DRS) 反相依性規則,使其分散於資料中心內至少三個實體主機上。

adminMaster

如要為管理員叢集的控制平面節點指定 CPU 和記憶體,請填寫 adminMaster 部分的 cpusmemoryMB 欄位。

管理員叢集必須有三個控制層節點。將 adminMaster 區段中的 replicas 欄位設為 3

proxy

如果管理員叢集節點所在的網路位於 Proxy 伺服器後方,請填寫「proxy」部分。

privateRegistry

決定要將 Google Distributed Cloud 元件的容器映像檔儲存在何處。選項如下:

  • Artifact Registry

  • 您自己的私密 Docker 登錄檔。

    如要使用自己的私人登錄檔,請填寫privateRegistry部分。

componentAccessServiceAccountKeyPath

Google Distributed Cloud 會使用元件存取服務帳戶,從 Artifact Registry 下載叢集元件。這個欄位會保留元件存取服務帳戶的 JSON 金鑰檔案路徑。

系統會自動填寫這個欄位。

gkeConnect

填寫gkeConnect部分,將管理員叢集註冊至機群。 Google Cloud 如果您在設定檔中加入 stackdrivercloudAuditLogging 區段,gkeConnect.projectID 中的 ID 必須與 stackdriver.projectIDcloudAuditLogging.projectID 中設定的 ID 相同。如果專案 ID 不同,叢集建立作業就會失敗。

在 1.28 以上版本中,您可以視需要指定 Fleet 和 Connect 服務在 gkeConnect.location 中執行的區域。如果您未加入這個欄位,叢集會使用這些服務的全球執行個體。

如果加入 gkeConnect.location,指定的區域必須與 cloudAuditLogging.clusterLocationstackdriver.clusterLocationgkeOnPremAPI.location 中設定的區域相同。如果區域不同,叢集建立作業就會失敗。

gkeOnPremAPI

如果專案已啟用 GKE On-Prem API,專案中的所有叢集都會自動註冊 GKE On-Prem API,並位於 stackdriver.clusterLocation 中設定的區域。Google Cloud gkeOnPremAPI.location 地區必須與 cloudAuditLogging.clusterLocationgkeConnect.locationstackdriver.clusterLocation 中指定的地區相同。如果區域不同,叢集建立作業就會失敗。

  • 如要在專案中註冊所有叢集,請務必按照「事前準備」一節中的步驟,在專案中啟用及使用 GKE On-Prem API。

  • 如果不想在 GKE On-Prem API 中註冊叢集,請加入這個區段,並將 gkeOnPremAPI.enabled 設為 false。如果不想在專案中註冊任何叢集,請在專案中停用 gkeonprem.googleapis.com (GKE On-Prem API 的服務名稱)。如需操作說明,請參閱「停用服務」。

stackdriver

如要為叢集啟用 Cloud Logging 和 Cloud Monitoring,請填寫 stackdriver 區段。

系統預設會顯示這個部分。也就是說,如果您未填寫這個部分,執行 gkectl create admin 時就必須加上 --skip-validation-stackdriver 旗標。

請注意下列要求:

  • 如果啟用進階叢集,則必須在 cloudAuditLogging.serviceAccountKeyPathstackdriver.serviceAccountKeyPath 中指定相同路徑。

  • stackdriver.projectID 中的 ID 必須與 gkeConnect.projectIDcloudAuditLogging.projectID 中的 ID 相同。

  • stackdriver.clusterLocation 中設定的 Google Cloud 區域必須與 cloudAuditLogging.clusterLocationgkeConnect.location 中設定的區域相同。此外,如果 gkeOnPremAPI.enabledtrue,則 gkeOnPremAPI.location 中必須設定相同區域。

如果專案 ID 和區域不同,叢集建立作業就會失敗。

cloudAuditLogging

如要整合叢集 Kubernetes API 伺服器的稽核記錄與 Cloud 稽核記錄,請填寫cloudAuditLogging部分。

請注意下列要求:

  • 啟用進階叢集後,您必須在 cloudAuditLogging.serviceAccountKeyPathstackdriver.serviceAccountKeyPath 中指定相同路徑。

  • cloudAuditLogging.projectID 中的 ID 必須與 gkeConnect.projectIDstackdriver.projectID 中的 ID 相同。

  • cloudAuditLogging.clusterLocation 中設定的 Google Cloud 區域必須與 stackdriver.clusterLocationgkeConnect.location 中設定的區域相同 (如果設定檔中包含該欄位)。此外,如果 gkeOnPremAPI.enabledtrue,則必須在 gkeOnPremAPI.location 中設定相同區域。

如果專案 ID 和區域不同,叢集建立作業就會失敗。

clusterBackup

如要啟用管理員叢集備份,請將 clusterBackup.datastore 設為要儲存叢集備份的 vSphere 資料儲存庫

如果啟用進階叢集,請移除這個部分。系統不支援將管理員叢集備份至 vSphere 資料存放區。

autoRepair

如要為管理員叢集啟用自動節點修復功能,請將 autoRepair.enabled 設為 true

secretsEncryption

如要啟用永久密碼加密,請填寫secretsEncryption部分。

如果啟用進階叢集,請將 secretsEncryption.enabled 設為 false。 不支援永久密碼加密。

osImageType

決定要為管理員叢集節點使用哪種 OS 映像檔,然後相應填寫 osImageType 區段。

如果啟用進階叢集,請將 osImageType 設為 ubuntu_cgroupv2ubuntu_containerd

填寫完畢的設定檔範例

以下是填寫完畢的管理員叢集設定檔範例。這項設定會啟用部分可用功能,但並非全部。

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "vc-01-pool-1"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
  controlPlaneIPBlock:
    netmask: "255.255.248.0"
    gateway: "21.0.143.254"
    ips:
    - ip: "21.0.140.226"
      hostname: "admin-cp-vm-1"
    - ip: "21.0.141.48"
      hostname: "admin-cp-vm-2"
    - ip: "21.0.141.65"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
adminMaster:
  cpus: 4
  memoryMB: 16384
  replicas: 3
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
clusterBackup:
  datastore: "vc-01-datastore-bu"
autoRepair:
  enabled: true
osImageType: "ubuntu_containerd"

驗證設定檔

填寫管理員叢集設定檔後,請執行 gkectl check-config,確認檔案有效:

gkectl check-config --config ADMIN_CLUSTER_CONFIG

ADMIN_CLUSTER_CONFIG 替換為管理員叢集設定檔的路徑。

如果指令傳回任何失敗訊息,請修正問題並再次驗證檔案。

如要略過耗時的驗證,請傳遞 --fast 旗標。 如要略過個別驗證,請使用 --skip-validation-xxx 標記。如要進一步瞭解 check-config 指令,請參閱執行預檢

取得 OS 映像檔

執行 gkectl prepare 初始化 vSphere 環境:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

gkectl prepare 指令會執行下列準備工作:

  • 將 OS 映像檔匯入 vSphere,並標示為 VM 範本。

  • 如果您使用私人 Docker 登錄檔,請將容器映像檔推送至登錄檔。

  • (選用) 驗證容器映像檔的建構認證,確認映像檔是由 Google 建構及簽署,可供部署。

建立管理員叢集

建立管理員叢集:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

如果您使用 VPC Service Controls,執行部分 gkectl 指令 (例如 "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services") 時可能會看到錯誤訊息。如要避免發生這些錯誤,請在指令中加入 --skip-validation-gcp 參數。

在失敗後繼續建立管理員叢集

如果管理員叢集建立失敗或取消,您可以再次執行 create 指令:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

找出管理員叢集 kubeconfig 檔案

gkectl create admin 指令會在目前目錄中建立名為 kubeconfig 的 kubeconfig 檔案。您稍後需要這個 kubeconfig 檔案,才能與管理員叢集互動。

kubeconfig 檔案包含管理員叢集的名稱。如要查看叢集名稱,可以執行下列指令:

kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG

輸出內容會顯示叢集名稱。例如:

NAME
gke-admin-tqk8x

您可以視需要變更 kubeconfig 檔案的名稱和位置。

管理 checkpoint.yaml 檔案

本節內容僅適用於非 HA 管理員叢集。建立高可用性管理員叢集時,不會使用 checkpoint.yaml 檔案。

執行 gkectl create admin 指令建立管理員叢集時,系統會在與管理員叢集資料磁碟相同的資料存放區資料夾中,建立檢查點檔案。根據預設,這個檔案的名稱為 DATA_DISK_NAME‑checkpoint.yaml。如果 DATA_DISK_NAME 的長度大於或等於 245 個字元,則由於 vSphere 對檔案名稱長度的限制,名稱會是 DATA_DISK_NAME.yaml

這個檔案包含管理員叢集狀態和憑證,用於日後的升級作業。除非您正在按照刪除管理員叢集的程序操作,否則請勿刪除這個檔案。

如果您已在 vCenter Server 執行個體中啟用 VM 加密功能,則必須具備「Cryptographic operations.Direct Access」權限,才能建立或升級管理員叢集。否則系統不會上傳查核點。如果無法取得這項權限,您可以在執行相關指令時使用隱藏旗標 --disable-checkpoint,停用檢查點檔案上傳功能。

執行 gkectl upgrade admin 指令或影響管理員叢集的 gkectl update 指令時,系統會自動更新 checkpoint.yaml 檔案。

確認管理員叢集正在執行中

確認管理員叢集正在執行:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG

請將 ADMIN_CLUSTER_KUBECONFIG 替換為管理員叢集 kubeconfig 檔案的路徑。

輸出內容會顯示管理員叢集節點。例如:

admin-cp-vm-1   Ready    control-plane,master   ...
admin-cp-vm-2   Ready    control-plane,master   ...
admin-cp-vm-3   Ready    control-plane,master   ...

備份檔案

建議您備份管理員叢集 kubeconfig 檔案。也就是將 kubeconfig 檔案從管理員工作站複製到其他位置。這樣一來,即使您無法存取管理工作站,或是管理工作站上的 kubeconfig 檔案遭到誤刪,您仍可存取管理叢集。

我們也建議您備份管理員叢集專用的私密 SSH 金鑰。 這樣一來,即使無法存取管理員叢集,您還是可以使用 SSH 連線至管理員叢集節點。這樣您就能排解及調查與管理員叢集的連線問題。

將管理員叢集中的 SSH 金鑰擷取至名為 admin-cluster-ssh-key 的檔案:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \
    -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key

現在你可以將「admin-cluster-ssh-key」備份到所選的其他位置。

RBAC 政策

填寫管理員叢集設定檔中的gkeConnect 部分時,叢集會在建立或更新期間註冊至機群。如要啟用機群管理功能, Google Cloud 會部署連線代理程式,並建立代表叢集註冊專案的 Google 服務帳戶。Connect 代理程式會與服務帳戶建立連線,處理對叢集 Kubernetes API 伺服器的要求。連線後即可在 Google Cloud中使用叢集和工作負載管理功能,包括存取 Google Cloud 控制台,與叢集互動。

管理員叢集的 Kubernetes API 伺服器必須能夠授權來自 Connect 代理程式的要求。為確保這一點,服務帳戶會設定下列角色型存取權控管 (RBAC) 政策

  • 模擬政策:授權 Connect 代理程式代表服務帳戶,將要求傳送至 Kubernetes API 伺服器。

  • 權限政策:指定可對其他 Kubernetes 資源執行的作業。

您需要服務帳戶和 RBAC 政策,才能在 Google Cloud 控制台中管理使用者叢集的生命週期。

Terraform

程序總覽

建立管理員叢集前,您需要在管理工作站上執行 gkectl register bootstrap 指令。這個指令會在管理員工作站上部署 Docker 中的 Kubernetes (kind) 叢集。這個啟動叢集會託管建立管理員叢集所需的 Kubernetes 控制器。建立管理員叢集時,啟動叢集上的控制器會佈建節點、執行預檢,並將管理員叢集註冊至機群。管理員叢集建立完成後,啟動叢集就會自動刪除。

以下是使用 Terraform 建立管理員叢集的高階步驟:

  1. 填寫設定檔。
    使用 google_gkeonprem_vmware_admin_cluster 資源和下列範例,建立 main.tf 設定檔。
  2. 建立 bootstrap 叢集。
    執行 gkectl register bootstrap 來建立啟動叢集。指令完成啟動叢集建立作業後,輸出內容會提示您完成管理員叢集設定。這個程序會持續執行,直到建立管理員叢集為止。
  3. 建立管理員叢集。
    在另一個終端機視窗或可存取 GKE On-Prem API 的另一部電腦上,執行 terraform 指令,按照您填寫的 main.tf 設定檔指定內容,建立新的管理員叢集。

填寫設定檔

以下範例說明如何使用 MetalLB 建立具有三個控制層節點的高可用性 (HA) 管理員叢集。在 1.28 以上版本中,新的管理員叢集必須具備高可用性。因此,您必須將 control_plane_node.replicas 設為 3。

如需更多資訊和其他範例,請參閱 google_gkeonprem_vmware_admin_cluster 參考說明文件。如要瞭解如何使用私人登錄檔儲存系統映像檔,請參閱「設定私人容器登錄檔」。

在下列範例中填入預留位置變數,然後複製並貼到 main.tf。如果您使用 gkeadm 建立管理員工作站,請開啟管理員工作站設定檔,以便將 vCenter 區段中的值複製到對應的預留位置變數。

resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
  provider = google-beta
  name = "ADMIN_CLUSTER_NAME"
  project = "PROJECT_ID"
  location = "REGION"
  description = "DESCRIPTION"
  bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME"
  on_prem_version = "VERSION"
  image_type = "IMAGE_TYPE"
  vcenter {
    address = "VCENTER_ADDRESS"
    datacenter = "DATA_CENTER"
    cluster = "VCENTER_CLUSTER"
    resource_pool = "RESOURCE_POOL"
    datastore = "DATASTORE"
    ca_cert_data = "CA_CERT_DATA"
  }
  network_config {
    service_address_cidr_blocks = ["10.96.232.0/24"]
    pod_address_cidr_blocks = ["192.168.0.0/16"]
    vcenter_network = "NETWORK"
    dhcp_ip_config {
      enabled = true
    }
    host_config {
      dns_servers = ["DNS_SERVERS"]
      ntp_servers = ["NTP_SERVERS"]
    }
    ha_control_plane_config {
      control_plane_ip_block {
        gateway = "GATEWAY"
        netmask = "NETMASK"
        ips {
          hostname = "CONTROL_PLANE_HOST_1"
          ip       = "CONTROL_PLANE_NODE_IP_1"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_2"
          ip       = "CONTROL_PLANE_NODE_IP_2"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_3"
          ip       = "CONTROL_PLANE_NODE_IP_3"
        }
      }
    }
  }
  control_plane_node {
     cpus = NUM_CPUS
     memory = MEMORY
     replicas = 3
  }
  load_balancer {
    vip_config {
      control_plane_vip = "CONTROL_PLANE_VIP"
    }
    metal_lb_config {
      enabled = true
    }
  }
}

更改下列內容:

  • ADMIN_CLUSTER_NAME:管理員叢集的名稱。 名稱長度上限為 20 個字元。

  • PROJECT_ID:專案 ID。 Google Cloud

  • REGION:GKE On-Prem API (gkeonprem.googleapis.com)、Fleet 服務 (gkehub.googleapis.com) 和 Connect 服務 (gkeconnect.googleapis.com) 執行的 Google Cloud 區域。指定 us-west1 或其他支援的區域

    location 欄位對應於 gkectl register bootstrap 指令中的 --location 旗標。

  • DESCRIPTION:管理員叢集的說明。

  • VERSION:叢集的 Google Distributed Cloud 版本。 只有 1.28 以上版本支援使用 Terraform 建立叢集。您在此指定的版本必須與 gkectl register bootstrap 指令中 --bundle-path 旗標指定的 Bundle 版本相符。如需版本清單,請參閱「Google Distributed Cloud 版本」。

  • IMAGE_TYPE:要在管理員叢集節點上執行的 OS 映像檔類型。請指定下列其中一個值:「ubuntu_containerd」、「cos」、「ubuntu_cgv2」或「cos_cgv2」。

  • VCENTER_ADDRESSvCenter 伺服器位址

    • 管理員工作站設定檔:使用 vCenter.credentials.address 欄位的值。

    • vcenter.address 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-address 旗標。

  • DATA_CENTERvCenter 資料中心的名稱。

    • 管理員工作站設定檔:使用 vCenter.datacenter 欄位的值。

    • vcenter.datacenter 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-datacenter 旗標。

  • VCENTER_CLUSTERvCenter 叢集的名稱。

    • 管理員工作站設定檔:使用 vCenter.cluster 欄位的值。

    • vcenter.cluster 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-cluster 旗標。

  • RESOURCE_POOLvCenter 資源集區的名稱或路徑。

    • 管理員工作站設定檔:使用 vCenter.resourcePool 欄位的值。

    • vcenter.resource_pool 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-resource-pool 旗標。

  • DATASTOREvCenter 資料儲存庫的名稱。您指定的值必須是名稱,而非路徑。如要輸入路徑,請新增下列欄位:folder = "FOLDER"

    • 管理員工作站設定檔:使用 vCenter.datastore 欄位的值。

    • vcenter.datastore 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-datastore 旗標。

    如要為叢集節點使用 VM 儲存空間政策,請移除 vcenter.datastore 欄位,並改為新增 vcenter.storage_policy_name。此外,請在 gkectl register bootstrap 指令中新增 --vcenter-storage-policy 旗標。你必須指定 vcenter.datastorevcenter.storage_policy_name 的值,但不能同時指定兩者。

  • FOLDER:要存放叢集 VM 的 vCenter 資料夾名稱。如果未使用資料夾,請移除這個欄位。

    • 管理員工作站設定檔:使用 vCenter.folder 欄位的值。

    • vcenter.folder 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-folder 旗標。

  • CA_CERT_DATA:輸入 PEM 格式的 vCenter CA 憑證。如要取得 CA 憑證資料

    1. 執行下列指令:

      cat CA_CERT_PATH_LOCAL |  tr '\n' '\\n'
      

      CA_CERT_PATH_LOCAL 替換為 vCenter Server 的根 CA 憑證路徑。如果您使用 gkeadm 建立管理員工作站,可以使用管理員工作站設定檔中 caCertPath 欄位的值,也就是本機電腦上的路徑。gkeadm 已將 CA 憑證檔案複製到管理員工作站。您必須在 gkectl register bootstrap 指令的 --vcenter-ca-cert-path 標記中指定管理員工作站路徑。

    2. 複製上一個指令輸出的憑證,然後貼到文字編輯器。將所有反斜線字元 (\) 例項替換為換行字元 (\n)。

    3. 複製修改後的憑證,並貼到 CA_CERT_DATA 預留位置變數。

  • NETWORK:輸入 vCenter 網路的名稱。

    • 管理員工作站設定檔:使用 vCenter.network 欄位的值。

    • network_config.vcenter_network 欄位對應於 gkectl register bootstrap 指令中的 --vcenter-network 旗標。

  • GATEWAY:控制層叢集節點所在子網路的預設閘道 IP 位址。

  • NETMASK:具有控制層叢集節點的子網路網路遮罩。

  • DNS_SERVERS:DNS 伺服器的 IP 位址。

  • NTP_SERVERS:時間 (NTP) 伺服器的 IP 位址。

  • control_plane_ip_block.ips 區段中,輸入三個控制層節點的 IP 位址,並視需要輸入主機名稱。如果未輸入主機名稱,請從設定中移除 hostname 欄位。

  • NUM_CPUS:管理員叢集中每個控制層節點的 vCPU 數量。至少須為 4。

  • MEMORY:管理員叢集中每個控制層節點的記憶體容量 (以 MiB 為單位)。不得小於 8192,但建議為 16384。

  • CONTROL_PLANE_VIP:您選擇在管理員叢集的 Kubernetes API 伺服器負載平衡器上設定的 IP 位址。

驗證設定檔和方案

main.tf 所在的目錄中,執行下列指令:

  1. 初始化 Terraform:

    terraform init
    

    Terraform 會安裝任何需要的程式庫,例如 Google Cloud 供應商。 視需要修正 maint.tf 中的錯誤。

  2. 建立 Terraform 方案:

    terraform plan -out tfplan
    

    檢查設定,並視需要進行變更。

套用方案前,請先按照下一節所述建立啟動程序叢集。

建立啟動程序叢集

執行 gkectl register bootstrap 指令時,系統會提示您輸入 vCenter 帳戶的使用者名稱和密碼。請確認您已備妥憑證。如果您使用 gkeadm 建立管理員工作站,使用者名稱和密碼會位於 credential.yaml 檔案中。

  1. 使用 SSH 登入管理工作站。

  2. 使用 Google Cloud CLI 進行驗證:

    gcloud auth login
    
  3. 執行下列指令來建立啟動程序叢集。許多旗標值與 main.tf 欄位中的值相同。不過請注意,這項指令會採用其他值,您必須在提供的預留位置變數中指定這些值。

    gkectl register bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --vcenter-address=VCENTER_ADDRESS \
        --vcenter-datacenter=DATA_CENTER \
        --vcenter-cluster=VCENTER_CLUSTER \
        --vcenter-resource-pool=RESOURCE_POOL \
        --vcenter-datastore=DATASTORE \
        --vcenter-network=NETWORK \
        --vcenter-ca-cert-path=CA_CERT_PATH \
        --bundle-path=BUNDLE_PATH \
        --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
        --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
        --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    將下列項目替換為管理員工作站路徑:

    • CA_CERT_PATH:vCenter Server 根 CA 憑證的路徑。
    • BUNDLE_PATH:套件檔案的路徑。如果您使用 gkeadm 建立管理員工作站,套裝組合檔案會位於 /var/lib/gke/bundles/ 中。檔案名稱取決於 Google Distributed Cloud 版本,例如 gke-onprem-vsphere-1.31.0-gke.889-full.tgz
    • COMPONENT_ACCESS_SA_PATH:元件存取服務帳戶的金鑰檔案路徑。
    • CONNECT_REGISTER_SA_PATH:connect-register 服務帳戶的金鑰檔案路徑。
    • LOG_MON_SA_PATH:記錄監控服務帳戶的金鑰檔案路徑。
    • CLOUD_AUDIT_SA_PATH:稽核記錄服務帳戶的路徑。如果您未建立稽核記錄服務帳戶,請指定記錄監控服務帳戶的金鑰檔案路徑。

    視需要修改下列標記的指令:

    • 如果您在 main.tf 中指定資料夾,請新增下列旗標: --vcenter-folder=FOLDER
    • 如果您在 main.tf 中指定了 VM 儲存空間政策,請移除 --vcenter-datastore 並新增下列標記:--vcenter-storage-policy-name=STORAGE_POLICY_NAME
    • 如果管理工作站所在的網路位於 Proxy 伺服器後方,請新增下列標記:--proxy-url=PROXY_URL--no-proxy=NO_PROXY。將 PROXY_URL 替換為 Proxy 伺服器的網址,並將 NO_PROXY 替換為以半形逗號分隔的網域和 IP 位址值,這些網域和 IP 位址會從 Proxy 排除。

    如果新增標記,請務必加入指令列接續反斜線字元 (\)。

  4. 出現提示時,輸入 (或複製並貼上) vCenter 使用者名稱。使用者名稱不會回顯到畫面上。

  5. 出現提示時,請輸入 (或複製並貼上) vCenter 密碼。密碼不會回顯到畫面上。

這項指令會執行多項驗證。gkectl成功建立啟動程序叢集後,畫面會顯示類似以下的輸出內容,為方便閱讀,部分內容已遭截斷:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

這個程序會持續執行,直到建立管理員叢集為止。

如果在建立管理員叢集之前結束 gkectl register bootstrap 指令,管理員叢集建立作業就會失敗,您必須使用下列指令刪除啟動叢集:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

建立管理員叢集

套用 Terraform 方案,建立管理員叢集:

terraform apply "tfplan"

建立管理員叢集大約需要 15 分鐘以上。您可以在 Google Cloud 控制台的「GKE 叢集」頁面中查看叢集。

控制台

程序總覽

建立管理員叢集前,您需要在管理工作站上執行 gkectl register bootstrap 指令。這個指令會在管理員工作站上部署 Docker 中的 Kubernetes (kind) 叢集。這個啟動叢集會託管建立管理員叢集所需的 Kubernetes 控制器。建立管理員叢集時,啟動叢集上的控制器會佈建節點、執行預檢,並將管理員叢集註冊至機群。管理員叢集建立完成後,啟動叢集就會自動刪除。

以下是使用控制台建立管理員叢集的高階步驟:

  1. 在控制台中,您輸入 gkectl register bootstrap 需要的資訊。控制台會顯示 gkectl register bootstrap 指令,以及您輸入的資訊。顯示的指令也包含路徑的標記,您必須先指定路徑,才能執行指令。

  2. 在管理員工作站上,您會執行 gkectl register bootstrap 來建立啟動叢集。指令完成啟動叢集建立作業後,輸出內容會提示您完成管理員叢集設定。這個程序會持續執行,直到建立管理員叢集為止。

  3. 返回控制台,完成建立叢集所需的資訊。叢集建立期間,gkectl register bootstrap 指令會輸出進度資訊,並在管理員工作站上寫入記錄。管理員叢集建立完畢後,系統會自動刪除啟動叢集。

開始設定叢集

  1. 在控制台中,前往「在 VMware 上建立叢集」頁面。

    前往「建立 VMware 叢集」

  2. 選取要建立叢集的 Google Cloud 專案。

    在下一個章節中建立啟動程序叢集時,所選專案 ID 會顯示在 --project-id 旗標的 gkectl register bootstrap 指令中。

  3. 確認已選取「建立管理員叢集」

  4. 按一下「下一步:安裝啟動環境」

安裝啟動環境

在本節中,請輸入 gkectl register bootstrap 指令所需的資訊。在 UI 欄位中輸入值時,控制台會將值複製到 gkectl register bootstrap 指令的對應旗標,並顯示在頁面底部的「Bootstrap environment from admin workstation」(管理工作站的啟動程序環境) 區段。

啟動環境基本資訊

  1. 輸入管理員叢集的名稱。控制台會使用叢集名稱做為頁面底部顯示的 gkectl register bootstrap 指令中 --target-cluster-name 標記的值。名稱長度上限為 20 個字元。

  2. 在「API Location」(API 位置)Google Cloud 欄位中,從清單中選取 Google Cloud 區域。這項設定會指定下列 API 和服務的執行區域:

    • GKE On-Prem API (gkeonprem.googleapis.com)
    • 車隊服務 (gkehub.googleapis.com)
    • 連結服務 (gkeconnect.googleapis.com)

    這項設定也會控管下列項目的儲存區域:

    • GKE On-Prem API 管理叢集生命週期所需的叢集中繼資料
    • 系統元件的 Cloud Logging 和 Cloud Monitoring 資料
    • Cloud 稽核記錄建立的管理員稽核記錄

    Google Cloud API Location」欄位對應於 gkectl register bootstrap 指令中的 --location 旗標。

  3. 在「管理員叢集版本」欄位中,輸入要用於建立叢集的版本。您在此選取的版本必須與 gkectl register bootstrap 指令中 --bundle-path 旗標指定的套件版本相符。

vCenter 設定

如果您使用 gkeadm 建立管理員工作站,請開啟管理員工作站設定檔,以便將 vCenter 區段中的值複製到控制台的欄位。請注意,產生的管理員叢集設定檔也包含這項資訊。

本節中的大部分欄位都無法變更。如要瞭解欄位是否可變動,請參閱管理員叢集設定檔參考資料中的vCenter部分

  1. 在「Address」(地址) 欄位中,輸入 vCenter Server 位址

    • 管理員工作站設定檔:使用 vCenter.credentials.address 欄位的值。

    • 「地址」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-address 旗標。

  2. 在「Datacenter」(資料中心) 欄位中,輸入 vCenter 資料中心的名稱。

    • 管理員工作站設定檔:使用 vCenter.datacenter 欄位的值。

    • 「資料中心」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-datacenter 標記。

  3. 在「Cluster Name」(叢集名稱) 欄位中,輸入 vCenter 叢集的名稱。

    • 管理員工作站設定檔:使用 vCenter.cluster 欄位的值。

    • 「叢集名稱」欄位對應 gkectl register bootstrap 指令中的 --vcenter-cluster 標記。

  4. 在「Resource pool」(資源集區) 欄位中,輸入 vCenter 資源集區的名稱或路徑。

    • 管理員工作站設定檔:使用 vCenter.resourcePool 欄位的值。

    • 「資源集區」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-resource-pool 旗標。

  5. 輸入下列任一選項,設定儲存空間選項:

    • 「Datastore」(資料儲存庫) 欄位:輸入 vCenter 資料儲存庫的名稱。您指定的值必須是名稱,而非路徑。如需輸入路徑,請在「Folder」(資料夾) 欄位中輸入。

      • 管理員工作站設定檔:使用 vCenter.datastore 欄位的值。

      • 「Datastore」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-datastore 旗標。

    • 「儲存空間政策名稱」欄位:輸入叢集節點的VM 儲存空間政策名稱。詳情請參閱「設定儲存空間政策」。

      • 管理員工作站設定檔:使用 vCenter.storagePolicyName 欄位的值。

      • 「儲存空間政策名稱」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-storage-policy 旗標。

    您必須在「Datastore」(資料存放區) 欄位或「Storage Policy Name」(儲存空間政策名稱) 欄位中輸入值,但不能同時輸入。

  6. (選用) 在「Folder」(資料夾) 欄位中,輸入要存放叢集 VM 的 vCenter 資料夾名稱。

    • 管理員工作站設定檔:使用 vCenter.folder 欄位的值。

    • 「資料夾」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-folder 旗標。

  7. 在「Network」(網路) 欄位中,輸入 vCenter 網路的名稱。

    • 管理員工作站設定檔:使用 vCenter.network 欄位的值。

    • 「網路」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-network 旗標。

  8. 在「CA certificate path」欄位中,輸入 vCenter Server 的根 CA 憑證路徑。

    • 如果您使用 gkeadm 建立管理員工作站,gkeadm 會將您在本機的 CA 憑證檔案複製到管理員工作站。

    • 「CA 憑證路徑」欄位對應於 gkectl register bootstrap 指令中的 --vcenter-ca-cert-path

取得 CA 憑證

建立啟動程序叢集後,您必須在「Cluster basics」(叢集基本資料) 頁面的「CA certificate data」(CA 憑證資料) 欄位中,提供 PEM 格式的 vCenter CA 憑證。執行下列指令來顯示憑證:

cat CA_CERT_PATH

CA_CERT_PATH 替換為 vCenter Server 根層級 CA 憑證的路徑。如果您在本機執行這項指令,請使用管理員工作站設定檔中 vCenter.caCertPath 的路徑。

將整個憑證複製到文字編輯器,以便在建立啟動程序叢集後,貼到「叢集基本資訊」頁面的「CA 憑證資料」欄位。

從管理員工作站啟動環境

執行 gkectl register bootstrap 指令時,系統會提示您輸入 vCenter 帳戶的使用者名稱和密碼。請確認您已備妥憑證。如果您使用 gkeadm 建立管理員工作站,使用者名稱和密碼會位於 credential.yaml 檔案中。

  1. 捲動至「從管理員工作站啟動環境」部分,顯示 gkectl register bootstrap 指令。

    前往管理員工作站建立啟動叢集時,請勿關閉這個頁面。

  2. gkectl register bootstrap 指令複製並貼到文字編輯器,以便為下列標記指定值:

        ./gkectl register bootstrap \
          ...
          --bundle-path=BUNDLE_PATH \
          ...
          --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
          --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
          --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
          --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    將下列項目替換為管理員工作站路徑:

    • BUNDLE_PATH:套件檔案的路徑。如果您使用 gkeadm 建立管理員工作站,套裝組合檔案會位於 /var/lib/gke/bundles/ 中。檔案名稱取決於 Google Distributed Cloud 版本,例如 gke-onprem-vsphere-1.31.0-gke.889-full.tgz
    • COMPONENT_ACCESS_SA_PATH:元件存取服務帳戶的金鑰檔案路徑。
    • CONNECT_REGISTER_SA_PATH:connect-register 服務帳戶的金鑰檔案路徑。
    • LOG_MON_SA_PATH:記錄監控服務帳戶的金鑰檔案路徑。
    • CLOUD_AUDIT_SA_PATH:稽核記錄服務帳戶的路徑。如果您未建立稽核記錄服務帳戶,請指定記錄監控服務帳戶的金鑰檔案路徑。

    此外,如果您使用 gkeadm 建立管理員工作站,gkectl 會下載至 /usr/bin/ 目錄。在本例中,請從指令開頭移除 ./,因為 gkectl 不在目前的工作目錄中。

  3. 使用 SSH 連線至管理工作站。

  4. 複製指令並貼到管理工作站的終端機視窗。

  5. 出現提示時,輸入 (或複製並貼上) vCenter 使用者名稱。使用者名稱不會回顯到畫面上。

  6. 出現提示時,請輸入 (或複製並貼上) vCenter 密碼。密碼不會回顯到畫面上。

這項指令會執行多項驗證。gkectl成功建立啟動程序叢集後,畫面會顯示類似以下的輸出內容,為方便閱讀,部分內容已遭截斷:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

這個程序會持續執行,直到建立管理員叢集為止。

如果在建立管理員叢集之前結束 gkectl register bootstrap 指令,管理員叢集建立作業就會失敗,您必須使用下列指令刪除啟動叢集:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

完成管理員叢集設定

返回控制台並執行下列步驟:

  1. 在「Install bootstrap environment」(安裝啟動程序環境) 頁面上,按一下「Check Connection」(檢查連線)

    成功後,主控台會顯示「Connection established」(已建立連線)

    必須先建立與啟動程序叢集的連線,才能繼續。如果連線未建立,請檢查您為 gkectl register bootstrap 指令指定的引數:

    • 請確認 --target-cluster-name 的值與「Bootstrap environment basics」(啟動環境基本資訊) 部分顯示的「Admin cluster name」(管理員叢集名稱) 相符。

    • 確認 --project-id 的值與您在控制台中選取的專案 ID 相符。

    如要變更啟動程序叢集名稱、專案 ID 或其他標記值,請按照下列步驟操作:

    1. 輸入 Ctrl-C 即可退出 gkectl register bootstrap
    2. 刪除啟動叢集:

      gkectl delete bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
      
    3. 重新執行 gkectl register bootstrap 指令。

  2. 按一下「下一步:叢集基本資訊」,開始設定管理員叢集。

叢集基本資訊

  1. 在「CA certificate data」(CA 憑證資料) 欄位中,複製並貼上 PEM 格式的完整 vCenter CA 憑證,如先前「取得 CA 憑證」一節所述。

  2. 在「授權」部分,輸入要授予 Kubernetes 唯讀 clusterrole/view 角色的使用者電子郵件地址。請注意,系統會自動新增您的電子郵件地址。套用的角色式存取權控管 (RBAC) 政策,可讓使用者透過 Connect Gateway 執行唯讀指令。

  3. 按一下「下一個控制平面」

控制層

  1. 查看「控制平面」部分的預設設定,並視需要變更。

  2. 在「控制層節點 IP」部分,在下列欄位中輸入 IP 位址:

    • 閘道:叢集節點所在子網路的預設閘道 IP 位址。

    • 網路遮罩:叢集節點所在子網路的網路遮罩。

    • IP 位址:輸入 IP 位址,以及三個控制層節點的主機名稱 (選用)。

  3. 點選「下一步:網路」

網路

在本節中,您將指定建立管理員叢集所需的網路資訊。

  1. 在「服務和 Pod CIDR」部分,您可以接受 Kubernetes 服務和 Pod IP 位址範圍的預設值,也可以輸入不同的 CIDR 位址範圍。

    • 服務 CIDR:最小可能範圍:/24。最大可能範圍: /12

    • Pod CIDR:最小可能範圍:/18。最大可能範圍: /8`。

  2. 在「主機設定」部分,指定叢集節點 VM 要使用的 NTP 伺服器、DNS 伺服器和 DNS 搜尋網域 (選用)。叢集建立後即無法修改這些值。

  3. 按一下「下一步:負載平衡器」

負載平衡器

在本節中,您可以選取要使用的負載平衡器類型。詳情請參閱負載平衡總覽

  1. 在「Load balancer type」(負載平衡器類型) 清單中,選取負載平衡器:

    • 隨附於 MetalLB:MetalLB 負載平衡器隨附於,且所需設定比手動負載平衡少。MetalLB 元件會在叢集節點上執行,因此您不必為負載平衡器建立個別的 VM。

    • 手動:只要在建立叢集設定負載平衡器,即可使用任何負載平衡器。使用手動設定的負載平衡器時,您必須設定虛擬 IP (VIP)、節點位址和 NodePort 值之間的對應。

  2. 在「控制層 VIP」欄位中,輸入 Kubernetes API 伺服器接收流量時要使用的 VIP。

  3. 按一下「驗證並建立」

    主控台會顯示狀態訊息,同時驗證設定並在資料中心建立叢集。

    如果設定有問題,控制台會顯示錯誤訊息,您應該能據此修正設定問題,然後再次嘗試建立叢集。

管理員工作站會輸出叢集建立程序的詳細資料。如果預檢通過,您會看到類似以下的畫面:

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

連線至管理員叢集

gkectl register bootstrap 指令會在管理員工作站上建立管理員叢集的 kubeconfig 檔案。kubeconfig 所在的目錄和檔案名稱會依據管理員叢集名稱而定,如下所示:

gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

您必須限制對這個 kubeconfig 的存取權,因為其中包含叢集的驗證憑證。

此外,您也可以透過連線閘道執行唯讀 kubectl 指令。

  1. 在安裝 gcloud CLI 的電腦上執行下列指令,取得可透過連線閘道存取叢集的 kubeconfig 項目。

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    輸出結果會與下列內容相似:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  2. 現在您可以透過連線閘道執行唯讀 kubectl 指令:

    kubectl get pods -A
    

    如需管理員叢集的完整管理員權限,請參閱「設定連線閘道」。

疑難排解

請參閱「排解叢集建立和升級問題」。

後續步驟

建立使用者叢集