TKG 서비스는 Kubernetes 워크로드 클러스터의 셀프 서비스 수명 주기 관리를 제공합니다. 감독자의 TKG 서비스는 vSphere 환경에 최적화되어 있으며 vCenter, ESXi, 가상 네트워킹 및 클라우드 네이티브 스토리지를 포함한 기본 인프라와 통합됩니다. TKG 서비스를 사용하면 규격 Kubernetes 클러스터를 프로비저닝하고 업스트림 동시성을 유지할 수 있습니다.

TKG 서비스에는 vSphere IaaS control plane과 통합된 여러 구성 요소가 포함됩니다.
그림 1. TKG 서비스 구성 요소
TKG 서비스 구성 요소

워크로드 관리

워크로드 관리는 네이티브 vSphere 인프라에서 Kubernetes 제어부를 제공하는 VMware 솔루션입니다. 워크로드 관리를 사용하도록 설정하면 vSphere 환경에 하나 이상의 감독자를 배포할 수 있습니다. 워크로드 관리는 vCenter Server와 함께 번들로 제공되지만 별도로 라이센스가 부여됩니다.

감독자

감독자는 워크로드 클러스터를 관리하기 위한 제어부 역할을 하는 Kubernetes 클러스터입니다. Tanzu Kubernetes Grid 클러스터를 프로비저닝하고 운영하는 개발자를 지원하도록 감독자를 구성하십시오.

감독자 배포: vSphere 클러스터

감독자를 배포하는 기존 방법은 단일 vSphere 클러스터에 배포하는 것입니다. vSphere 클러스터는 vCenter Server에서 관리하는 ESXi 호스트의 모음입니다. vSphere 클러스터는 감독자를 지원하는 다음을 비롯한 특정 기능으로 구성되어야 합니다.
  • VDS(vSphere Distributed Switch)로 연결된 여러 ESXi 호스트
  • vSAN 또는 NFS와 같은 공유 스토리지가 구성됨
  • vSphere HA 및 완전히 자동화된 DRS를 사용하도록 설정됨
  • Lifecycle Manager를 사용하도록 설정됨
  • 내장형 로드 밸런서가 있는 NSX 또는 외부 로드 밸런서가 있는 VDS로 네트워킹이 구성됨
구조적으로 감독자에서 TKG 운영 환경을 배포하는 경우 vCenter Server가 실행되는 관리부 호스트 또는 클러스터를 감독자를 사용하도록 설정할 계산부 클러스터에서 분리해야 합니다. vSphere 클러스터를 사용하여 vCenter Server를 호스팅하는 경우 이 클러스터에 DRS를 사용하도록 설정되어 있지 않아야 합니다. 자세한 내용은 vCenter 설명서를 참조하십시오.

감독자 배포: vSphere 영역

vSphere 8에는 vSphere 영역이 도입되었습니다. vSphere 클러스터를 vSphere 영역에 할당하여 감독자에 대한 고가용성 및 Fault Tolerance를 제공할 수 있습니다. 여러 vSphere 영역에 감독자를 배포하면 특정 가용성 영역에 TKG 클러스터를 프로비저닝할 수 있습니다.

단일 vSphere 클러스터에 감독자를 배포하는 경우 감독자와 vSphere 클러스터 사이에는 일대일 관계가 있습니다. 영역화된 감독자 배포에서 감독자는 3개 vSphere 클러스터에 걸쳐 확장되어 감독자의 TKG 클러스터에 대한 고가용성 및 장애 도메인을 제공합니다.

vSphere 관리자는 3개 vSphere 영역을 생성하여 vSphere 클러스터와 연결합니다. 3개 vSphere 영역에 감독자를 배포하려면 vSphere 클러스터 요구 사항 외에 다음과 같은 특별한 요구 사항이 있습니다.

  • 3개 vSphere 영역이 VDS(vSphere Distributed Switch)로 연결됨
  • 각 vSphere 영역에 단일 vSphere 클러스터가 포함됨
  • 감독자를 정확히 3개 vSphere 영역에 배포해야 함
  • vSphere 영역에서 vSphere 스토리지 정책을 사용할 수 있음

