vSphere IaaS control plane을 사용하여 vSphere를 하이퍼바이저 계층에서 Kubernetes 워크로드를 기본적으로 실행하는 플랫폼으로 변환할 수 있습니다. vSphere 클러스터에서 사용하도록 설정되면 vSphere IaaS control planeESXi 호스트에서 직접 Kubernetes 워크로드를 실행하고 vSphere 네임스페이스라는 전용 네임스페이스 내에 업스트림 Kubernetes 클러스터를 생성하는 기능을 제공합니다.

현재 애플리케이션 스택의 과제

오늘날의 분산 시스템은 일반적으로 다수의 Kubernetes 포드 및 VM을 실행하는 여러 마이크로서비스로 구성됩니다. vSphere IaaS control plane 기반이 아닌 일반적인 스택은 VM 내부에 배포되는 Kubernetes 인프라와 이러한 VM에서 각각 실행되는 Kubernetes 포드가 있는 기본 가상 환경으로 구성됩니다. 애플리케이션 개발자, Kubernetes 클러스터 관리자 및 vSphere 관리자라는 3가지 개별 역할이 스택의 각 부분을 운영합니다.

그림 1. 현재 애플리케이션 스택
3가지 계층(Kubernetes 워크로드, Kubernetes 클러스터, 가상 환경)이 있는 스택입니다. 3가지 역할(개발자, 클러스터 관리자, vSphere 관리자)이 관리합니다.
서로 다른 역할은 서로의 환경을 보거나 제어할 수 없습니다.
  • 애플리케이션 개발자는 Kubernetes 포드를 실행하고 Kubernetes 기반 애플리케이션을 배포하고 관리할 수 있습니다. 수백 개의 애플리케이션을 실행하는 전체 스택에 대한 가시성은 없습니다.
  • DevOps 엔지니어 또는 클러스터 관리자는 Kubernetes 인프라만 제어할 수 있으며, 가상 환경을 관리 또는 모니터링하고 리소스 관련 및 기타 문제를 해결하는 도구가 없습니다.
  • vSphere 관리자는 기본 가상 환경을 완전히 제어할 수 있지만 Kubernetes 인프라, 가상 환경에 있는 다른 Kubernetes 개체의 배치 및 이러한 개체가 리소스를 소비하는 방식에 대한 가시성은 없습니다.

전체 스택에 대한 작업은 세 가지 역할 간에 통신이 필요하기 때문에 어려울 수 있습니다. 스택의 서로 다른 계층 간에 통합이 부족한 경우에도 문제가 발생할 수 있습니다. 예를 들어 Kubernetes 스케줄러는 vCenter Server 인벤토리에 대한 가시성을 가지고 있지 않으며 포드를 지능적으로 배치할 수 없습니다.

vSphere IaaS control plane 사용의 이점

vSphere IaaS control plane은 하이퍼바이저 계층에서 직접 Kubernetes 제어부를 생성합니다. vSphere 관리자가 vSphere IaaS control plane에 대해 기존 vSphere 클러스터를 활성화하기 때문에 클러스터의 일부인 ESXi 호스트 내에 Kubernetes 계층이 생성됩니다. vSphere IaaS control plane에 대해 활성화된 vSphere 클러스터를 감독자라고 합니다.

그림 2. vSphere IaaS control plane

