連線並檢查工作負載叢集

部署工作負載叢集後,您可以使用 tanzu cluster listtanzu cluster kubeconfig get 命令,來取得執行中叢集及其認證的清單。然後,您可以使用 kubectl 來連線到叢集,並開始使用叢集。

列出已部署的工作負載叢集

若要列出工作負載叢集和管理它們的管理叢集,請使用 tanzu cluster list 命令。

  • 若要列出正在管理叢集的 default 命名空間中執行的所有工作負載叢集,請執行 tanzu cluster list 命令:

    tanzu cluster list
    

    輸出會列出預設命名空間中的所有工作負載叢集,包括:叢集名稱、其目前的狀態、實際和所要求的控制平面和工作節點數目,以及叢集正在執行的 Kubernetes 版本。

    叢集可能處於以下狀態:

    • creating:正在建立控制平面。
    • createStalled:控制平面建立程序已停止。
    • deleting:正在刪除叢集。
    • failed:控制平面建立失敗。
    • running:控制平面已完全初始化。
    • updating:叢集正在推出更新,或正在調整節點。
    • updateFailed:叢集更新程序失敗。
    • updateStalled:叢集更新程序已停止。
    • 無狀態:尚未開始建立叢集。

    如果叢集處於已停止狀態,請檢查是否經由網路連線至外部登錄、確定目標平台上有足夠的資源來完成作業,以及確定 DHCP 正確發出 IPv4 位址。

  • 若要列出您有權存取的所有命名空間中的叢集,請指定 -A--all-namespaces 選項。

    tanzu cluster list --all-namespaces
    
  • 若要僅列出在給定命名空間中執行的叢集,請指定 --namespace 選項。

    tanzu cluster list --namespace=NAMESPACE
    

    其中,NAMESPACE 是叢集執行所在的命名空間。

    在 vSphere with Tanzu 上,DevOps 工程師在執行 tanzu cluster list 時必須包含 --namespace 值,以指定他們可以存取的命名空間。請參閱 VMware vSphere 說明文件中的 vSphere with Tanzu 使用者角色和工作流程

  • 如果您已登入獨立管理叢集,若要將目前的獨立管理叢集包含在 tanzu cluster list 的輸出中,請指定 --include-management-cluster -A 選項。

    tanzu cluster list --include-management-cluster -A
    

    您可以看到管理叢集正在 tkg-system 命名空間中執行,並且具備 management 角色。

    NAME                   NAMESPACE   STATUS         CONTROLPLANE  WORKERS  KUBERNETES        ROLES       PLAN  TKR
    workload-cluster-1     default     running        1/1           1/1      v1.27.5+vmware.1 <none>      dev   v1.27.5---vmware.2-tkg.1
    workload-cluster-2     default     running        1/1           1/1      v1.27.5+vmware.1 <none>      dev   v1.27.5---vmware.2-tkg.1
    mgmt-cluster           tkg-system  running        1/1           1/1      v1.27.5+vmware.1 management  dev   v1.27.5---vmware.2-tkg.1
    
  • 若要查看所有管理叢集,並將 Tanzu CLI 的內容變更為不同的管理叢集,請執行 tanzu context use 命令。如需詳細資訊,請參閱列出管理叢集和變更內容

將工作負載叢集詳細資料匯出至檔案

您可以採用 JSON 或 YAML 格式,來匯出有權存取之叢集的詳細資料。您可以將 JSON 或 YAML 儲存至檔案,以便在指令碼中使用它在叢集上執行大量作業。

匯出為 JSON 檔案

若要將叢集詳細資料匯出成 JSON,請執行帶有 --output 選項的 tanzu cluster list,且其中指定了 json

tanzu cluster list --output json > clusters.json

輸出會以 JSON 形式來顯示叢集資訊:

[
  {
    "name": "workload-cluster-1",
    "namespace": "default",
    "status": "running",
    "plan": "dev",
    "controlplane": "1/1",
    "workers": "1/1",
    "kubernetes": "v1.27.5+vmware.1",
    "roles": [],
    "tkr": "v1.27.5---vmware.2-tkg.1",
    "labels": {
      "cluster.x-k8s.io/cluster-name": "workload-cluster-1",
      "run.tanzu.vmware.com/tkr": "v1.27.5---vmware.2-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-1",
      "topology.cluster.x-k8s.io/owned": ""
    }
  },
  {
    "name": "workload-cluster-2",
    "namespace": "default",
    "status": "running",
    "plan": "dev",
    "controlplane": "1/1",
    "workers": "1/1",
    "kubernetes": "v1.27.5+vmware.1",
    "roles": [],
    "tkr": "v1.27.5---vmware.2-tkg.1",
    "labels": {
      "tanzuKubernetesRelease": "v1.27.5---vmware.2-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
    }
  }
]

