管理您的管理叢集

本主題說明如何從同一啟動機器來管理多個管理叢集,包括由 Tanzu Kubernetes Grid 部署到 vSphere、Azure 或 Amazon Web Services (AWS) 的管理叢集,以及指定為 Tanzu Kubernetes Grid 管理叢集的 vSphere with Tanzu 主管。

重要

Tanzu Kubernetes Grid v2.4.x 是支援在 AWS 和 Azure 上管理獨立 TKG 管理叢集的最後一個 TKG 版本。Tanzu Kubernetes Grid v2.5 中將移除在 AWS 和 Azure 上管理獨立 TKG 管理叢集的功能。

從現在開始,VMware 建議您使用 Tanzu Mission Control 建立原生 AWS EKS 和 Azure AKS 叢集。但是,在 AWS 和 Azure 上管理現有獨立 TKG 管理叢集仍完全支援 TKG v2.4.x (包括 TKG v2.4.x) 的所有 TKG 版本。

有關詳細資訊,請參見《VMware Tanzu Kubernetes Grid v2.4 發行說明》中的〈棄用 AWS 和 Azure 上的 TKG 管理和工作負載叢集〉

列出管理叢集和變更內容

若要列出可用的管理叢集,並查看您目前是登入哪個管理叢集,請在啟動機器上執行 tanzu context use

tanzu context use
  • 若要變更您目前的登入內容,請使用向上和向下箭頭按鍵,來反白顯示新的管理叢集,然後按 Enter
  • 若要保留您目前的內容,請按 Enter,而不變更反白顯示。
附註

要登入相關內容,必須使用 tanzu context create 命令建立內容。

例如,如果您有兩個管理叢集 my-vsphere-mgmt-clustermy-aws-mgmt-cluster,且您目前已登入 my-vsphere-mgmt-cluster

$ tanzu context use
? Select a server  [Use arrows to move, type to filter]
> my-vsphere-mgmt-cluster  ()
 my-aws-mgmt-cluster      ()
 + new server

管理叢集 kubectlkubeconfig

當您執行 tanzu context use 來變更 Tanzu CLI 內容時,Tanzu Kubernetes Grid 不會自動變更 kubectl 內容。此外,在您建立工作負載叢集時,Tanzu Kubernetes Grid 不會將 kubectl 內容設定為該叢集。若要變更 kubectl 內容,請使用 kubectl config use-context 命令。

依預設,Tanzu Kubernetes Grid 會將叢集內容資訊儲存在您啟動機器上的下列檔案中:

  • 管理叢集內容~/.kube-tkg/config
  • 工作負載叢集內容~/.kube/config

查看管理叢集詳細資料

若要查看管理叢集的詳細資料,請執行以下動作:

  1. 執行 tanzu context use 以登入管理叢集,如列出管理叢集和變更內容中所述。

    tanzu context use
    
  2. 執行 tanzu mc get

    tanzu mc get
    
    NAME         NAMESPACE   STATUS   CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  TKR
    mc-test-cli  tkg-system  running  3/3           3/3      v1.27.5+vmware.1  management  prod  v1.27.5---vmware.2-tkg.1
    
    
    Details:
    
    NAME                                                         READY  SEVERITY  REASON  SINCE  MESSAGE
    /mc-test-cli                                                 True                     2d1h
    ├─ClusterInfrastructure - VSphereCluster/mc-test-cli-jjtpf   True                     2d1h
    ├─ControlPlane - KubeadmControlPlane/mc-test-cli-mffw9       True                     2d1h
    │ ├─Machine/mc-test-cli-mffw9-5zcbj                          True                     2d1h
    │ ├─Machine/mc-test-cli-mffw9-fs6zh                          True                     2d1h
    │ └─Machine/mc-test-cli-mffw9-jlwnm                          True                     2d1h
    └─Workers
      ├─MachineDeployment/mc-test-cli-md-0-tnz59                 True                     15h
      │ └─Machine/mc-test-cli-md-0-tnz59-64bdc75d94-gtg54        True                     2d1h
      ├─MachineDeployment/mc-test-cli-md-1-2d26b                 True                     15h
      │ └─Machine/mc-test-cli-md-1-2d26b-776885b84-6hzkj         True                     2d1h
      └─MachineDeployment/mc-test-cli-md-2-fs824                 True                     15h
        └─Machine/mc-test-cli-md-2-fs824-7bfd7b9c7b-c7n95        True                     2d1h
    
    
    Providers:
    
      NAMESPACE                          NAME                            TYPE                    PROVIDERNAME     VERSION  WATCHNAMESPACE
      caip-in-cluster-system             infrastructure-ipam-in-cluster  InfrastructureProvider  ipam-in-cluster  v0.1.0
      capi-kubeadm-bootstrap-system      bootstrap-kubeadm               BootstrapProvider       kubeadm          v1.2.8
      capi-kubeadm-control-plane-system  control-plane-kubeadm           ControlPlaneProvider    kubeadm          v1.2.8
      capi-system                        cluster-api                     CoreProvider            cluster-api      v1.2.8
      capv-system                        infrastructure-vsphere          InfrastructureProvider  vsphere          v1.5.1
    