워크로드가 맨 위에 있고 가상 환경 스택이 맨 아래에 있는 IaaS Platform 스택입니다. 개발자와 vSphere 관리자라는 두 가지 역할이 관리합니다.
하이퍼바이저 계층에 Kubernetes 제어부가 있으면 vSphere에서 다음과 같은 기능을 사용할 수 있습니다.
  • vSphere 관리자는 감독자에서 vSphere 네임스페이스라는 네임스페이스를 생성하고 이를 지정된 양의 메모리, CPU 및 스토리지를 사용하여 구성할 수 있습니다. vSphere 네임스페이스를 DevOps 엔지니어에게 제공합니다.
  • DevOps 엔지니어는 vSphere 네임스페이스 내에 공유 리소스 풀이 있는 동일한 플랫폼에서 Kubernetes 워크로드를 실행할 수 있습니다. Tanzu Kubernetes Grid를 사용하여 생성된 여러 업스트림 Kubernetes 클러스터를 배포하고 관리할 수 있습니다. vSphere 포드라는 특수한 유형의 VM 내에 있는 감독자에 Kubernetes 컨테이너를 직접 배포할 수도 있습니다. 일반 VM을 배포할 수도 있습니다.
  • vSphere 관리자는 vSphere Client를 사용하여 vSphere 포드, VM 및 Tanzu Kubernetes Grid 클러스터를 관리하고 모니터링할 수 있습니다.
  • vSphere 관리자는 서로 다른 네임스페이스 내에서 실행되는 vSphere 포드, VM 및 Tanzu Kubernetes Grid 클러스터, 이러한 항목의 환경 내 배치 및 리소스 소비 방식에 대한 완전한 가시성을 갖습니다.

하이퍼바이저 계층에서 Kubernetes를 실행하면 vSphere 관리자와 DevOps 팀 간의 협업이 쉬워집니다. 두 역할이 모두 동일한 개체로 작동하기 때문입니다.

워크로드란?

vSphere IaaS control plane에서 워크로드는 다음 중 한 가지 방법으로 배포되는 애플리케이션입니다.

  • vSphere 포드 내에서 실행되는 컨테이너로 구성된 애플리케이션.
  • VM 서비스를 통해 프로비저닝된 워크로드.
  • Tanzu Kubernetes Grid를 사용하여 배포된 Tanzu Kubernetes Grid 클러스터.
  • Tanzu Kubernetes Grid 클러스터 내에서 실행되는 애플리케이션.

vSphere 영역이란?

vSphere 영역은 vSphere IaaS control plane에 배포된 워크로드에 클러스터 수준 장애로부터 보호하는 고가용성을 제공합니다. vSphere 관리자는 vSphere Client에서 vSphere 영역을 생성한 다음, vSphere 클러스터를 영역에 매핑합니다. 영역을 사용하여 vSphere IaaS control plane 환경에 감독자를 배포합니다.

클러스터 수준 고가용성을 위해 세 개의 vSphere 영역에 감독자를 배포할 수 있습니다. 또는 단일 vSphere 클러스터 하나에 감독자를 배포하면 vSphere 영역이 자동으로 생성되어 클러스터에 매핑되거나, 영역에 이미 매핑된 클러스터를 사용할 수 있습니다. 자세한 내용은 감독자 아키텍처감독자 영역 및 클러스터 배포 항목을 참조하십시오.

Tanzu Kubernetes Grid 클러스터란?

Tanzu Kubernetes Grid 클러스터는 VMware에서 구축, 서명 및 지원하는 Kubernetes의 전체 배포입니다. Tanzu Kubernetes Grid를 사용하여 감독자에서 업스트림 Tanzu Kubernetes Grid 클러스터를 프로비저닝하고 운영할 수 있습니다.