匯出為 YAML 檔案

若要將叢集詳細資料匯出成 YAML,請執行帶有 --output 選項的 tanzu cluster list,且其中指定 yaml

tanzu cluster list --output yaml > clusters.yaml

輸出會以 YAML 形式來顯示叢集資訊:

- name: workload-cluster-1
  namespace: default
  status: running
  plan: dev
  controlplane: 1/1
  workers: 1/1
  kubernetes: v1.27.5+vmware.1
  roles: []
  tkr: v1.27.5---vmware.2-tkg.1
  labels:
    cluster.x-k8s.io/cluster-name: workload-cluster-1
    run.tanzu.vmware.com/tkr: v1.27.5---vmware.2-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
    topology.cluster.x-k8s.io/owned: ""
- name: workload-cluster-1
  namespace: default
  status: running
  plan: dev
  controlplane: 1/1
  workers: 1/1
  kubernetes: v1.27.5+vmware.1
  roles: []
  tkr: v1.27.5---vmware.2-tkg.1
  labels:
    tanzuKubernetesRelease: v1.27.5---vmware.2-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1

匯出多個叢集的詳細資料

如需如何儲存多個管理叢集的詳細資料 (包括其內容以及 kubeconfig 檔案) 的相關資訊,請參閱管理您的管理叢集

擷取工作負載叢集 kubeconfig

建立工作負載叢集後,您可以執行 tanzu cluster kubeconfig get 命令,並在其中指定叢集的名稱,來取得其內容和 kubeconfig 設定。依預設,該命令會將叢集的 kubeconfig 設定新增到您目前的 kubeconfig 檔案中。

tanzu cluster kubeconfig get my-cluster
重要

如果未在叢集上設定身分識別管理,則必須指定 --admin 選項。

若要將 kubeconfig 匯出到檔案,請指定 --export-file 選項。

tanzu cluster kubeconfig get my-cluster --export-file my-cluster-kubeconfig
重要

若是刪除 kubeconfig 檔案,會使您無法存取從 Tanzu CLI 部署的所有叢集。

如果在叢集上設定了身分識別管理和角色型存取控制 (RBAC),則具有標準、非管理員 kubeconfig 認證的使用者,將需要使用外部身分識別提供者來進行驗證,才能登入叢集。

管理員 kubeconfig

若要產生具有內嵌式認證的獨立管理員 kubeconfig 檔案,請新增 --admin 選項。此 kubeconfig 檔案授與其使用者對叢集資源的完整存取權,並可讓他們在不登入身分識別提供者的情況下存取叢集。

tanzu cluster kubeconfig get my-cluster --admin

您應會看到以下輸出:

You can now access the cluster by running 'kubectl config use-context my-cluster-admin@my-cluster'

標準 kubeconfig

如果在目標叢集上設定了身分識別管理,您可以產生一個標準的非管理員 kubeconfig,這會要求使用者使用外部身分識別提供者進行驗證,且會根據指派的角色,授與他們對叢集資源的存取權。在這種情況下,請執行不帶 --admin 選項的 tanzu cluster kubeconfig get

tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE

其中,CLUSTER-NAMENAMESPACE 是您的目標叢集和命名空間。

您應會看到以下輸出:

You can now access the cluster by running 'kubectl config use-context ...'

若要將組態資訊儲存在獨立的 kubeconfig 檔案中,例如,若要將其散佈給開發人員,請指定 --export-file 選項。此 kubeconfig 檔案會要求使用者使用外部身分識別提供者來進行驗證,並根據指派的角色,授與對叢集資源的存取權。

tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE --export-file PATH-TO-FILE
重要

依預設,除非您指定 --export-file 選項,以將叢集的 kubeconfig 儲存至特定檔案,否則,會將您從 Tanzu CLI 部署的所有叢集的認證新增至共用的 kubeconfig 檔案中。如果您刪除共用的 kubeconfig 檔案,則所有叢集都會變成無法使用。

檢查所部署的叢集

