Distributed Cloud 軟體僅允許您建立概念驗證管理員叢集和使用者叢集,在裸機硬體上評估 GKE 叢集。本文件是兩部分教學課程的第二部分,以「設定基本基礎架構」中的設定為基礎。部署完成後,您可以繼續建立 Service 和 Ingress。
本文適用對象為負責設定、監控及管理基礎架構生命週期的管理員、架構師和操作員。請勿在正式環境中使用最小概念驗證叢集。如要評估正式環境架構,請參閱「選擇部署模式」。
事前準備
請務必按照本指南前一部分「設定最精簡的基礎架構」所述,設定硬體並規劃 IP 位址。或者,您也可以在 Google Cloud 控制台的「Create a bare metal admin cluster」(建立 Bare Metal 管理員叢集) 流程中,使用「Prerequisites」(必要條件) 區段 的網路需求規劃工具。
如要使用 Terraform 建立使用者叢集,您必須在管理員工作站或其他電腦上安裝 Terraform。
確認已安裝最新版 Google Cloud CLI 元件:
gcloud components update
請按照下列步驟啟用及使用 GKE On-Prem API:
在專案中啟用 API:
gcloud services enable \ --project PROJECT_ID \ gkeonprem.googleapis.com將
PROJECT_ID替換為機群主專案的專案 ID。如果收到
PERMISSION_DENIED錯誤,請仔細檢查輸入的專案 ID。如果專案 ID 正確,請執行gcloud auth login,使用有權存取專案的帳戶登入 Google Cloud CLI。如果這是您首次在專案中啟用 GKE On-Prem API,則必須初始化 API。方法是呼叫 gcloud CLI 指令,顯示可用於建立叢集的版本:
gcloud container bare-metal clusters query-version-config \ --project=PROJECT_ID \ --location="us-central1"
程序總覽
建立基本叢集的主要步驟如下:
收集資訊,用於指定叢集設定。
建立管理員叢集,以便管理使用者叢集。
建立可執行工作負載的使用者叢集。
1. 收集資訊
請使用您在「設定基本基礎架構」中準備的資訊,或從網路規劃工具中取得的資訊,填寫下表中的每個預留位置。這些預留位置對應至叢集設定檔中的欄位值,用於最精簡的安裝作業 (一個管理員叢集和一個使用者叢集)。部分預留位置會設為產生的叢集設定檔中預先填入的值,但所有預留位置皆可編輯。
| 基本叢集資訊 | |
| 您要建立的管理員叢集名稱。管理員工作站上的叢集構件位置和命名,取決於叢集名稱。叢集命名空間衍生自叢集名稱。 | ADMIN_CLUSTER_NAME |
| 您要建立的使用者叢集名稱。管理員工作站上的叢集構件位置和命名,取決於叢集名稱。叢集命名空間衍生自叢集名稱。 | USER_CLUSTER_NAME |
您在本指南第一部分下載的 bmctl 版本。 |
CLUSTER_VERSION |
| 帳戶資訊 | |
管理員工作站上的 SSH 私密金鑰檔案路徑。根據預設,路徑為 /home/USERNAME/.ssh/id_rsa。 |
SSH_PRIVATE_KEY_PATH |
| 您要用來將叢集連結至 Google Cloud ,以及查看記錄和指標的 Google Cloud 專案 ID。這項專案也稱為機群主專案。 | PROJECT_ID |
與 Google Cloud帳戶相關聯的電子郵件地址。例如:alex@example.com。 |
GOOGLE_ACCOUNT_EMAIL |
| 節點機器 IP 位址 | |
| 一個 IP 位址用於管理員叢集控制層節點。 | ADMIN_CP_NODE_IP |
| 一個 IP 位址,用於使用者叢集控制層節點。 | USER_CP_NODE_IP |
| 一個使用者叢集 worker 節點的 IP 位址。 | USER_WORKER_NODE_IP |
| VIP 位址 | |
| 管理員叢集 Kubernetes API 伺服器的 VIP。 | ADMIN_CP_VIP |
| 使用者叢集 Kubernetes API 伺服器的 VIP。 | USER_CP_VIP |
| 一個 VIP,做為輸入 Proxy 的外部位址。 | USER_INGRESS_VIP |
| 十個 IP 位址的範圍,用於 LoadBalancer 類型服務的外部 IP 位址。請注意,這個範圍包含 MetalLB 所需的 ingress VIP。其他 IP 位址不得與這個範圍重疊。 | START_IP-END_IP |
| Pod 和 Service CIDR | |
管理員叢集上 Pod 使用的 IP 位址範圍,以 CIDR 區塊標記法表示。建議的起始值為 192.168.0.0/16,系統會預填在產生的叢集設定檔。 |
192.168.0.0/16 |
管理員叢集上 Service 使用的 IP 位址範圍,以 CIDR 區塊標記法表示。建議的起始值為 10.96.0.0/20,系統會預填在產生的叢集設定檔。 |
10.96.0.0/20 |
使用者叢集上 Pod 使用的 IP 位址範圍,以 CIDR 區塊標記法表示。建議的起始值為 192.168.0.0/16,這個值會預填至產生的叢集設定檔,也是控制台中的預設值。 |
192.168.0.0/16 |
使用者叢集上 Service 使用的 IP 位址範圍,以 CIDR 區塊標記法表示。建議的起始值為 10.96.0.0/20,這個值會預填至產生的叢集設定檔,也是控制台中的預設值。 |
10.96.0.0/20 |
2. 建立管理員叢集
下列步驟會建立管理員叢集,以便安裝最精簡的管理員叢集和使用者叢集。請務必先為上述「收集資訊」一節表格中的每個預留位置提供值,再繼續操作。
如果專案已啟用 GKE On-Prem API (gkeonprem.googleapis.com),新建立的叢集會自動註冊至 API。即使叢集設定檔中未指定 spec.gkeOnPremAPI,系統也會註冊。註冊這項由Google Cloud託管的 API 後,您就能使用Google Cloud 控制台或 gcloud CLI 管理叢集的生命週期。
如要停用自動註冊功能,請在建立叢集前,取消註解叢集設定檔中的 spec.gkeOnPremAPI 區段,並將 spec.gkeOnPremAPI.enabled 設為 false。spec.gkeOnPremAPI.enabled 欄位可變更,因此您可以在叢集建立後隨時取消註冊。
如要為最低限度安裝建立管理員叢集,請按照下列步驟操作:
使用下列指令,設定 Google Distributed Cloud 可用於建立叢集的預設憑證:
gcloud auth application-default login
如要產生叢集設定檔,請在管理員工作站的
/baremetal目錄中執行下列指令:bmctl create config -c ADMIN_CLUSTER_NAME \ --enable-apis --create-service-accounts --project-id=PROJECT_ID
驗證管理員叢集設定檔:
下列叢集設定檔已填入您在上一節規劃表中輸入的值。除了您輸入的值之外,請注意與產生的設定檔有下列差異:
- 為方便閱讀,我們已移除這個範例中的註解。
NodePool規格已移除。管理員叢集不允許使用 worker 節點。
gcrKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-gcr.json sshPrivateKeyPath: SSH_PRIVATE_KEY_PATH gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-connect.json gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-register.json cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-cloud-ops.json --- apiVersion: v1 kind: Namespace metadata: name: cluster-ADMIN_CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: ADMIN_CLUSTER_NAME namespace: cluster-ADMIN_CLUSTER_NAME spec: type: admin profile: default anthosBareMetalVersion: CLUSTER_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: ADMIN_CP_NODE_IP clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: ADMIN_CP_VIP clusterOperations: projectID: PROJECT_ID location: us-central1 storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 250 # GKEOnPremAPI (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem # API to enable/disable cluster lifecycle management from gcloud UI and Terraform. # gkeOnPremAPI: # enabled: false # location is the Cloud location for the cluster resource metadata where the cluster will be enrolled. # location: us-central1
將管理員工作站上產生的設定檔內容,替換成上述範例的內容。
開啟產生的檔案
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml,並將其內容替換為您在上一步中驗證的範例內容。如要建立管理員叢集,請在管理員工作站的
/baremetal目錄中執行下列指令:bmctl create cluster -c ADMIN_CLUSTER_NAME
bmctl指令會執行預檢並建立叢集,同時在畫面上顯示輸出內容。詳細資訊會寫入管理員工作站baremetal/bmctl-workspace/ADMIN_CLUSTER_NAME/log資料夾中的記錄。叢集會在幾分鐘內建立完畢。
確認叢集已建立並正在執行:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig \ get nodes
如果叢集正在運作,回應會如下所示:
NAME STATUS ROLES AGE VERSION node-01 Ready control-plane 16h v1.25.7-gke.1000
如要為使用者帳戶授予叢集的 Kubernetes
clusterrole/cluster-admin角色,請執行下列gcloud指令:gcloud container fleet memberships generate-gateway-rbac \ --membership=ADMIN_CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig \ --context=ADMIN_CLUSTER_NAME-admin@ADMIN_CLUSTER_NAME \ --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/<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>/<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>-kubeconfig, context: <var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>-admin@<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var> Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.此外,RBAC 政策可讓您在Google Cloud 控制台登入叢集,查看更多叢集詳細資料。
3. 建立使用者叢集
下列步驟會為最精簡的管理員叢集和使用者叢集安裝作業建立使用者叢集。請務必先為先前「收集資訊」一節表格中的每個預留位置提供值,再繼續操作。
如要為最小安裝建立使用者叢集,請按照下列步驟操作:
bmctl
如果專案已啟用 GKE On-Prem API (gkeonprem.googleapis.com),新建立的叢集會自動註冊至 API。即使叢集設定檔中未指定 spec.gkeOnPremAPI,系統也會註冊。叢集註冊這個 Google Cloud代管 API 後,您可以使用 Google Cloud 控制台或 gcloud CLI 管理叢集生命週期。
如要停用自動註冊功能,請在建立叢集前,取消註解叢集設定檔中的 spec.gkeOnPremAPI 區段,並將 spec.gkeOnPremAPI.enabled 設為 false。spec.gkeOnPremAPI.enabled 欄位可變更,因此您可以在叢集建立後隨時取消註冊。
產生叢集設定檔:
bmctl create config -c USER_CLUSTER_NAME \ --project-id=PROJECT_ID
驗證使用者叢集設定檔:
下列叢集設定檔已填入您先前在規劃表中輸入的值。除了您輸入的值之外,請注意下列與產生的設定檔之間的差異:
- 為方便閱讀,我們已移除這個範例中的註解。
- 叢集類型
spec.type已設為user。 - 系統會新增
spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts欄位,將clusterrole/cluster-admin授予您的帳戶。此外,這個欄位可讓您在Google Cloud 控制台登入叢集,查看更多叢集詳細資料。
--- apiVersion: v1 kind: Namespace metadata: name: cluster-USER_CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: USER_CLUSTER_NAME namespace: cluster-USER_CLUSTER_NAME spec: type: user profile: default anthosBareMetalVersion: CLUSTER_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: USER_CP_NODE_IP clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: USER_CP_VIP ingressVIP: USER_INGRESS_VIP addressPools: - name: pool1 addresses: - START_IP-END_IP clusterOperations: projectID: PROJECT_ID location: us-central1 clusterSecurity: authorization: clusterAdmin: gcpAccounts: - GOOGLE_ACCOUNT_EMAIL storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 250 # GKEOnPremAPI (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem # API to enable/disable cluster lifecycle management from gcloud UI and Terraform. # gkeOnPremAPI: # enabled: false # location is the Cloud location for the cluster resource metadata where the cluster will be enrolled. # location: us-central1 --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-USER_CLUSTER_NAME spec: clusterName: USER_CLUSTER_NAME nodes: - address: USER_WORKER_NODE_IP將管理員工作站上產生的設定檔內容,替換成上述範例的內容。
開啟產生的檔案
bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME.yaml,並將其內容替換為您在上一步中驗證的範例內容。建立使用者叢集:
bmctl create cluster -c USER_CLUSTER_NAME \ --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
bmctl指令會執行預檢並建立叢集,同時在畫面上顯示輸出內容。詳細資訊會寫入管理員工作站baremetal/bmctl-workspace/USER_CLUSTER_NAME/log資料夾中的記錄。叢集會在幾分鐘內建立完畢。
確認叢集已建立並正在執行:
kubectl --kubeconfig bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-kubeconfig \ get nodes
如果叢集正在運作,回應會如下所示:
NAME STATUS ROLES AGE VERSION nuc-3 Ready control-plane 4m32s v1.26.2-gke.1001 nuc-4 Ready worker 2m2s v1.26.2-gke.1001
控制台
請按照下列步驟,在控制台中建立使用者叢集:
在控制台中,前往「Create a bare metal cluster」(建立裸機叢集) 頁面。
確認 Google Cloud 專案清單已選取
PROJECT_ID。點選「建立叢集」。
在對話方塊中,按一下「On-premises」(地端部署)。
按一下「Bare metal」旁的「設定」。系統隨即會顯示「Prerequisites」(必要條件) 頁面。
在「Choose your cluster type」(選擇叢集類型) 下方,選取「Create a user cluster for an existing admin cluster」(為現有的管理員叢集建立使用者叢集)。
點選「下一步」。
叢集基本資訊
輸入
USER_CLUSTER_NAME做為使用者叢集的名稱,或使用預設值。確認已選取新建立的管理員叢集。
在「GCP API Location」(GCP API 位置) 中,選取「us-central1」。
在「Google Distributed Cloud version」(Google Distributed Cloud 版本) 中,選取
CLUSTER_VERSION或使用預設值。這個頁面的其餘設定可使用預設值。按一下左側導覽列中的「Networking」。
網路
在「Control plane」(控制層) 部分,於「Control plane node IP 1」(控制層節點 IP 1) 欄位中輸入下列內容:
USER_CP_NODE_IP在「Load balancer」(負載平衡器) 區段中,使用預設負載平衡器「Bundled with MetalLB」(與 MetalLB 搭配)。
前往「New address pool」(新增位址集區) 專區。在「IP address range 1」(IP 位址範圍 1) 欄位中輸入 IP 位址範圍:
10.200.0.51-10.200.0.70按一下「完成」。
在「Virtual IPs」(虛擬 IP) 區段中,輸入控制層 VIP 的 IP 位址:
USER_CP_VIP輸入 Ingress VIP 的 IP 位址:
USER_INGRESS_VIP在「Service and Pod CIDRs」(Service 和 Pod CIDR) 區段中,如果您未在規劃工具中變更 Service 和 Pod CIDR,則可使用預設值。
如果您變更了 CIDR,請輸入要使用的 CIDR:
- Service CIDR:
10.96.0.0/20- Pod CIDR:
192.168.0.0/16按一下左側導覽列中的「default pool」。
建立節點集區
叢集至少須有一個 worker 節點集區。在這個叢集中建立的 worker 節點群組是以節點集區為範本。
在「Nodes address 1」(節點位址 1) 欄位中,輸入使用者叢集 worker 節點的 IP 位址:
USER_WORKER_NODE_IP
建立叢集
按一下「驗證並建立」,建立使用者叢集。
建立使用者叢集需要 15 分鐘以上。控制台會在驗證設定及建立叢集時顯示狀態訊息。
如果設定有問題,控制台會顯示錯誤訊息,說明如何修正設定問題,並再次嘗試建立叢集。
如要查看建立程序的其他資訊,請按一下「Show details」(顯示詳細資料),顯示側邊面板。按一下 即可關閉詳細資料面板。
叢集建立後,系統會顯示「Cluster status: running」。
叢集建立後,按一下 「Clusters」(叢集),返回「Clusters」(叢集) 頁面。
gcloud CLI
本節說明如何使用 gcloud CLI 建立使用者叢集和節點集區。
執行下列指令,建立使用者叢集:
gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=us-central1 \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=PROJECT_ID \ --admin-cluster-membership-location=global \ --version=CLUSTER_VERSION \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=START_IP-END_IP' \ --control-plane-node-configs='node-ip=USER_CP_NODE_IP' \ --control-plane-vip=USER_CP_VIP \ --control-plane-load-balancer-port=443 \ --ingress-vip=USER_INGRESS_VIP \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
指令輸出內容大致如下:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
在輸出範例中,字串
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179是長時間執行的作業OPERATION_ID。您可以使用下列指令查看作業狀態:gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
建立叢集大約需要 15 分鐘以上。建立叢集時,您可以不時執行上述指令,取得目前狀態。
叢集建立後,您會看到類似下方的輸出內容:
Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/bareMetalClusters/USER_CLUSTER_NAME].
叢集建立完成後,請執行下列指令,在新建立的叢集上建立節點集區。
gcloud container bare-metal node-pools create node-pool-1 \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=us-central1 \ --node-configs node-ip=USER_WORKER_NODE_IP
如需更多資訊和其他範例,請參閱下列資源:
Terraform
本節說明如何使用 Terraform 建立使用者叢集和節點集區。
建立目錄,並在該目錄中建立新檔案。檔案名稱必須有
.tf副檔名。在本指南中,這個檔案稱為main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf驗證使用者叢集 Terraform 資源:
下列 Terraform 資源範例已填入您在上一節規劃表中輸入的值。
resource "google_gkeonprem_bare_metal_cluster" "cluster-basic" { provider = google-beta name = "USER_CLUSTER_NAME" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME" bare_metal_version = "CLUSTER_VERSION" network_config { island_mode_cidr { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] } } control_plane { control_plane_node_pool_config { node_pool_config { labels = {} operating_system = "LINUX" node_configs { labels = {} node_ip = "USER_CP_NODE_IP" } } } } load_balancer { port_config { control_plane_load_balancer_port = 443 } vip_config { control_plane_vip = "USER_CP_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "pool1" addresses = [ "START_IP-END_IP" ] avoid_buggy_ips = true manual_assign = true } } } storage { lvp_share_config { lvp_config { path = "/mnt/localpv-share" storage_class = "local-shared" } shared_path_pv_count = 5 } lvp_node_mounts_config { path = "/mnt/localpv-disk" storage_class = "local-disks" } } security_config { authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } } } resource "google_gkeonprem_bare_metal_node_pool" "node-pool-default" { provider = google-beta name = "node-pool-1" bare_metal_cluster = google_gkeonprem_bare_metal_cluster.cluster-basic.name project = "PROJECT_ID" location = "us-central1" node_pool_config { operating_system = "LINUX" node_configs { node_ip = "USER_WORKER_NODE_IP" } } }將 Terraform 資源複製到
main.tf並儲存檔案。初始化並建立 Terraform 方案:
terraform initTerraform 會安裝所有必要程式庫,例如 Google Cloud 供應商。
查看設定,並視需要進行變更:
terraform plan套用 Terraform 計畫,建立使用者叢集:
terraform apply系統顯示提示訊息時,請輸入
yes。建立基本使用者叢集和節點集區約需 15 分鐘 (或更久,視網路而定)。
如要為使用者叢集建立 kubeconfig 檔案,請在管理員工作站上執行下列指令:
bmctl get credentials --cluster USER_CLUSTER_NAME \ --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
指令輸出內容會顯示使用者叢集的 kubeconfig 檔案名稱,例如:
bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig
檔案名稱中的
TIMESTAMP表示檔案建立日期和時間。這個檔案包含叢集的驗證憑證,因此請務必儲存在存取權受限的安全位置。
確認叢集已建立並正在執行:
kubectl --kubeconfig bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig \ get nodes
如果叢集正在運作,回應會如下所示:
NAME STATUS ROLES AGE VERSION nuc-3 Ready control-plane 4m32s v1.26.2-gke.1001 nuc-4 Ready worker 2m2s v1.26.2-gke.1001
如需更多資訊和其他範例,請參閱下列資源:
連線至使用者叢集
無論您使用哪種工具建立使用者叢集,您的電子郵件地址都會獲得角色式存取控管 (RBAC) 政策,讓您能以完整管理員權限連線至叢集。電子郵件地址的指定位置取決於工具:
bmctl:您的電子郵件地址會包含在範例使用者設定檔的clusterSecurity區段中。Terraform:您的電子郵件地址會包含在
google_gkeonprem_bare_metal_cluster資源範例的security_config區段中。控制台:您是叢集建立者,因此您的電子郵件地址會自動列入「Cluster basics」(叢集基本資訊) 頁面的「Authorization」(授權) 區段。
雖然您只指定了自己的電子郵件地址,但也可以加入其他電子郵件地址,將叢集的管理員權限授予其他使用者。
授予您電子郵件地址的 RBAC 政策會執行下列操作:
在叢集上授予您 Kubernetes
clusterrole/cluster-admin角色。可讓您使用 Google 身分登入 Google Cloud 控制台中的叢集。您可以在控制台的「GKE clusters」(GKE 叢集) 頁面查看叢集。
可讓您使用連結閘道的 kubeconfig,在本機電腦上執行
kubectl指令。
如要取得 Connect 閘道的 kubeconfig,請在本機電腦執行下列指令:
取得可透過連結閘道存取叢集的 kubeconfig 項目。
gcloud container fleet memberships get-credentials USER_CLUSTER_NAME \ --project=PROJECT_ID
輸出結果會與下列內容相似:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_USER_CLUSTER_NAME" has been generated and set as the current context.現在可以透過 Connect 閘道執行
kubectl指令:kubectl get nodes輸出結果會與下列內容相似:
NAME STATUS ROLES AGE VERSION nuc-3 Ready control-plane 4m32s v1.26.2-gke.1001 nuc-4 Ready worker 2m2s v1.26.2-gke.1001許多
kubectl指令都需要管理員叢集的 kubeconfig。您需要在管理員工作站上執行這些指令。