이 항목에서는 Tanzu Kubernetes Grid vSphere, Azure 또는 AWS(Amazon Web Services)에 배포된 관리 클러스터와 Tanzu Kubernetes Grid 관리 클러스터로 지정된 vSphere with Tanzu Supervisor를 포함하여 동일한 부트스트랩 시스템에서 여러 관리 클러스터를 관리하는 방법을 설명합니다.
중요Tanzu Kubernetes Grid v2.4.x는 AWS 및 Azure에서 독립형 TKG 관리 클러스터의 관리를 지원하는 마지막 TKG 버전입니다. AWS 및 Azure에서 독립형 TKG 관리 클러스터를 관리하는 기능은 Tanzu Kubernetes Grid v2.5 릴리스에서 제거됩니다.
지금부터는 VMware Tanzu Mission Control을 사용하여 네이티브 AWS EKS 및 Azure AKS 클러스터를 생성하는 것이 좋습니다. 그러나 AWS 및 Azure에서 기존 독립형 TKG 관리 클러스터를 관리하는 것은 TKG v2.4.x까지 모든 TKG 릴리스에 대해 완전히 지원됩니다.
자세한 내용은 VMware Tanzu Kubernetes Grid v2.4 Release Notes에서 AWS 및 Azure에서 TKG 관리 및 워크로드 클러스터의 사용 중단을 참조하십시오.
사용 가능한 관리 클러스터를 나열하고 현재 로그인한 클러스터를 보려면 부트스트랩 시스템에서 tanzu context use
을 실행합니다.
tanzu context use
참고컨텍스트에 로그인하려면
tanzu context create
명령을 사용하여 컨텍스트를 생성해야 합니다.
예를 들어 두 개의 관리 클러스터(my-vsphere-mgmt-cluster
및 my-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
kubectl
및 kubeconfig
)Tanzu Kubernetes Grid는 Tanzu CLI 컨텍스트를 변경하기 위해 tanzu context use
을 실행할 때 kubectl
컨텍스트를 자동으로 변경하지 않습니다. 또한, Tanzu Kubernetes Grid는 워크로드 클러스터를 생성할 때 kubectl
컨텍스트를 설정하지 않습니다. kubectl
컨텍스트를 변경하려면 kubectl config use-context
명령을 사용합니다.
기본적으로 Tanzu Kubernetes Grid 부트스트랩 시스템의 다음 파일에 클러스터 컨텍스트 정보를 저장합니다.
~/.kube-tkg/config
~/.kube/config
관리 클러스터의 세부 정보를 보려면 다음을 수행합니다.
tanzu context use
을 실행하여 관리 클러스터 목록 및 컨텍스트 변경에 설명된 대로 관리 클러스터에 로그인합니다.
tanzu context use
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 별칭 mc
는 management-cluster
의 약식입니다.
Tanzu CLI를 사용하면 다른 사람이 생성한 관리 클러스터에 로그인할 수 있습니다. 로그인하려면 로컬 kubeconfig 세부 정보 또는 서버 끝점 옵션을 사용할 수 있습니다.
로컬 kubeconfig를 사용하여 기존 관리 클러스터에 로그인하려면 다음을 수행합니다.
tanzu context use
을 실행하고 아래쪽 화살표 키를 사용하여 + 새 서버(+ new server)를 강조 표시한 후 Enter 키를 누릅니다.
tanzu context use
? Select a server + new server
메시지가 표시되면 로그인 유형으로 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) 옵션을 사용하여 기존 관리 클러스터에 로그인하려면 다음을 수행합니다.
tanzu context use
을 실행하고 아래쪽 화살표 키를 사용하여 + 새 서버(+ new server)를 강조 표시한 후 Enter 키를 누릅니다.
tanzu context use
? Select a server + new server
메시지가 표시되면 로그인 유형으로 서버 끝점(Server endpoint)을 선택합니다.
successfully logged in to management cluster by using the kubeconfig <server name>
다른 사람이 생성한 관리 클러스터를 Tanzu CLI의 인스턴스에 추가하면 더 이상 필요하지 않을 수 있습니다. 마찬가지로 관리 클러스터를 배포했으며 tanzu mc delete
를 실행하는 것 외에 다른 방법으로 대상 플랫폼에서 관리 클러스터가 삭제된 경우 해당 관리 클러스터는 tanzu context use
을 실행할 때 CLI가 추적하는 관리 클러스터 목록에 계속 표시됩니다. 이 경우 Tanzu CLI가 추적하는 관리 클러스터 목록에서 관리 클러스터를 제거할 수 있습니다.
tanzu context list
를 실행하여 Tanzu CLI가 추적하는 관리 클러스터의 목록을 확인합니다.
tanzu context list
직접 배포했거나 Tanzu CLI, kubeconfig 파일의 위치, 컨텍스트에 추가한 모든 관리 클러스터를 볼 수 있습니다.
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 mc get
을 사용하여 관리 클러스터의 이름을 가져옵니다.
tanzu mc get
클러스터 구성 데이터를 가져옵니다.
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>`
Tanzu CLI가 현재 추적 중인 관리 클러스터 목록에서 기존 관리 클러스터 항목을 삭제합니다.
tanzu context delete CLUSTER-NAME
tanzu context create
명령을 사용하여 업데이트된 kubeconfig
로 새 관리 클러스터 항목을 추가합니다.
tanzu context create --kubeconfig mc_kubeconfig.yaml --name CLUSTER-NAME --context CLUSTER-NAME-admin@CLUSTER-NAME
관리 클러스터를 배포한 후에는 포함된 노드 VM 수를 늘리거나 줄여 스케일 업 또는 다운할 수 있습니다. 관리 클러스터를 확장하려면 다음 옵션 중 하나 또는 둘 다와 함께 tanzu cluster scale
명령을 사용합니다.
--controlplane-machine-count
는 관리 클러스터 제어부 노드의 수를 변경합니다.--worker-machine-count
는 관리 클러스터 Worker 노드의 수를 변경합니다.관리 클러스터는 default
네임스페이스가 아닌 tkg-system
네임스페이스에서 실행되기 때문에 관리 클러스터를 확장할 때 --namespace
옵션도 지정해야 합니다.
tanzu cluster scale
을 실행하기 전에 tanzu context use
을 실행하여 확장/축소할 관리 클러스터가 Tanzu CLI의 현재 컨텍스트인지 확인합니다.원래 3개의 제어부 노드와 5개의 Worker 노드를 사용하여 배포한 운영 관리 클러스터를 각각 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 자격 증명을 업데이트하고 필요한 경우 관리하는 모든 워크로드 클러스터를 업데이트하려면 Tanzu CLI를 사용하여 TKG 2.4 워크로드 클러스터 생성 및 관리의 클러스터 자격 증명 업데이트를 참조하십시오.
설치 관리자 인터페이스 또는 CLI를 사용하여 관리 클러스터를 배포하는 경우 옵트아웃 옵션을 지정하지 않는 한 VMware CEIP(고객 환경 향상 프로그램) 참여가 기본적으로 사용되도록 설정됩니다. 프로그램에 계속 참여해도 관리 클러스터는 Tanzu Kubernetes Grid를 사용하는 방법에 대한 정보를 정기적으로 VMware에 전송하므로 향후 버전을 개선할 수 있습니다.
CEIP에 대한 자세한 내용은 CEIP에 참여 관리를 참조하십시오.
관리 클러스터를 배포할 때 CEIP에서 옵트아웃했으며 옵트인하려는 경우 또는 옵트인하고 옵트아웃하려는 경우, CEIP에 참여 관리의 VMware CEIP 옵트인 또는 옵트아웃을 참조하여 배포 후 CEIP 참여 설정을 변경합니다.
개발 프로젝트를 구성하고 관리하는 데 도움이 되도록 필요에 따라 관리 클러스터를 Kubernetes 네임스페이스로 분할할 수 있습니다. 그런 다음 Tanzu CLI를 사용하여 워크로드 클러스터를 관리 클러스터의 특정 네임스페이스에 배포할 수 있습니다. 예를 들어 전용 네임스페이스에 서로 다른 유형의 클러스터를 생성할 수 있습니다. 추가 네임스페이스를 생성하지 않으면 Tanzu Kubernetes Grid는 default
네임스페이스에 모든 워크로드 클러스터를 생성합니다. Kubernetes 네임스페이스에 대한 자세한 내용은 Kubernetes 설명서를 참조하십시오.
현재 컨텍스트를 표시하여 kubectl
이 올바른 관리 클러스터 컨텍스트에 연결되어 있는지 확인합니다.
kubectl config current-context
관리 클러스터에 현재 있는 네임스페이스를 나열합니다.
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
kubectl create -f
를 사용하여 개발 및 운영과 같은 새 네임스페이스를 생성합니다.
이러한 예에서는 Kubernetes 설명서의 production
및 development
네임스페이스를 사용합니다.
kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
kubectl get namespaces --show-labels
를 실행하여 새 네임스페이스를 확인합니다.
development Active 22m name=development
production Active 22m name=production
관리 클러스터의 워크로드 클러스터에 대한 네임스페이스를 삭제하기 전에 워크로드 클러스터 자체를 삭제해야 합니다. 관리 클러스터 네임스페이스를 삭제하여 워크로드 클러스터를 삭제할 수 없습니다.
관리 클러스터의 워크로드 클러스터에 대한 네임스페이스를 삭제하려면 다음을 수행합니다.
관리 클러스터에 kubectl
컨텍스트를 설정합니다.
kubectl config use-context MY-MGMT-CLUSTER@MY-MGMT-CLUSTER
여기서 MY-MGMT-CLUSTER
는 관리 클러스터의 이름입니다.
삭제하려는 네임스페이스에서 실행 중인 클러스터를 나열합니다.
tanzu cluster list -n NAMESPACE
워크로드 클러스터 삭제 절차를 따라 볼륨 및 서비스를 삭제하고, 필요한 경우 워크로드를 마이그레이션하고, 네임스페이스에서 클러스터를 삭제합니다.
kubectl
을 사용하여 네임스페이스를 삭제합니다.
kubectl delete namespace NAMESPACE
관리 클러스터를 삭제하려면 tanzu mc delete
명령을 실행합니다.
tanzu mc delete
를 실행하면 Tanzu Kubernetes Grid 부트스트랩 시스템에 임시 kind
정리 클러스터를 생성하여 삭제 프로세스를 관리합니다. kind
클러스터는 삭제 프로세스가 완료되면 제거됩니다.
AWS: TKG에서 사용하는 AWS 자격 증명이 여전히 유효한지 확인합니다. AWS 계정 자격 증명 구성에 설명된 대로 자격 증명 프로파일 또는 로컬 정적 환경 변수일 수 있습니다.
모든 관리 클러스터를 보려면 관리 클러스터 나열 및 컨텍스트 변경에 설명된 대로 tanzu context use
을 실행합니다.
더 이상 필요하지 않은 관리 클러스터가 있는 경우 tanzu mc delete
를 실행합니다.
삭제할 관리 클러스터에 로그인해야 합니다.
tanzu mc delete my-mgmt-cluster
tanzu mc delete
를 실행할 때 yes/no
확인 단계를 건너뛰려면 --yes
옵션을 지정합니다.
tanzu mc delete my-mgmt-cluster --yes
관리 클러스터에서 실행 중인 워크로드 클러스터가 있는 경우 삭제 작업이 수행되지 않습니다.
이 경우 다음 두 가지 방법으로 관리 클러스터를 삭제할 수 있습니다.
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 워크로드 클러스터 생성 및 관리의 워크로드 클러스터 생성을 참조하십시오.
Supervisor가 있는 vSphere 8이 있는 경우 Tanzu CLI를 사용하여 TKG 2.x 클러스터를 배포할 수 있습니다. 자세한 내용은 Tanzu CLI를 사용하여 TKG 2.3 워크로드 클러스터 생성 및 관리를 참조하십시오.