若要查看更多選項,請執行 tanzu mc get --help。Tanzu CLI 別名 mcmanagement-cluster 的縮寫。

將現有管理叢集新增到 Tanzu CLI

Tanzu CLI 允許您登入其他人所建立的管理叢集。若要登入,您可以使用本機 kubeconfig 詳細資料或伺服器端點選項。

若要使用本機 kubeconfig 來登入現有管理叢集,請執行以下動作:

  1. 執行 tanzu context use,使用向下箭頭按鍵來反白顯示 + 新伺服器 (+ new server),然後按 Enter

    tanzu context use
    
    ? Select a server + new server
    
  2. 當出現提示時,選取本機 kubeconfig (Local kubeconfig) 作為您的登入類型,然後輸入本機 kubeconfig 檔案的路徑、內容和伺服器名稱。例如:

    ✔tanzu context use
    ? Select a server + new server
    ? Select login type Local kubeconfig
    ? Enter path to kubeconfig (if any) /Users/exampleuser/examples/kubeconfig
    ? Enter kube context to use new-mgmt-cluster-admin@new-mgmt-cluster
    ? Give the server a name new-mgmt-cluster
      successfully logged in to management cluster using the kubeconfig new-mgmt-cluster
    

若要使用伺服器端點 (Server endpoint) 選項來登入現有管理叢集,請執行以下動作:

  1. 執行 tanzu context use,使用向下箭頭按鍵來反白顯示 + 新伺服器 (+ new server),然後按 Enter

    tanzu context use
    ? Select a server + new server
    
  2. 當出現提示時,選取伺服器端點 (Server endpoint) 作為登入類型。

  3. 輸入伺服器端點 (Enter Server endpoint) 欄位中,輸入管理叢集的 Kubernetes API 伺服器 IP 位址。
  4. 為伺服器命名 (Give the server a name) 欄位中,輸入伺服器的名稱,然後按 Enter
  5. 如果在管理叢集上啟用了身分識別管理,請在預設瀏覽器中所開啟的 [Okta 登入 (Okta login)] 頁面,輸入您的 Okta 認證。您已登入管理叢集。
  6. 確認在 Tanzu CLI 上會顯示以下輸出:
successfully logged in to management cluster by using the kubeconfig <server name>

從 Tanzu CLI 組態中刪除管理叢集

有可能您將其他人建立的管理叢集新增到您的 Tanzu CLI 執行個體,而在某些時候,您不再需要該叢集。同樣地,如果您部署了一個管理叢集,並藉由其他方式 (而非執行 tanzu mc delete),將該管理叢集從目標平台中刪除,該管理叢集仍會繼續出現在當您執行 tanzu context use 時 CLI 所追蹤的管理叢集清單中。在這些情況下,您可以將該管理叢集從 Tanzu CLI 所追蹤的管理叢集清單中移除。

  1. 執行 tanzu context list,查看 Tanzu CLI 所追蹤的管理叢集清單。

    tanzu context list
    

    您應該會看到您自己所部署或新增到 Tanzu CLI 的所有管理叢集、其 kubeconfig 檔案的位置,以及其內容。

  2. 執行 tanzu context delete 命令,以移除管理叢集。

    tanzu context delete my-vsphere-mc
    

執行 tanzu context delete 命令時,會從 ~/.config/tanzu/config.yaml~/.kube-tkg/config.yaml 檔案中移除叢集詳細資料。如果管理叢集本身仍然存在,則不會將其刪除。若要刪除管理叢集,而不是僅將其從 Tanzu CLI 組態中移除,請參閱刪除管理叢集

更新 Tanzu CLI 組態中的管理叢集憑證

在啟動機器上,Tanzu CLI 會使用儲存在本機的憑證來驗證管理叢集。如果憑證到期,當執行 tanzu CLI 命令時,您會看到「已失敗」錯誤訊息。