Tanzu Kubernetes Grid에서 프로비저닝된 Tanzu Kubernetes Grid 클러스터에는 다음과 같은 특성이 있습니다.
TKG 클러스터 특성(왼쪽에서 시작하여 오른쪽으로) - 개인 맞춤화됨, 긴밀하게 통합됨, 운영 준비 완료, 완전히 지원됨 Kubernetes에서 관리됨입니다.
  • Kubernetes의 개인 맞춤화된 설치. Tanzu Kubernetes GridTanzu Kubernetes Grid 클러스터 프로비저닝을 위해 vSphere에 최적화된 기본값을 제공합니다. Tanzu Kubernetes Grid를 사용하면 일반적으로 엔터프라이즈급 Kubernetes 클러스터를 배포하고 실행하는 데 필요한 시간과 노력을 줄일 수 있습니다.
  • vSphere 인프라와 통합. Tanzu Kubernetes Grid 클러스터는 스토리지, 네트워킹 및 인증을 포함하여 vSphere SDDC 스택과 통합됩니다. 또한 Tanzu Kubernetes Grid 클러스터는 vSphere 클러스터에 매핑되는 감독자에 구축됩니다. 긴밀하게 통합되어 있기 때문에 Tanzu Kubernetes Grid 클러스터 실행에는 일관적인 제품 경험이 가능합니다.
  • 즉시 사용 가능. Tanzu Kubernetes Grid는 운영 준비가 된 Tanzu Kubernetes Grid 클러스터를 프로비저닝합니다. 추가 구성을 수행하지 않아도 운영 워크로드를 실행할 수 있습니다. 또한 가용성을 보장하고 Kubernetes 소프트웨어 업그레이드 롤링을 허용하고 서로 다른 버전의 Kubernetes를 별도의 클러스터에 실행할 수 있습니다.
  • Kubernetes 워크로드를 위한 고가용성. 3개의 vSphere 영역 감독자에 배포된 Tanzu Kubernetes Grid 클러스터는 vSphere 클러스터 수준에서 발생하는 장애로부터 보호됩니다. Tanzu Kubernetes Grid 클러스터의 워크로드 및 제어부 노드는 세 개의 vSphere 영역 모두에 분산되므로 내부에서 실행되는 Kubernetes 워크로드의 가용성을 높일 수 있습니다. 1영역 감독자에서 실행되는 Tanzu Kubernetes Grid 클러스터는 vSphere HA를 통해 ESXi 호스트 수준에서 발생하는 장애로부터 보호됩니다.
  • VMware에서 완전히 지원함. Tanzu Kubernetes Grid 클러스터는 VMware의 오픈 소스 Linux 기반을 사용하며 vSphere 인프라에 배포되고 ESXi 호스트에서 실행됩니다. 하이퍼바이저에서 Kubernetes 클러스터에 이르기까지 스택의 계층에 문제가 발생하는 경우 VMware에 문의하면 그 해답을 찾을 수 있습니다.
  • Kubernetes에서 관리됨. Tanzu Kubernetes Grid 클러스터는 자체적으로 Kubernetes 클러스터인 감독자 위에 구축됩니다. Tanzu Kubernetes Grid 클러스터는 사용자 지정 리소스를 사용하여 vSphere 네임스페이스에 정의됩니다. 익숙한 kubectl 명령 및 Tanzu CLI를 사용하여 셀프 서비스 방식으로 Tanzu Kubernetes Grid 클러스터를 프로비저닝합니다. 도구체인 간에는 일관성이 있습니다. 클러스터를 프로비저닝하든 워크로드를 배포하든 동일한 명령, 익숙한 YAML 및 공통 워크플로를 사용합니다.

자세한 정보는 Tanzu Kubernetes Grid 아키텍처 및 구성 요소 및 "vSphere IaaS 제어부에서 TKG 서비스 사용" 의 내용을 참조하십시오.

vSphere 포드란?

vSphere IaaS control plane에는 Kubernetes 포드와 동일한 vSphere 포드라는 구조가 도입되었습니다. vSphere 포드는 하나 이상의 Linux 컨테이너를 실행하는 설치 공간이 작은 VM입니다. 각 vSphere 포드는 수용하는 워크로드 맞게 크기가 정확하게 조정되며 해당 워크로드에 대한 명시적 리소스 예약이 있습니다. 워크로드를 실행하는 데 필요한 정확한 양의 스토리지, 메모리 및 CPU 리소스를 할당합니다. vSphere 포드NSX를 사용하여 네트워킹 스택으로 구성된 감독자에서만 지원됩니다.