將認證新增至 kubeconfig 後,您可以使用 kubectl 來連線至叢集。

  1. 取得可用內容:

    kubectl config get-contexts
    
  2. kubectl 指向您的叢集。例如:

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. 使用 kubectl 來查看叢集中的節點狀態:

    kubectl get nodes
    

    例如,如果您使用 dev 計劃來部署 my-dev-cluster,則會看到以下輸出。

    NAME                                       STATUS   ROLES           AGE    VERSION
    my-dev-cluster-control-plane-9qx88-p88cp   Ready    control-plane   2d2h   v1.27.5+vmware.1
    my-dev-cluster-md-0-infra-n62lq-hq4k9      Ready    <none>          2d2h   v1.27.5+vmware.1
    

    依預設,會在工作負載叢集中啟用「使用 Antrea 進行網路連線」,因此所有叢集都處於 Ready 狀態,而無需進行任何其他設定。

  4. 使用 kubectl 來查看叢集中正在執行的網繭狀態:

    kubectl get pods -A
    

    以下範例顯示在 Azure 上正在 my-dev-cluster 叢集中的 kube-system 命名空間中執行的網繭。

    NAMESPACE              NAME                                                             READY   STATUS    RESTARTS        AGE
    kube-system            antrea-agent-ck7lv                                               2/2     Running   4 (3h7m ago)    2d2h
    kube-system            antrea-agent-fpq79                                               2/2     Running   4 (3h7m ago)    2d2h
    kube-system            antrea-controller-66d7978fd7-nkzgb                               1/1     Running   4 (3h7m ago)    2d2h
    kube-system            coredns-77d74f6759-b68ht                                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            coredns-77d74f6759-qfp8b                                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            csi-azuredisk-controller-5957dc576c-42tsd                        6/6     Running   12 (3h7m ago)   2d2h
    kube-system            csi-azuredisk-node-5hmkw                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azuredisk-node-k7fr7                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azurefile-controller-5d48b98756-rmrxp                        5/5     Running   10 (3h7m ago)   2d2h
    kube-system            csi-azurefile-node-brnf2                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azurefile-node-vqghv                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-snapshot-controller-7ffbf75bd9-5m64r                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            etcd-my-dev-cluster-control-plane-9qx88-p88cp                    1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-apiserver-my-dev-cluster-control-plane-9qx88-p88cp          1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-controller-manager-my-dev-cluster-control-plane-9qx88-p88cp 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-proxy-hqhfx                                                 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-proxy-s6wwf                                                 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-scheduler-my-dev-cluster-control-plane-9qx88-p88cp          1/1     Running   2 (3h7m ago)    2d2h
    kube-system            metrics-server-545546cdfd-qhbxc                                  1/1     Running   2 (3h7m ago)    2d2h
    secretgen-controller   secretgen-controller-7b7cbc6d9d-p6qww                            1/1     Running   2 (3h7m ago)    2d2h
    tkg-system             kapp-controller-868f9469c5-j58pn                                 2/2     Running   5 (3h7m ago)    2d2h
    tkg-system             tanzu-capabilities-controller-manager-b46dcfc7f-7dzd9            1/1     Running   4 (3h7m ago)    2d2h
    

以標準使用者身分存取工作負載叢集 (獨立管理叢集)

本節說明標準的非管理員使用者如何登入由獨立管理叢集部署的工作負載叢集。此工作流程與建立叢集的管理叢集的叢集管理員存取工作負載叢集的方式不同。

必要條件

在執行此工作之前,請確保:

  • 系統上正在執行 Docker 應用程式。如果系統執行 Microsoft Windows,請將 Docker 模式設定為 Linux,並為 Linux 設定 Windows 子系統。
    • 在 Linux 機器上,使用 apt 而不是 snap 從 CLI 安裝 Docker。
  • 已從叢集管理員取得:

存取工作負載叢集

  1. 在 Tanzu CLI 上,執行以下命令:

    tanzu context create --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
    

    其中:

    • 依預設,PORT6443。如果叢集管理員在部署叢集時設定了 CLUSTER_API_SERVER_PORTVSPHERE_CONTROL_PLANE_ENDPOINT_PORT,請使用在變數中定義的連接埠號碼。
    • SERVER-NAME 是管理叢集伺服器的名稱。

    如果在管理叢集上設定了身分識別管理,則會在預設瀏覽器中開啟身分識別管理提供者 (LDAP 或 OIDC) 的登入畫面。

    LDAPS:

    LDAPS 登入頁面

    OIDC:

    OIDC 登入頁面

  2. 登入身分識別管理提供者。

  3. 執行以下命令以切換到工作負載叢集:

    kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
    

    其中,CONTEXTMY-KUBECONFIG 是從叢集管理員取得的叢集內容和 kubeconfig 檔案。

在後續登入 Tanzu CLI 時,您將看到一個選項,用於從輸入 tanzu context use 後快顯的清單中選擇 Tanzu Kubernetes Grid 環境。

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