[TCE] Introduction : Architecture

Tanzu Community Edition은 Kubernetes 클러스터의 부트스트래핑 및 관리를 가능하게 하는 다양한 구성 요소와 위에서 실행되는 다양한 플랫폼 서비스로 구성되어 있습니다. 이 페이지에는 다음과 같은 아키텍처가 자세히 나와 있습니다.

  • Tanzu CLI
  • Managed Clusters
  • Unmanaged Clusters
  • Package Management

Tanzu CLI

tanzu CLI 명령은 여러 하위 명령을 표시합니다.

$ tanzu

Tanzu CLI

Usage:
  tanzu [command]

Available command groups:

  Admin
    builder                 Build Tanzu components
    codegen                 Tanzu code generation tool

  Run
    cluster                 Kubernetes cluster operations
    conformance             Run Sonobuoy conformance tests against clusters
    diagnostics             Cluster diagnostics
    kubernetes-release      Kubernetes release operations
    management-cluster      Kubernetes management cluster operations
    package                 Tanzu package management
    secret                  Tanzu secret management
    standalone-cluster      (!!! deprecated - see unmanaged-cluster !!!)
    unmanaged-cluster       Deploy and manage single-node, static, Tanzu clusters.
  System
    completion              Output shell completion code
    config                  Configuration for the CLI
    init                    Initialize the CLI
    login                   Login to the platform
    plugin                  Manage CLI plugins
    update                  Update the CLI
    version                 Version information


Flags:
  -h, --help   help for tanzu

Use "tanzu [command] --help" for more information about a command.

Not logged in

각 하위 명령은 Tanzu Community Edition에 대한 기능을 제공합니다. 이 기능은 클러스터 생성부터 클러스터에서 실행 중인 소프트웨어 관리에 이르기까지 다양합니다. tanzu의 하위 명령은 클라이언트 시스템에서 호스팅되는 독립적인 정적 바이너리입니다. 따라서 플러그인이 서로 독립적으로 추가, 제거 및 업데이트될 수 있는 플러그형 아키텍처를 사용할 수 있습니다. tanzu 명령은 머신의 (실행) 경로에 설치될 것으로 예상됩니다. 각 하위 명령(바이너리)은 ${XDG_DATA_HOME}/tanzu-cli 에 설치되어야 합니다. 이 관계는 아래에 설명되어 있습니다.

Tanzu Community Edition은 Tanzu CLI 및 선택된 플러그인 세트와 함께 제공됩니다. 일부 플러그인은 vmware-tanzu/community-edition 저장소에 있는 반면 다른 플러그인은 vmware-tanzu/tanzu-framework에 있을 수 있습니다. vmware-tanzu/tanzu-framework에 상주하는 플러그인은 여러 Tanzu Edition에서 사용할 수 있습니다. vmware-tanzu/community-edition에 있는 플러그인은 Tanzu Community Edition에서만 사용됩니다. vmware-tanzu/community-edition의 플러그인은 vmware-tanznu/tanzu-framework로 승격(이동)될 수 있습니다. 이러한 움직임은 Tanzu Community Edition 사용자에게 영향을 미치지 않으며 플러그인에 대한 기여자에게만 영향을 미칩니다. 또한 플러그인은 vmware-tanzu/community-edition 및 vmware-tanzu/tanzu-framework 이외의 저장소에 상주할 수 있습니다.

Tanzu Cluster

tanzu cluster 명령을 사용하여 배치할 수 있는 클러스터에는 두 가지 유형이 있습니다.

Managed Cluster

Managed Cluster는 Tanzu 관리 클러스터(원래는 tanzu management-cluster 를 사용하여 배치됨)에 의해 배포되고 관리됩니다. 이 모델은 Tanzu 생태계의 클러스터를 위한 기본 배포 모델이며 프로덕션 시나리오에 권장됩니다. 관리되는 클러스터를 부트스트랩하려면 먼저 관리 클러스터가 필요합니다. 이 작업은 tanzu management-cluster create 명령을 사용하여 수행됩니다. 이 명령을 실행하면 부트스트랩 클러스터가 로컬로 생성된 다음 관리 클러스터를 생성하는 데 사용됩니다. 다음 다이어그램은 이 흐름을 보여줍니다.

관리 클러스터가 생성되면 부트스트랩 클러스터가 모든 관리 개체를 관리 클러스터로 이동(일명 피벗)합니다. 이때부터 관리 클러스터는 자체 및 사용자가 생성한 모든 새 클러스터를 관리합니다. 관리 클러스터에서 관리되는 이러한 새 클러스터를 워크로드 클러스터(Workload Cluster)라고 합니다. 다음 다이어그램은 이 관계를 종단 간으로 보여줍니다.

Unmanaged Cluster

관리되지 않는 클러스터는 개발/테스트 환경에 적합한 단일 노드, 로컬 워크스테이션 클러스터를 제공합니다. 최소한의 로컬 리소스가 필요하고 배포 속도가 빠릅니다. 여러 클러스터를 실행할 수 있습니다. 기본 Tanzu Community Edition 패키지 저장소는 단독 실행 클러스터를 배포할 때 자동으로 설치됩니다.

패키지 관리

Tanzu Community Edition은 Tanzu CLI를 통해 사용자에게 패키지 관리를 제공합니다. 패키지 관리는 Tanzu 클러스터에서 실행되는 소프트웨어의 검색, 설치, 업그레이드 및 삭제로 정의됩니다. 각 패키지는 카벨 도구를 사용하여 우리의 포장 과정을 따라 제작됩니다. 패키지는 패키지 리포지토리라고 하는 단일 번들에 저장되며 OCI 호환 레지스트리에 푸시됩니다. Tanzu 클러스터에서 kapp 컨트롤러는 패키지 리포지토리를 지속적으로 감시합니다. 클러스터에 이 패키지 리포지토리에 대해 알리면(예: tanzu package repository 명령을 통해), kapp-controller는 해당 저장소를 풀다운하고 모든 패키지를 클러스터에서 사용할 수 있도록 할 수 있습니다. 이 관계는 다음과 같습니다.

클러스터에서 사용할 수 있는 패키지를 통해 tanzu 사용자는 다양한 패키지를 설치할 수 있습니다. 클러스터 내에 PackageInstall 리소스가 생성되고 kapp-controller가 패키지를 다운로드하고 클러스터에 소프트웨어를 설치하도록 지시합니다. 이 흐름은 아래와 같습니다.

참고: 관리되지 않는 클러스터를 배포할 경우 기본 Tanzu Community Edition 패키지 리포지토리 ‘tce-repo’가 자동으로 설치됩니다.

출처 : https://tanzucommunityedition.io/docs/latest/architecture/
답글 남기기

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

You May Also Like
Read More

[TCE] Designs – Package Process

이 문서에서는 Tanzu Community Edition에서 사용할 패키지 작성에 대해 설명합니다. 패키지가 구현됨에 따라 시간이 지남에 따라 발전하는 설계…