그림 3. vSphere 포드
vSphere 포드 상자가 두 개 포함된 ESXi 호스트입니다. 각 vSphere 포드에는 내부에서 실행되는 컨테이너, Linux 커널, 메모리, CPU 및 스토리지 리소스가 있습니다.
vSphere 포드vCenter Server의 개체이며 워크로드에 대해 다음 기능을 사용할 수 있습니다.
  • 강력한 격리. vSphere 포드는 가상 시스템과 동일한 방식으로 격리됩니다. 각 vSphere 포드에는 Photon OS에 사용되는 커널을 기반으로 하는 고유한 Linux 커널이 있습니다. vSphere 포드에서는 베어메탈 구성처럼 많은 컨테이너가 커널을 공유하는 것이 아니라, 각 컨테이너에 고유한 Linux 커널이 있습니다.
  • 리소스 관리. vSphere DRS는 감독자에서 vSphere 포드의 배치를 처리합니다.
  • 고성능. vSphere 포드는 VM과 동일한 수준의 리소스 격리를 제공하며, 빠른 시작 시간과 낮은 컨테이너 오버헤드를 유지하면서 방해가 되는 인접 네트워크 문제를 제거합니다.
  • 진단. vSphere 관리자는 vSphere에서 워크로드에 제공되는 모든 모니터링 및 검사 도구를 사용할 수 있습니다.
vSphere 포드는 OCI(Open Container Initiative)와 호환되며, 컨테이너가 OCI와 호환되는 한 모든 운영 체제에서 컨테이너를 실행할 수 있습니다.
그림 4. vSphere 포드 네트워킹 및 스토리지
컨테이너, 컨테이너 엔진 및 포드 엔진이 내부에 포함된 vSphere 포드입니다. 포드는 컨테이너 이미지, 스토리지, NSX 스위치, spherelet 및 hostd에 연결됩니다.

vSphere 포드는 저장된 개체에 따라, 사용 후 삭제되는 VMDK, 영구 볼륨 VMDK 및 컨테이너 이미지 VMDK라는 세 가지 유형의 스토리지를 사용합니다. vSphere 관리자는 감독자 수준에서 컨테이너 이미지 캐시 및 사용 후 삭제되는 VMDK 배치에 대한 스토리지 정책을 구성합니다. 또한 vSphere 네임스페이스 수준에서 영구 볼륨 배치에 대한 스토리지 정책을 구성합니다. 워크로드에 대한 영구 스토리지에서 vSphere IaaS control plane의 스토리지 요구 사항 및 개념에 대한 자세한 내용을 참조하십시오.

네트워킹을 위해 vSphere 포드Tanzu Kubernetes Grid 클러스터의 VM은 NSX에서 제공하는 토폴로지를 사용합니다. 자세한 내용은 감독자 네트워킹 항목을 참조하십시오.

Spherelet은 각 호스트에서 생성되는 추가 프로세스입니다. kubelet은 기본적으로 ESXi로 이식되고 ESXi 호스트가 Kubernetes 클러스터의 일부가 되도록 허용합니다.

감독자에서 vSphere 포드를 사용하는 방법에 대한 자세한 내용은 "vSphere IaaS 제어부 서비스 및 워크로드" 설명서에서 vSphere 포드에 워크로드 배포를 참조하십시오.

vSphere IaaS control plane에서 가상 시스템 사용

vSphere IaaS control plane는 DevOps 엔지니어가 공통의 공유 Kubernetes 환경에서 컨테이너뿐 아니라 VM을 배포하고 실행할 수 있는 VM 서비스 기능을 제공합니다. 컨테이너와 VM 둘 다 동일한 vSphere 네임스페이스 리소스를 공유하며 단일 vSphere IaaS control plane 인터페이스를 통해 관리할 수 있습니다.

