vSphere 클러스터에서 vSphere with Tanzu을 사용하도록 설정하면 하이퍼바이저 계층 내에 Kubernetes 제어부가 생성됩니다. 이 계층에는 ESXi 내에서 Kubernetes 워크로드를 실행하는 기능이 있는 특정 개체가 포함되어 있습니다.

그림 1. 감독자 클러스터 일반 아키텍처
맨 위에 Tanzu Kubernetes Grid가 있고, 중간에 감독자, 맨 아래에는 ESXi, 네트워킹 및 스토리지가 있는 아카이브입니다. vCenter Server가 관리합니다.

vSphere with Tanzu에 사용하도록 설정된 클러스터를 감독자 클러스터라고 합니다. 이는 계산용 ESXi, NSX-T Data Center 또는 vSphere 네트워킹, vSAN 또는 다른 공유 스토리지 솔루션으로 구성된 SDDC 계층의 위에서 실행됩니다. 공유 스토리지는 vSphere 포드의 영구 볼륨, 감독자 클러스터 내에서 실행되는 VM, Tanzu Kubernetes 클러스터의 포드에 사용됩니다. 감독자 클러스터가 생성되면 vSphere 관리자는 vSphere 네임스페이스라는 감독자 클러스터 내에 네임스페이스를 생성할 수 있습니다. DevOps 엔지니어는 vSphere 포드 내에서 실행되는 컨테이너로 구성된 워크로드를 실행하고 Tanzu Kubernetes 클러스터를 생성할 수 있습니다.

그림 2. 감독자 클러스터 아키텍처
감독자 클러스터 아키텍처입니다.
  • Kubernetes 제어부 VM. 총 3개의 Kubernetes 제어부 VM이 감독자 클러스터의 일부인 호스트에 생성됩니다. 3개의 제어부 VM 각각에는 고유한 IP 주소가 있으므로 로드 균형이 조정됩니다. 또한 VM 중 하나에는 부동 IP 주소가 할당됩니다. vSphere DRS는 ESXi 호스트에서 제어부 VM의 정확한 배치를 결정하고 필요할 때 마이그레이션합니다. vSphere DRS는 제어부 VM의 Kubernetes 스케줄러와도 통합되므로 DRS가 vSphere 포드의 배치를 결정합니다. DevOps 엔지니어가 vSphere 포드을 스케줄링하는 경우, 요청은 일반 Kubernetes 워크플로를 거쳐서 DRS로 이동하여 최종 배치 결정을 내립니니다.
  • Spherelet. Spherelet이라는 추가 프로세스는 각 호스트에 생성됩니다. kubelet은 기본적으로 ESXi로 이식되고 ESXi 호스트가 Kubernetes 클러스터의 일부가 되도록 허용합니다.
  • CRX(Container Runtime Executive). CRX는 Hostd와 vCenter Server의 관점에서 VM과 유사합니다. CRX에는 하이퍼바이저와 함께 작동하는 반가상화 Linux 커널이 포함되어 있습니다. CRX는 VM과 동일한 하드웨어 가상화 기술을 사용하며 주변에 VM 경계가 있습니다. 직접 부팅 기술이 사용되기 때문에 CRX의 Linux 게스트가 커널 초기화를 통해 전달하지 않고도 기본 초기화 프로세스를 시작할 수 있습니다. 따라서 vSphere 포드가 거의 컨테이너만큼 빠르게 부팅할 수 있습니다.
  • 클러스터 API 및 VMware Tanzu™ Kubernetes Grid™ 서비스감독자 클러스터에서 실행되고 Tanzu Kubernetes 클러스터의 프로비저닝 및 관리를 사용하도록 설정하는 모듈입니다. 가상 시스템 서비스 모듈은 독립형 VM 및 Tanzu Kubernetes 클러스터를 구성하는 VM의 배포 및 실행을 담당합니다.

vSphere 네임스페이스

vSphere 네임스페이스Tanzu Kubernetes Grid 서비스를 사용하여 생성된 vSphere 포드Tanzu Kubernetes 클러스터가 실행될 수 있는 리소스 경계를 설정합니다. 처음 생성되면 네임스페이스는 감독자 클러스터 내에 제한 없는 리소스가 포함됩니다. vSphere 관리자는 CPU, 메모리, 스토리지는 물론 네임스페이스 내에서 실행할 수 있는 Kubernetes 개체의 수에 대한 제한을 설정할 수 있습니다. vSphere의 각 네임스페이스별로 리소스 풀이 생성됩니다. 스토리지 제한은 Kubernetes에서 스토리지 할당량으로 표시됩니다.

그림 3. vSphere 네임스페이스
감독자 네임스페이스

DevOps 엔지니어에게 네임스페이스에 대한 액세스를 제공하기 위해, vSphere 관리자는 vCenter Single Sign-On에 연결된 ID 소스 내에서 사용 가능한 사용자나 사용자 그룹에 사용 권한을 할당합니다.

리소스 및 개체 제한은 물론 사용 권한 및 스토리지 정책으로 네임스페이스를 생성하고 구성한 후, DevOps 엔지니어가 네임스페이스에 액세스하여 Kubernetes 워크로드를 실행하고 Tanzu Kubernetes Grid 서비스를 사용하여 Tanzu Kubernetes 클러스터를 생성할 수 있습니다.

Tanzu Kubernetes 클러스터

Tanzu Kubernetes 클러스터는 VMware에서 패키지, 서명 및 지원하는 오픈 소스 Kubernetes 소프트웨어의 전체 배포입니다. vSphere with Tanzu의 컨텍스트에서, Tanzu Kubernetes Grid 서비스를 사용하여 감독자 클러스터Tanzu Kubernetes 클러스터를 프로비저닝할 수 있습니다. kubectl 및 YAML 정의를 사용하여 Tanzu Kubernetes Grid 서비스 API를 선언적으로 호출할 수 있습니다.

Tanzu Kubernetes 클러스터는 vSphere 네임스페이스에 상주합니다. 표준 Kubernetes 클러스터와 동일한 도구를 사용하여 워크로드 및 서비스를 동일한 방식으로 Tanzu Kubernetes에 배포할 수 있습니다.
그림 4. Tanzu Kubernetes 클러스터의 vSphere with Tanzu 아키텍처
TKG 클러스터에 대한 아키텍처입니다.

vSphere 네트워킹 스택으로 구성된 감독자 클러스터

vSphere 네트워킹 스택으로 구성된 감독자 클러스터Tanzu Kubernetes Grid 서비스를 사용하여 생성된 Tanzu Kubernetes 클러스터 실행만 지원합니다. 클러스터는 vSphere 네트워크 서비스 및 스토리지 서비스도 지원합니다.

vSphere 네트워킹 스택으로 구성된 감독자 클러스터vSphere 포드를 지원하지 않습니다. 따라서 Spherelet 구성 요소는 이러한 감독자 클러스터에서 사용할 수 없으며 Kubernetes 포드는 Tanzu Kubernetes 클러스터 내에서만 실행됩니다. vSphere 네트워킹 스택으로 구성된 감독자 클러스터Harbor 레지스트리도 지원하지 않습니다. 이 서비스는 vSphere 포드에서만 사용되기 때문입니다.

vSphere 네트워킹 스택으로 구성된 클러스터에서 생성된 vSphere 네임스페이스vSphere 포드 실행을 지원하지 않으며 Tanzu Kubernetes 클러스터만 지원합니다.