관리 클러스터 관리

이 항목에서는 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
  • 현재 로그인 컨텍스트를 변경하려면 위쪽 및 아래쪽 화살표 키를 사용하여 새 관리 클러스터를 강조 표시한 다음 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 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

관리 클러스터 세부 정보 보기

관리 클러스터의 세부 정보를 보려면 다음을 수행합니다.

  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.26.8+vmware.1  management  prod  v1.26.8---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. 메시지가 표시되면 로그인 유형으로 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. 관리 클러스터에서 ID 관리를 사용하도록 설정한 경우 기본 브라우저에서 열리는 Okta 로그인 페이지에서 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
    

관리 클러스터 확장/축소

관리 클러스터를 배포한 후에는 포함된 노드 VM 수를 늘리거나 줄여 스케일 업 또는 다운할 수 있습니다. 관리 클러스터를 확장하려면 다음 옵션 중 하나 또는 둘 다와 함께 tanzu cluster scale 명령을 사용합니다.

  • --controlplane-machine-count는 관리 클러스터 제어부 노드의 수를 변경합니다.
  • --worker-machine-count는 관리 클러스터 Worker 노드의 수를 변경합니다.

관리 클러스터는 default 네임스페이스가 아닌 tkg-system 네임스페이스에서 실행되기 때문에 관리 클러스터를 확장할 때 --namespace 옵션도 지정해야 합니다.

  1. tanzu cluster scale을 실행하기 전에 tanzu context use을 실행하여 확장/축소할 관리 클러스터가 Tanzu CLI의 현재 컨텍스트인지 확인합니다.
  2. 원래 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)

관리 클러스터에서 사용하는 vSphere 자격 증명을 업데이트하고 필요한 경우 관리하는 모든 워크로드 클러스터를 업데이트하려면 Tanzu CLI를 사용하여 TKG 2.1 워크로드 클러스터 생성 및 관리의 클러스터 자격 증명 업데이트를 참조하십시오.

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.3 워크로드 클러스터 생성 및 관리의 워크로드 클러스터 생성을 참조하십시오.

Supervisor가 있는 vSphere 8이 있는 경우 Tanzu CLI를 사용하여 TKG 2.x 클러스터를 배포할 수 있습니다. 자세한 내용은 Tanzu CLI를 사용하여 TKG 2.3 클러스터 생성 및 관리를 참조하십시오.

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