vSphere 네임스페이스

vSphere 네임스페이스는 하나 이상의 Tanzu Kubernetes Grid 클러스터가 프로비저닝되는 감독자의 네임스페이스입니다. 각 vSphere 네임스페이스에 대해 역할 기반 액세스 제어, 영구 스토리지, 리소스 제한, 이미지 라이브러리 및 가상 시스템 클래스를 구성합니다.

TKG 서비스

TKG 서비스는 Kubernetes 클러스터의 수명 주기를 관리하기 위한 사용자 지정 리소스 및 컨트롤러 집합을 정의하는 오픈 소스 Cluster API 프로젝트의 구현입니다. Tanzu Kubernetes Grid감독자의 구성 요소입니다.

TKG 서비스에는 TKG 클러스터(가상 시스템 서비스, Cluster API 및 클라우드 제공자 플러그인 포함)의 수명 주기를 관리하기 위한 세 가지 컨트롤러 계층이 있습니다.

VM Operator
가상 시스템 서비스 컨트롤러는 VM 및 연결된 vSphere 리소스 관리를 위한 선언적 Kubernetes 스타일의 API를 제공합니다. 가상 시스템 서비스는 재사용 가능한 추상적인 하드웨어 구성을 나타내는 가상 시스템 클래스의 개념을 소개합니다. TKG 서비스가상 시스템 서비스를 사용하여 워크로드 클러스터를 호스팅하는 제어부 및 작업자 노드 VM의 수명 주기를 관리합니다.
클러스터 API
클러스터 API 컨트롤러는 클러스터 생성, 구성 및 관리를 위한 선언적 Kubernetes 스타일의 API를 제공합니다. 클러스터 API에 대한 입력에는 클러스터를 설명하는 리소스, 클러스터를 구성하는 가상 시스템을 설명하는 리소스 집합 및 클러스터 추가 기능을 설명하는 리소스 집합이 포함됩니다.
클라우드 제공자 플러그인
TKG 서비스는 기본 vSphere 네임스페이스 리소스와 통합하는 데 필요한 구성 요소를 포함하는 워크로드 클러스터를 프로비저닝합니다. 이러한 구성 요소에는 감독자와 통합되는 클라우드 제공자 플러그인이 포함됩니다. TKG는 클라우드 제공자 플러그인을 사용하여 VMware CNS(클라우드 네이티브 스토리지)와 통합된 감독자에 영구 볼륨에 대한 요청을 전달합니다.

Tanzu Kubernetes 릴리스

Tanzu Kubernetes 릴리스Tanzu Kubernetes Grid 클러스터와 함께 사용하기 위해 VMware에서 서명 및 지원하는 Kubernetes 소프트웨어 배포및 추가 기능을 제공합니다.

Tanzu Kubernetes 릴리스는 가상 시스템 템플릿(OVA 파일)으로 배포됩니다. Tanzu Kubernetes Grid는 OVA 형식을 사용하여 TKG 클러스터의 가상 시스템 노드를 구성합니다. Tanzu Kubernetes 릴리스는 Kubernetes 버전 관리에 따라 버전이 지정되며 vSphere 인프라에 대한 OS 사용자 지정 및 최적화를 포함합니다.

Tanzu Kubernetes 릴리스 목록 및 감독자와의 호환성에 대해서는 Tanzu Kubernetes 릴리스의 릴리스 정보를 참조하십시오. vSphere IaaS control plane 지원 정책도 참조하십시오.

컨텐츠 라이브러리

Tanzu Kubernetes 릴리스는 vCenter 컨텐츠 라이브러리를 사용하여 TKG 클러스터에서 사용할 수 있습니다. 구독 컨텐츠 라이브러리를 생성하고 VMware에서 사용할 수 있게 되면 자동으로 TKR 을 받을 수 있습니다. 또는 로컬 컨텐츠 라이브러리를 사용하고 수동으로TKR을 업로드할 수 있습니다.

