기본적으로 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인 경우 이를 사용하여 관리 클러스터를 생성하거나 삭제할 수 있습니다. 그렇지 않으면 다음과 같이 클러스터를 교체해야 합니다.
새 로컬 부트스트랩 클러스터를 생성하려면 부트스트랩 시스템의 연결에 따라 다음 중 하나를 수행합니다.
완전한 온라인 환경:
클러스터를 생성합니다.
kind create cluster
인터넷 제한 환경:
다음과 같이 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 인증서입니다.기본적으로 crashd
는 tkg-kind
라는 클러스터를 찾으므로 클러스터가 부트스트랩에 실패할 경우 kind
클러스터 tkg-kind
으로 이름을 지정하면 로그를 쉽게 수집할 수 있습니다.
위의 구성 파일을 사용하여 kind
클러스터를 생성합니다.
kind create cluster --config kind.yml
기존 부트스트랩 클러스터를 사용하여 Tanzu Kubernetes Grid 관리 클러스터를 배포하려면 다음을 수행합니다.
위의 절차에 따라 로컬 부트스트랩 클러스터를 식별하거나 생성합니다.
kubectl
의 컨텍스트를 로컬 클러스터로 설정합니다.
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
--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 관리 클러스터를 삭제하려면 다음을 수행합니다.
위의 절차에 따라 로컬 부트스트랩 클러스터를 식별하거나 생성합니다.
kubectl
의 컨텍스트를 로컬 클러스터로 설정합니다.
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
--use-existing-cleanup-cluster
옵션과 함께 tanzu mc delete
명령을 실행하여 관리 클러스터를 삭제합니다.
tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
tanzu mc delete
실행에 대한 자세한 내용은 관리 클러스터 삭제를 참조하십시오.