기존 부트스트랩 클러스터를 사용하여 관리 클러스터 배포 및 삭제

기본적으로 tanzu mc create를 실행하여 관리 클러스터를 배포하는 경우 Tanzu Kubernetes Grid는 로컬 부트스트랩 시스템에 임시 kind 클러스터를 생성합니다. 그런 다음 로컬 클러스터를 사용하여 대상 클라우드 인프라(vSphere, Amazon Web Services(AWS) 또는 Azure)에서 최종 관리 클러스터를 프로비저닝하고 관리 클러스터가 성공적으로 배포된 후 임시 클러스터를 삭제합니다. 관리 클러스터를 삭제하기 위해 tanzu mc delete를 실행하면 임시 로컬 kind 클러스터를 생성, 사용, 제거하는 유사한 프로세스가 호출됩니다.

경우에 따라 관리 클러스터를 배포하거나 삭제한 후 로컬 클러스터를 유지하려고 할 수 있습니다. 예를 들어 클러스터의 개체를 검토하거나 해당 로그를 검토합니다. 이렇게 하려면 CLI 옵션--use-existing-bootstrap-cluster 또는 --use-existing-cleanup-cluster를 사용하여 관리 클러스터를 배포하거나 삭제할 수 있습니다.

이러한 옵션을 사용하면 Tanzu Kubernetes Grid는 로컬 kind 클러스터 생성 및 삭제를 건너뛰고, 대신 사용자가 이미 있거나 새 클러스터를 생성한 기존 로컬 클러스터를 사용합니다.

주의

기존 부트스트랩 클러스터 사용은 숙련된 Kubernetes 사용자를 위한 고급 사용 사례입니다. 가능하면 Tanzu Kubernetes Grid가 관리 클러스터를 부트스트랩하기 위해 제공하는 기본 kind 클러스터를 사용하는 것을 적극 권장합니다.

로컬 부트스트랩 클러스터 식별 또는 생성

관리 클러스터 생성 또는 삭제 중에 로컬 kind 클러스터를 유지하려면 먼저 부트스트랩 시스템에서 호환되는 클러스터가 실행 중이어야 합니다. 아래 하위 섹션에 설명된 대로 클러스터를 식별하거나 생성하여 확인합니다.

기존 클러스터 사용

기존 로컬 클러스터를 사용하려면 다음 두 가지가 모두 True인지 확인해야 합니다.

  • 클러스터가 이전에 관리 클러스터를 부트스트랩하거나 삭제하는 데 사용된 적이 없습니다.

  • 클러스터가 kind v0.11 이상으로 생성되었습니다.

    • docker ps를 실행하고 kind Release notes에 있는 kindest:node 버전에 연결하여 이를 확인합니다.

    • 배경: 부트스트랩 시스템이 2021년 5월 Linux 보안 패치 이후 구축된 Linux 커널(예: Fedora를 사용하는 Linux 5.11 및 5.12)을 사용하는 경우 부트스트랩 클러스터는 kind 버전 v0.11 이상에서 생성해야 합니다. 이전 버전의 kind가 최근 Linux 버전에서 읽기 전용으로 만든 파일을 변경하려고 시도하여 오류가 발생했습니다. 보안 패치는 4.9부터 모든 LTS 커널로 백보딩되고 있으며, 운영 체제 업데이트가 제공될 때(Mac OS의 Docker 시스템용 및 Linux용 Windows Subsystem을 포함하여) 관리 클러스터 배포가 실패할 수 있습니다.

현재 로컬 클러스터에 대해 이러한 두 가지 검증이 모두 true인 경우 이를 사용하여 관리 클러스터를 생성하거나 삭제할 수 있습니다. 그렇지 않으면 다음과 같이 클러스터를 교체해야 합니다.

  1. 클러스터를 삭제합니다.

  2. kind 설명서에 설명된 대로 새 버전의 kind를 다운로드하고 설치합니다.

  3. 아래의 새 클러스터 생성 섹션에 설명된 대로 kind 클러스터를 생성합니다.

새 클러스터 생성

새 로컬 부트스트랩 클러스터를 생성하려면 부트스트랩 시스템의 연결에 따라 다음 중 하나를 수행합니다.

  • 완전한 온라인 환경:

    클러스터를 생성합니다.

    kind create cluster
    
  • 인터넷 제한 환경:

    1. 다음과 같이 kind 클러스터 구성 파일 kind.yml을 생성합니다.

      kind: Cluster
      apiVersion: kind.x-k8s.io/v1alpha4
      name: tkg-kind
      nodes:
      - role: control-plane
       # This option mounts the host docker registry folder into
       # the control-plane node, allowing containerd to access them.
       extraMounts:
         - containerPath: CONTAINER-CA-PATH
           hostPath: HOST-CA-PATH
      containerdConfigPatches:
      - |-
       [plugins."io.containerd.grpc.v1.cri".registry.configs."REGISTRY-FQDN".tls]
         ca_file = "/etc/containerd/REGISTRY-FQDN/CA.crt"
      

      여기서:

      • CONTAINER-CA-PATH/etc/containerd/REGISTRY-FQDN과 같이 kind 컨테이너에서 Harbor CA 인증서의 경로입니다.
      • HOST-CA-PATH/etc/docker/certs.d/REGISTRY-FQDN과 같이 kind 클러스터가 생성되는 부트스트랩 VM에서 Harbor CA 인증서의 경로입니다.
      • REGISTRY-FQDN은 Harbor 레지스트리의 이름입니다.
      • CA.crt는 Harbor 레지스트리의 CA 인증서입니다.

      기본적으로 crashdtkg-kind라는 클러스터를 찾으므로 클러스터가 부트스트랩에 실패할 경우 kind 클러스터 tkg-kind으로 이름을 지정하면 로그를 쉽게 수집할 수 있습니다.

    2. 위의 구성 파일을 사용하여 kind 클러스터를 생성합니다.

      kind create cluster --config kind.yml
      

기존 부트스트랩 클러스터를 사용하여 관리 클러스터 배포

기존 부트스트랩 클러스터를 사용하여 Tanzu Kubernetes Grid 관리 클러스터를 배포하려면 다음을 수행합니다.

  1. 위의 절차에 따라 로컬 부트스트랩 클러스터를 식별하거나 생성합니다.

  2. kubectl의 컨텍스트를 로컬 클러스터로 설정합니다.

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. --use-existing-bootstrap-cluster 옵션과 함께 tanzu mc create 명령을 실행하여 관리 클러스터를 배포합니다.

    tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
    

    tanzu mc create 실행에 대한 자세한 내용은 관리 클러스터 배포를 참조하십시오.

기존 부트스트랩 클러스터가 있는 관리 클러스터 삭제

기존 부트스트랩 클러스터를 사용하여 Tanzu Kubernetes Grid 관리 클러스터를 삭제하려면 다음을 수행합니다.

  1. 위의 절차에 따라 로컬 부트스트랩 클러스터를 식별하거나 생성합니다.

  2. kubectl의 컨텍스트를 로컬 클러스터로 설정합니다.

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. --use-existing-cleanup-cluster 옵션과 함께 tanzu mc delete 명령을 실행하여 관리 클러스터를 삭제합니다.

    tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
    

    tanzu mc delete 실행에 대한 자세한 내용은 관리 클러스터 삭제를 참조하십시오.

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