TKG 서비스 클러스터 구성 요소

TKG 서비스 클러스터에서 실행되는 구성 요소는 제품의 네 가지 영역(인증, 스토리지, 네트워킹 및 로드 밸런싱)에 대한 기능을 제공합니다.

인증 Webhook

인증 Webhook은 클러스터 내에서 포드로 실행되어 사용자 인증 토큰의 유효성을 검사합니다.

TKG 클러스터는 vCenter Single Sign-On 사용 및 OIDC(OpenID Connect) 프로토콜을 지원하는 외부 ID 제공자 사용이라는 두 가지 방법으로 인증을 지원합니다.

TKG는 감독자 및 TKG 클러스터 노드에서 Pinniped OIDC 클라이언트를 실행합니다. 감독자용 외부 OIDC 제공자를 구성하면 Pinniped 구성 요소가 자동으로 구성됩니다.

TKG는 kubectl용 vSphere 플러그인 및 Tanzu CLI를 포함하여 감독자 인증을 위한 다양한 클라이언트를 지원합니다.

CSI(Container Storage Interface)

반가상화 CSI 플러그인은 TKG 클러스터 내에서 실행되고 감독자를 통해 VMware Cloud CNS(네이티브 스토리지)와 통합되는 Kubernetes 포드입니다. TKG 클러스터 내에서 실행되는 Kubernetes 포드는 세 가지 유형의 가상 디스크(사용 후 삭제, 영구 볼륨, 컨테이너 이미지)를 마운트할 수 있습니다.

임시 스토리지

포드는 Kubernetes 개체와 같은 사용 후 삭제 데이터를 로그, 볼륨 및 구성 맵으로 저장하기 위한 임시 스토리지가 필요합니다. 임시 스토리지는 포드가 존재하는 동안 지속됩니다. 사용 후 삭제 데이터는 컨테이너를 다시 시작해도 유지되지만 포드가 삭제되면 사용 후 삭제 데이터를 저장하는 가상 디스크가 사라집니다.

영구 스토리지

TKG는 vSphere 스토리지 정책 프레임워크를 활용하여 스토리지 클래스를 정의하고 영구 볼륨을 예약합니다. TKG 클러스터는 VMware CNS(클라우드 네이티브 스토리지)와 통합된 감독자에 영구 볼륨에 대한 요청을 전달합니다. 영구 볼륨은 스토리지 클래스를 사용하여 동적으로 또는 수동으로 클러스터 노드에 프로비저닝됩니다.

컨테이너 이미지 스토리지

Kubernetes 포드 내의 컨테이너는 실행할 소프트웨어가 포함된 이미지를 사용합니다. 포드는 컨테이너에서 사용하는 이미지를 이미지 가상 디스크로 마운트합니다. 포드의 수명 주기가 완료되면 이미지 가상 디스크가 포드에서 분리됩니다. Kubelet은 이미지 레지스트리에서 컨테이너 이미지를 끌어와서 가상 디스크로 변환하여 포드 내에서 실행하는 작업을 담당합니다.

CNI(Container Network Interface)

컨테이너 네트워크 인터페이스 플러그인은 포드 네트워킹을 제공하는 CNI 플러그인입니다.

TKG 클러스터는 Antrea(기본값) 및 Calico와 같은 CNI(Container Network Interface) 옵션을 지원합니다. 또한 TKG는 라우팅 가능한 포드 네트워킹을 구현하기 위해 Antrea NSX Routed CNI를 제공합니다.

이 표에는 TKG 클러스터 네트워킹 기능과 구현이 요약되어 있습니다.