因此,當憑證即將到期時,請遵循以下步驟來更新憑證:

  1. 使用 tanzu mc get 取得管理叢集的名稱。

    tanzu mc get
    
  2. 取得叢集組態資料:

    kubectl -n tkg-system get secrets CLUSTER-NAME-kubeconfig -o 'go-template={{ index .data "value"}}' | base64 -d > mc_kubeconfig.yaml
    

    其中,CLUSTER-NAME 是管理叢集的名稱。例如:

    apiVersion: v1
    clusters:
    - cluster:
      certificate-authority-data: LS0tLS1CRUdJTiBD<redacted>
      server: https://192.168.100.90:6443
      name: tkg-mgmt
    contexts:
    - context:
      cluster: tkg-mgmt
      user: tkg-mgmt-admin
    name: tkg-mgmt-admin@tkg-mgmt
    current-context: tkg-mgmt-admin@tkg-mgmt
    kind: Config
    preferences: {}
    users:
    - name: tkg-mgmt-admin
      user:
      client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZ<redacted>
      client-key-data: LS0tLS1CRUdJTiBSU<redacted>`
    
  3. 將現有的管理叢集項目從 Tanzu CLI 目前正在追蹤的管理叢集清單中移除:

    tanzu context delete CLUSTER-NAME
    
  4. 使用 tanzu context create 命令,新增一個含有已更新的 kubeconfig 的管理叢集項目:

    tanzu context create --kubeconfig mc_kubeconfig.yaml --name CLUSTER-NAME --context CLUSTER-NAME-admin@CLUSTER-NAME
    

調整管理叢集

在您部署管理叢集後,可以增加或減少其包含的節點虛擬機器數量,來垂直擴充或縮減管理叢集。若要調整管理叢集,請使用含有下列一或兩個選項的 tanzu cluster scale 命令:

  • --controlplane-machine-count 可變更管理叢集控制平面節點數目。
  • --worker-machine-count 可變更管理叢集工作節點數目。

由於管理叢集是在 tkg-system 命名空間中執行,而不是在 default 命名空間中執行,因此當您調整管理叢集時,還必須指定 --namespace 選項。

  1. 執行 tanzu cluster scale 之前,請先執行 tanzu context use,以確保要調整的管理叢集是 Tanzu CLI 的目前內容。
  2. 若要將其中原先已部署 3 個控制平面節點和 5 個工作節點的生產管理叢集,分別調整為 5 個和 10 個節點,請執行以下命令:

    tanzu cluster scale MANAGEMENT-CLUSTER-NAME --controlplane-machine-count 5 --worker-machine-count 10 --namespace tkg-system
    

如果您最初部署了一個開發管理叢集,且其中具有一個控制平面節點,而您將其垂直擴充成 3 個控制平面節點,Tanzu Kubernetes Grid 會自動在控制平面上啟用堆疊 HA。

重要

當 Tanzu Kubernetes Grid 作業正在執行期間,請勿變更內容或編輯 .kube-tkg/config 檔案。

更新管理叢集認證 (vSphere)

若要更新管理叢集使用的 vSphere 認證,以及選擇性地更新其管理的所有工作負載叢集,請參閱〈使用 Tanzu CLI 來建立和管理 TKG 2.4 工作負載叢集〉中的更新叢集認證

管理 CEIP 參與

當您使用安裝程式介面或 CLI 來部署管理叢集時,除非您指定了退出選項,否則依預設,將啟用參與 VMware 客戶經驗改進計劃 (CEIP)。如果您仍然選擇加入該計劃,管理叢集會定期傳送有關您如何使用 Tanzu Kubernetes Grid 來返回 VMware 的相關資訊,以供我們可以在未來版本中有所改進。

如需 CEIP 的詳細資訊,請參閱管理 CEIP 參與

如果您在部署管理叢集時選擇退出 CEIP,但之後又希望加入,或者如果您選擇加入後又希望退出,請參閱〈管理 CEIP 參與〉中的選擇加入或退出 VMware CEIP,以在部署後變更 CEIP 參與設定

在管理叢集中建立命名空間

為了協助您組織及管理開發專案,您可以選擇性地將管理叢集劃分為 Kubernetes 命名空間。之後,您可以使用 Tanzu CLI,將工作負載叢集部署到管理叢集中的特定命名空間。例如,您可能希望在專用命名空間中,建立不同類型的叢集。如果您不建立其他命名空間,Tanzu Kubernetes Grid 會將所有工作負載叢集建立在 default 命名空間中。如需 Kubernetes 命名空間的相關資訊,請參閱 Kubernetes 說明文件

  1. 顯示目前內容,以確定 kubectl 已連線到正確的管理叢集內容。

    kubectl config current-context
    
  2. 列出管理叢集中目前存在的命名空間。

    kubectl get namespaces
    

    您將看到管理叢集已包含它所提供的不同服務的多個命名空間:

    capi-kubeadm-bootstrap-system       Active   4m7s
    capi-kubeadm-control-plane-system   Active   4m5s
    capi-system                         Active   4m11s
    capi-webhook-system                 Active   4m13s
    capv-system                         Active   3m59s
    cert-manager                        Active   6m56s
    default                             Active   7m11s
    kube-node-lease                     Active   7m12s
    kube-public                         Active   7m12s
    kube-system                         Active   7m12s
    tkg-system                          Active   3m57s
    
  3. 使用 kubectl create -f 來建立新的命名空間,例如:用於開發和生產。

    這些範例使用 Kubernetes 說明文件中的 productiondevelopment 命名空間。

    kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
    
    kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
    
  4. 執行 kubectl get namespaces --show-labels,以查看新的命名空間。

    development                         Active   22m   name=development
    production                          Active   22m   name=production
    

刪除管理叢集中的命名空間

在刪除管理叢集中的工作負載叢集的命名空間之前,您需要刪除工作負載叢集本身。您無法透過刪除工作負載叢集的管理叢集命名空間來刪除工作負載叢集。

要刪除管理叢集中工作負載叢集的命名空間,請執行以下操作:

  1. kubectl 的內容設定為管理叢集:

    kubectl config use-context MY-MGMT-CLUSTER@MY-MGMT-CLUSTER
    

    其中,MY-MGMT-CLUSTER 是管理叢集的名稱。

  2. 列出要刪除的命名空間中執行的叢集:

    tanzu cluster list -n NAMESPACE
    
  3. 按照刪除工作負載叢集的程序刪除磁碟區和服務,根據需要移轉工作負載,以及刪除命名空間中的叢集。

  4. 使用 kubectl 刪除命名空間:

    kubectl delete namespace NAMESPACE
    

刪除管理叢集

若要刪除管理叢集,請執行 tanzu mc delete 命令。

在您執行 tanzu mc delete 時,Tanzu Kubernetes Grid 會在啟動機器上建立一個暫存的 kind 清理叢集,以管理刪除程序。刪除程序完成後,會移除 kind 叢集。

  1. AWS:確保 TKG 使用的 AWS 認證仍然有效。它們可以是認證設定檔或本地、靜態環境變數,如設定 AWS 帳戶認證中所述。

    • 無法使用 AWS 執行個體設定檔認證來刪除管理叢集。
    • 如果認證已過期,管理叢集節點可能會保留,如無法刪除 AWS 上的管理叢集中所述。
  2. 若要查看所有管理叢集,請執行 tanzu context use,如列出管理叢集和變更內容中所述。

  3. 若有您不再需要的管理叢集,請執行 tanzu mc delete

    您必須登入您想刪除的管理叢集。

    tanzu mc delete my-mgmt-cluster
    

    若要在執行 tanzu mc delete 時跳過 yes/no 驗證步驟,請指定 --yes 選項。

    tanzu mc delete my-mgmt-cluster --yes
    
  4. 若有工作負載叢集正在管理叢集中執行,則不會執行刪除作業。

    在這種情況下,您可以透過兩種方式來刪除管理叢集:

    • 執行 tanzu cluster delete,刪除所有正在執行的叢集,然後再次執行 tanzu mc delete
    • 執行含有 --force 選項的 tanzu mc delete
    tanzu mc delete my-mgmt-cluster --force
    
重要

當 Tanzu Kubernetes Grid 作業正在執行期間,請勿變更內容或編輯 .kube-tkg/config 檔案。

後續步驟

您可以使用 Tanzu Kubernetes Grid,開始將工作負載叢集部署到不同的 Tanzu Kubernetes Grid 執行個體。如需相關資訊,請參閱〈使用 Tanzu CLI 來建立和管理 TKG 2.4 工作負載叢集〉中的建立工作負載叢集

如果您的 vSphere 8 具有主管,則可以使用 Tanzu CLI 來部署 TKG 2.x 叢集。如需詳細資訊,請參閱使用 Tanzu CLI 來建立和管理 TKG 2.4 工作負載叢集

check-circle-line exclamation-circle-line close-line
Scroll to top icon