워크로드 클러스터를 배포한 후에는 tanzu cluster list
및 tanzu cluster kubeconfig get
명령을 사용하여 실행 중인 클러스터 및 해당 자격 증명의 목록을 가져옵니다. 그런 다음 kubectl
을 사용하여 클러스터에 연결하고 클러스터 작업을 시작할 수 있습니다.
워크로드 클러스터 및 워크로드 클러스터를 관리하는 관리 클러스터를 나열하려면 tanzu cluster list
명령을 사용합니다.
관리 클러스터의 default
네임스페이스에서 실행 중인 모든 워크로드 클러스터를 나열하려면 tanzu cluster list
명령을 실행합니다.
tanzu cluster list
출력에는 클러스터 이름, 현재 상태, 실제 및 요청된 제어부 및 Worker 노드의 수, 클러스터가 실행 중인 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.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg.1
workload-cluster-2 default running 1/1 1/1 v1.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.25.7+vmware.1 management dev v1.25.7---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.25.7+vmware.1",
"roles": [],
"tkr": "v1.25.7---vmware.1-tkg.1",
"labels": {
"cluster.x-k8s.io/cluster-name": "workload-cluster-1",
"run.tanzu.vmware.com/tkr": "v1.25.7---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.25.7+vmware.1",
"roles": [],
"tkr": "v1.25.7---vmware.1-tkg.1",
"labels": {
"tanzuKubernetesRelease": "v1.25.7---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.25.7+vmware.1
roles: []
tkr: v1.25.7---vmware.1-tkg.1
labels:
cluster.x-k8s.io/cluster-name: workload-cluster-1
run.tanzu.vmware.com/tkr: v1.25.7---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.25.7+vmware.1
roles: []
tkr: v1.25.7---vmware.1-tkg.1
labels:
tanzuKubernetesRelease: v1.25.7---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
중요클러스터에 ID 관리가 구성되지 않은 경우
--admin
옵션을 지정해야 합니다.
kubeconfig
파일로 내보내려면 --export-file
옵션을 지정합니다.
tanzu cluster kubeconfig get my-cluster --export-file my-cluster-kubeconfig
중요
kubeconfig
파일을 삭제하면 Tanzu CLI에서 배포한 모든 클러스터에 액세스할 수 없게 됩니다.
클러스터에 ID 관리 및 RBAC(역할 기반 액세스 제어)가 구성된 경우 표준 관리자가 아닌 kubeconfig
자격 증명을 가진 사용자는 클러스터에 로그인하기 위해 외부 ID 제공자로 인증해야 합니다.
kubeconfig
내장형 자격 증명으로 독립형 관리자 kubeconfig
파일을 생성하려면 --admin
옵션을 추가합니다. 이 kubeconfig
파일은 사용자에게 클러스터의 리소스에 대한 전체 액세스 권한을 부여하고 ID 제공자에 로그인하지 않고 클러스터에 액세스할 수 있도록 합니다.
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
대상 클러스터에 ID 관리가 구성된 경우 사용자가 외부 ID 제공자를 사용하여 인증을 받아야 하고 할당된 역할을 기준으로 클러스터 리소스에 대한 액세스 권한을 부여하도록 요구하는 비-관리자 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
파일을 사용하려면 사용자가 외부 ID 제공자를 사용하여 인증해야 하며, 할당된 역할을 기준으로 클러스터 리소스에 대한 액세스 권한을 부여합니다.
tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE --export-file PATH-TO-FILE
중요기본적으로 클러스터의
kubeconfig
를 특정 파일에 저장하는--export-file
옵션을 지정하지 않으면 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.25.7+vmware.1
my-dev-cluster-md-0-infra-n62lq-hq4k9 Ready <none> 2d2h v1.25.7+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
이 섹션에서는 표준 비-관리자 사용자가 독립형 관리 클러스터에서 배포한 워크로드 클러스터에 로그인하는 방법을 설명합니다. 이 워크플로는 클러스터의 관리 클러스터를 생성한 클러스터 관리자가 워크로드 클러스터에 액세스할 수 있는 방식과 다릅니다.
이 작업을 수행하기 전에 다음을 확인하십시오.
snap
대신 apt
를 사용하여 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
은 관리 클러스터 서버의 이름입니다.관리 클러스터에 ID 관리가 구성된 경우 ID 관리 제공자(LDAP 또는 OIDC)의 로그인 화면이 기본 브라우저에서 열립니다.
LDAPS:
OIDC:
ID 관리 제공자에 로그인합니다.
다음 명령을 실행하여 워크로드 클러스터로 전환합니다.
kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
여기서 CONTEXT
와 MY-KUBECONFIG
는 클러스터 관리자로부터 가져온 클러스터 컨텍스트와 kubeconfig
파일입니다.
Tanzu CLI의 후속 로그인에서는 tanzu login
을 입력한 후 팝업되는 목록에서 Tanzu Kubernetes Grid 환경을 선택하는 옵션이 표시됩니다.