部署工作負載叢集後,您可以使用 tanzu cluster list
和 tanzu 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.24.10+vmware.1 <none> dev v1.24.10---vmware.1-tkg.1
workload-cluster-2 default running 1/1 1/1 v1.24.10+vmware.1 <none> dev v1.24.10---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.24.10+vmware.1 management dev v1.24.10---vmware.1-tkg.1
若要查看所有管理叢集,並將 Tanzu CLI 的內容變更為不同的管理叢集,請執行 tanzu login
命令。如需詳細資訊,請參閱列出管理叢集和變更內容。
您可以採用 JSON 或 YAML 格式,來匯出有權存取之叢集的詳細資料。您可以將 JSON 或 YAML 儲存至檔案,以便在指令碼中使用它在叢集上執行大量作業。
若要將叢集詳細資料匯出成 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.24.10+vmware.1",
"roles": [],
"tkr": "v1.24.10---vmware.1-tkg.1",
"labels": {
"cluster.x-k8s.io/cluster-name": "workload-cluster-1",
"run.tanzu.vmware.com/tkr": "v1.24.10---vmware.1-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.24.10+vmware.1",
"roles": [],
"tkr": "v1.24.10---vmware.1-tkg.1",
"labels": {
"tanzuKubernetesRelease": "v1.24.10---vmware.1-tkg.1",
"tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
}
}
]
若要將叢集詳細資料匯出成 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.24.10+vmware.1
roles: []
tkr: v1.24.10---vmware.1-tkg.1
labels:
cluster.x-k8s.io/cluster-name: workload-cluster-1
run.tanzu.vmware.com/tkr: v1.24.10---vmware.1-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.24.10+vmware.1
roles: []
tkr: v1.24.10---vmware.1-tkg.1
labels:
tanzuKubernetesRelease: v1.24.10---vmware.1-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-NAME
和 NAMESPACE
是您的目標叢集和命名空間。
您應會看到以下輸出:
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
來連線至叢集。
取得可用內容:
kubectl config get-contexts
將 kubectl
指向您的叢集。例如:
kubectl config use-context my-cluster-admin@my-cluster
使用 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.24.10+vmware.1
my-dev-cluster-md-0-infra-n62lq-hq4k9 Ready <none> 2d2h v1.24.10+vmware.1
依預設,會在工作負載叢集中啟用「使用 Antrea 進行網路連線」,因此所有叢集都處於 Ready
狀態,而無需進行任何其他設定。
使用 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
本節說明標準的非管理員使用者如何登入由獨立管理叢集部署的工作負載叢集。此工作流程與建立叢集的管理叢集的叢集管理員存取工作負載叢集的方式不同。
在執行此工作之前,請確保:
apt
而不是 snap
從 CLI 安裝 Docker。kubeconfig
檔案,如擷取工作負載叢集 kubeconfig
所述在 Tanzu CLI 上,執行以下命令:
tanzu login --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
其中:
PORT
為 6443
。如果叢集管理員在部署叢集時設定了 CLUSTER_API_SERVER_PORT
或 VSPHERE_CONTROL_PLANE_ENDPOINT_PORT
,請使用在變數中定義的連接埠號碼。SERVER-NAME
是管理叢集伺服器的名稱。如果在管理叢集上設定了身分識別管理,則會在預設瀏覽器中開啟身分識別管理提供者 (LDAP 或 OIDC) 的登入畫面。
LDAPS:
OIDC:
登入身分識別管理提供者。
執行以下命令以切換到工作負載叢集:
kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
其中,CONTEXT
和 MY-KUBECONFIG
是從叢集管理員取得的叢集內容和 kubeconfig
檔案。
在後續登入 Tanzu CLI 時,您將看到一個選項,用於從輸入 tanzu login
後快顯的清單中選擇 Tanzu Kubernetes Grid 環境。