DevOps 팀은 Supervisor 클러스터 Kubernetes API에 선언적 yaml 규격을 제출하여 TKG(Tanzu Kubernetes Grid Service)를 통해 Kubernetes 클러스터에 온디맨드 방식으로 액세스할 수 있습니다. TKG 서비스는 이 규격을 TKC(Tanzu Kubernetes Grid Cluster)를 형성하기 위해 함께 결합된 Kubernetes 노드로 구성된 VM 집합으로 조정합니다. 클러스터의 구성은 Supervisor 클러스터에서 생성된 사용자 지정 리소스, 해당 리소스에 대해 작동하는 사용자 지정 컨트롤러 및 클러스터의 기본 컴퓨팅, 네트워킹 및 스토리지를 구현하는 제공자 인터페이스 간의 상당히 복잡한 상호 작용 집합입니다. 일과가 Kubernetes가 아닌 VI 관리자에게는 장애 정보를 어디서 찾아야 하고 어떻게 해석해야 할지 벅찰 수 있습니다. TKG는 DevOps가 자체 스핀업할 수 있는 클러스터(TanzuKubernetesGrid 클러스터 또는 TKC)를 라이프사이클에 관리하기 위해 Supervisor Cluster를 사용하므로 문제 해결 시 Supervisor 클러스터와 이를 지원하는 구성에 대한 이해가 필요합니다.

Kubernetes API

이 API는 Kubernetes 제어 영역의 핵심이며, DevOps가 내장 Kubernetes 개체와 상호 작용하는 데 사용할 수 있는 REST API를 제공합니다. 배포, 포드, 서비스, 구성 맵 또는 암호와 같은 이러한 기본 제공 개체는 개체의 실제 상태가 개체 규격에 정의된 원하는 상태와 동기화되도록 하는 역할을 하는 컨트롤러와 연결됩니다. Kubernetes 개체 작업에 대한 자세한 내용은 여기에서 확인할 수 있습니다. API는 표준 개체와의 상호 작용 이상의 기능을 제공합니다. 확장 가능합니다. 개발자는 API에서 기본 Kubernetes 배포에서 사용할 수 없는 사용자 지정을 제공하는 새 끝점을 정의하여 사용자 지정 리소스를 생성할 수 있습니다. 일단 리소스가 설치되면 사용자는 기본 제공 리소스와 상호 작용하는 것과 동일한 방식으로 kubectl을 통해 리소스와 상호 작용합니다. 사용자 지정 리소스 자체는 특별히 유용하지 않습니다. 제출된 사양에서 얻은 구조화된 정보를 저장합니다. 이러한 사용자 지정 리소스를 흥미로운 리소스로 조정하는 사용자 지정 컨트롤러를 작성할 수 있습니다. 예를 들어 VMware VM 서비스는 가상 시스템이라는 Custom Resource(CRD)를 정의합니다. 사용자가 KIND VirtualMachine을 사용하여 API에 yaml 규격을 제출할 수 있으며 API가 규격을 생성합니다. VirtualMachine 개체 생성을 감시하고 vSphere에 API 호출을 수행하여 해당 리소스를 사용자 지정 리소스 개체에 정의된 구성과 함께 실제 VM으로 조정하는 사용자 지정 컨트롤러가 있습니다. 여기에서 Kubernetes API의 사용자 지정 리소스에 대한 보다 포괄적인 소개를 볼 수 있습니다.

Cluster API

Cluster API는 Kubernetes 클러스터의 라이프사이클 관리에 선언적 API를 제공하는 오픈 소스 Kubernetes 하위 프로젝트입니다. 즉, DevOps는 애플리케이션 워크로드 패턴을 사용하여 Kubernetes 클러스터를 구현하고 관리할 수 있습니다. 또한 클러스터 API는 클러스터를 지원하는 기본 인프라의 플러그 앤 플레이를 허용하는 제공자 인터페이스 집합을 정의합니다. 가상 시스템, 네트워크, 스토리지 또는 로드 밸런싱 장치와 같은 것들은 사양을 통해 정의되고 개발자가 선호하는 플랫폼에서 조정될 수 있습니다. TKG(Tanzu Kubernetes Grid) 서비스는 vSphere 및 기타 클라우드 플랫폼을 프로바이더로 지원하는 Cluster API를 구현한 서비스입니다. 클러스터 API 구현의 핵심은 관리 클러스터라고 하는 기존 Kubernetes 클러스터를 보유해야 한다는 것입니다. 관리 클러스터에는 인스턴스화된 TKC 클러스터를 조정하는 데 사용되는 모든 CRD(사용자 지정 리소스 정의)와 컨트롤러가 포함되어 있습니다. Supervisor Cluster는 TKG 서비스를 위한 Cluster API 관리 클러스터입니다. 클러스터 API 프로젝트에 대한 자세한 내용은 여기를 참조하십시오.

Tanzu Kubernetes Grid Service

새 클러스터의 구현은 TKC(TanzuKubernetes Cluster) 사용자 지정 리소스 및 TKG 컨트롤러에서 시작됩니다. DevOps 사용자는 TKC 규격을 제출하고 TKG 컨트롤러는 클러스터 API에 정의된 사용자 지정 리소스에 대한 규격을 생성합니다. 이러한 리소스는 적절하게 구성된 VM을 생성하고 OS 구성을 클러스터 노드에 푸시하여 Kubernetes 클러스터 노드로 설정하는 데 필요한 사양으로 조정됩니다. 이때 중요한 것은 사양이 TKC 리소스에서 적절한 하위 수준 리소스로 푸시다운되고 하위 수준 리소스는 스택 백업의 요약 형태로 상태 정보를 표면화한다는 것입니다. 따라서 문제 해결은 TKC 리소스에서 시작하여 하위 레벨의 리소스로 이동하여 보다 자세한 내용을 확인할 수 있습니다. 이러한 리소스와 클러스터 생성 단계에 대한 개요는 이 시리즈의 파트 2에 나와 있습니다.

자세한 내용과 작동 방식을 보려면 Tanzu Kubernetes 그리드 문제 해결 딥 다이브 시리즈의 첫 번째 비디오를 확인하십시오.

출처 : https://core.vmware.com/blog/tanzu-kubernetes-grid-service-troubleshooting-deep-dive-part-1
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like