표 1. TKG 서비스 클러스터 네트워킹
끝점 제공자 설명
포드 연결 Antrea 또는 Calico 포드용 컨테이너 네트워크 인터페이스입니다. Antrea는 Open vSwitch를 사용합니다. Calico는 BGP와 함께 Linux 브리지를 사용합니다.
서비스 유형: ClusterIP Antrea 또는 Calico 클러스터 내에서만 액세스할 수 있는 기본 Kubernetes 서비스 유형입니다.
서비스 유형: NodePort Antrea 또는 Calico Kubernetes 네트워크 프록시에 의해 각 작업자 노드에 열린 포트를 통한 외부 액세스를 허용합니다.
네트워크 정책 Antrea 또는 Calico 선택한 포드 및 네트워크 끝점 사이에서 허용되는 트래픽을 제어합니다. Antrea는 Open vSwitch를 사용합니다. Calico는 Linux IP 테이블을 사용합니다.
클라우드 제공자 구현
클라우드 제공자 구현을 통해 Kubernetes 로드 밸런서 및 수신 서비스를 생성할 수 있습니다.
표 2. TKG 로드 밸런싱
끝점 제공자 설명
서비스 유형: LoadBalancer

NSX 내장된 로드 밸런서(NSX 네트워크 스택의 일부)

NSX Advanced Load Balancer(VDS네트워킹에 사용하려면 별도 설치)

HAProxy(VDS네트워킹에 사용하려면 별도 설치)

NSX 내장된 로드 밸런서의 경우 서비스 유형 정의당 가상 서버 하나.

NSX Advanced Load Balancer는 이 설명서에서 해당 섹션을 참조하십시오.

HAProxy는 이 설명서에서 해당 섹션을 참조하십시오.

참고: 일부 로드 밸런싱 기능은 지원되는 각 로드 밸런서 유형에서 사용하지 못할 수도 있습니다(예: 정적 IP).
클러스터 수신 타사 수신 컨트롤러 인바운드 포드 트래픽에 대한 라우팅을 제공합니다. Contour와 같은 타사 수신 컨트롤러를 사용할 수 있습니다.

TKG 서비스 클러스터 API

TKG 서비스는 TKG 클러스터의 수명 주기를 프로비저닝하고 관리하기 위한 두 가지 API를 제공합니다.
  • Tanzu Kubernetes 클러스터에 대한 API 버전 v1alpha3
  • ClusterClass를 기반으로 하는 클러스터에 대한 API 버전 v1beta1

v1alpha3 API를 사용하면 TanzuKubernetesCluster 유형의 규격 Kubernetes 클러스터를 생성할 수 있습니다. 이 유형의 클러스터는 빠른 프로비저닝을 위한 공통 기본값으로 미리 구성되며 사용자 지정할 수 있습니다. v1beta1 API를 사용하면 VMware에서 제공하는 기본 ClusterClass를 기반으로 Cluster 유형의 규격 Kubernetes 클러스터를 생성할 수 있습니다.

참고: vSphere IaaS control plane를 vSphere 7에서 vSphere 8로 업그레이드하려면 TKG 클러스터가 v1alpha2 API를 실행 중이어야 합니다. v1alpha2 API는 v7.0 업데이트 3에서 도입되었습니다. v1alpha1 API는 더 이상 사용되지 않습니다. 자세한 내용은 항목을 참조하십시오.

TKG 서비스 클러스터 클라이언트

vSphere 8 감독자의 TKG는 클러스터를 프로비저닝, 모니터링 및 관리하기 위한 다양한 클라이언트 인터페이스를 지원합니다.
  • 감독자를 구성하고 배포된 TKG 클러스터를 모니터링하기 위한 vSphere Client.
  • vCenter Single Sign-On을 사용하여 감독자 및 TKG 클러스터로 인증하기 위한 kubectl용 vSphere 플러그인.
  • TKG 클러스터의 수명 주기를 선언적으로 프로비저닝 및 관리하고 감독자와 상호 작용하기 위한 kubectl.
  • 컨테이너 레지스트리에/에서 이미지를 푸시하고 끌어오기 위한 vSphere Docker 자격 증명 도우미.
  • 명령을 사용하여 클러스터를 프로비저닝하고 Tanzu 패키지를 설치하기 위한 Tanzu CLI.
  • TKG 클러스터를 관리하기 위한 Tanzu Mission Control 웹 인터페이스.