VM 서비스는 Kubernetes를 사용하지만 쉽게 컨테이너화할 수 없는 기존 VM 기반 워크로드가 있는 DevOps 팀의 요구 사항을 해결합니다. 또한 컨테이너 플랫폼과 함께 Kubernetes가 아닌 플랫폼 관리의 오버헤드를 줄이는 데에도 도움이 됩니다. Kubernetes 플랫폼에서 컨테이너와 VM을 실행하는 경우 DevOps팀은 워크로드 공간을 하나의 플랫폼으로 통합할 수 있습니다.

참고: VM 서비스는 독립형 VM 외에도 Tanzu Kubernetes Grid 클러스터를 구성하는 VM을 관리합니다. 클러스터에 대한 자세한 내용은 " vSphere IaaS 제어부에서 TKG 서비스 사용" 설명서를 참조하십시오.
Tanzu Kubernetes Grid 클러스터를 구성하는 VM 및 독립형 VM을 관리하는 감독자 구성 요소로서의 VM 서비스를 보여주는 그림입니다.

VM 서비스를 통해 배포된 각 VM은 vSphere IaaS control plane 인프라를 기반으로 자체 운영 체제를 포함한 모든 구성 요소를 실행하는 완전한 시스템으로 작동합니다. VM은 감독자가 제공하는 네트워킹 및 스토리지에 액세스할 수 있으며 표준 Kubernetes kubectl 명령을 사용하여 관리됩니다. VM은 Kubernetes 환경에서 다른 VM 또는 워크로드의 영향을 받지 않는 완전히 분리된 시스템으로 실행됩니다.

Kubernetes 플랫폼에서 가상 시스템을 사용하는 경우

일반적으로 컨테이너 또는 VM에서 워크로드를 실행하기로 결정하는 경우는 비즈니스 요구와 목표에 따라 다릅니다. VM을 사용하는 이유 중에는 다음과 같은 경우가 있습니다.

  • 애플리케이션을 컨테이너화할 수 없습니다.
  • 애플리케이션이 사용자 지정 커널 또는 사용자 지정 운영 체제용으로 설계되었습니다.
  • 애플리케이션이 VM에서 실행하는 데 더 적합합니다.
  • 일관된 Kubernetes 환경을 유지하고 오버헤드를 방지하려고 합니다. Kubernetes가 아닌 플랫폼 및 컨테이너 플랫폼에 대해 별도의 인프라를 실행하는 대신 해당 스택을 통합하고 익숙한 kubectl 명령으로 관리할 있습니다.

감독자에서 독립형 가상 시스템을 배포하고 관리하는 방법에 대한 자세한 내용은 "vSphere IaaS 제어부 서비스 및 워크로드" 설명서의 가상 시스템 배포 및 관리를 참조하십시오.

vSphere IaaS control plane감독자 서비스

감독자 서비스는 IaaS(Infrastructure-as-a-Service) 구성 요소 및 긴밀하게 통합된 ISV(독립 소프트웨어 벤더) 서비스를 개발자에게 제공하는 vSphere 인증 Kubernetes 운영자입니다. 감독자 서비스를 Kubernetes 워크로드에서 사용할 수 있도록 vSphere IaaS control plane 환경에서 설치하고 관리할 수 있습니다. 감독자 서비스감독자에 설치되면 DevOps 엔지니어는 서비스 API 를 사용하여 사용자 네임스페이스의 감독자에 인스턴스를 생성할 수 있습니다. 이러한 인스턴스를 vSphere 포드Tanzu Kubernetes Grid 클러스터에서 사용할 수 있습니다.

지원되는 감독자 서비스에 대해 자세한 내용 및 해당 서비스 YAML 파일을 다운로드하는 방법은 http://vmware.com/go/supervisor-service에서 참조하십시오.

감독자 서비스를 사용하는 방법에 대한 자세한 내용은 "vSphere IaaS 제어부 서비스 및 워크로드" 설명서에서 감독자 서비스 관리를 참조하십시오.