본문 바로가기
INFRA/Operation

CrossPlane에 대해

by BTC_기범 2023. 6. 7.

안녕하세요.

이쁜이와 멋쟁이의 BTC_기범입니다.

오늘은 CrossPlane에 대해서 알아보도록 하겠습니다.


CrossPlane이란?

여러 종류의 리소스의 API를 필요에 따라 정리하여 하나의 API로 묶어 사용할 수 있도록 도움을 주는 도구입니다.

CrossPlane을 사용할 경우 각 Data plane에 따로 API를 요청할 필요 없이 CrossPlane Control plane을 향한 한 번의 요청을 통해서 각 Data plane(조작할 리소스의 provider를 칭하는 말입니다.)을 제어할 수 있습니다.

또한 CrossPlane은 각 클라우드에서 필요한 기능을 요약해서 사용자가 사용하지 않는 기능에 대해서는 노출되지 않도록 사용자와 Data plane 사이에서 필터링을 해줍니다.

CrossPlane Control plane 작동 방식

K8s과 같은 선언적 방식으로 작동합니다.

선언적 방식을 위해 리소스의 상태를 확인 하기 위해서 Closed-loop Control을 사용합니다.

컨트롤러가 담당하는 단일 종류의 API리소스를 구독하고 원하는 상태의 변경을 감시합니다.

상태 변경을 위해 컨트롤러는 다음 과정을 진행합니다.

  1. API에서 원하는 상태를 읽습니다.
  2. API가 지목하는 리소스의 실제 상태를 확인합니다.
  3. 실제 상태가 원하는 상태와 다른지 확인합니다.
  4. 항목을 생성, 업데이트 또는 삭제를 통해 실제 상태를 변경하여 원하는 상태로 만듭니다.

CrossPlane 요소

개요

  1. Data plane을 구성할 클라우드 기본 형식을 선택합니다.
  2. 소비자가 데이터 편면을 제어하는데 사용할 API 추상화를 정의합니다.
  3. CrossPlane에 소비자가 정의된 API를 호출할 때 선택한 클라우드 프리미티브를 구성하는 방법을 가르칩니다.

Provider 종류

Data plane의 종류에 따라 사용되는 API를 제공합니다.

제공되는 이 API를 managed resources(MRs)라고도 말합니다.

(공식버전으로 제공하고 있는 Provider 5가지)

  1. provider-aws
  2. provider-azure
  3. provider-azuread
  4. provider-gcp
  5. provider-terraform

Control plane API를 추상화 : Claim

Claim이란 사용자가 원하는 데이터 평면 상태를 지정하기 위해 호출하는 상위 수준 API 추상화입니다. Claim은 하나 이상의 MR로 구성됩니다.

Claim의 Data plane 조정 과정

  1. 컨트롤 플레인 소비자는 원하는 상태를 지정하기 위해 클레임 API 요청을 합니다.
  2. 클레임의 컨트롤러는 MR API에 요청하여 원하는 새 상태를 조정합니다.
  3. MR 컨트롤러는 데이터 플레인을 제어하여 MR API 요청을 조정합니다.

Claim 정의와 생성

  1. XRD(Composite resource definition)를 생성합니다.
    • 새 Claim의 종류(유형)와 스키마(구조 및 지원되는 필드)를 정의합니다.
    • CamelCase를 사용합니다.
  2. 새로운 종류의 클레임에 대한 새 API 엔드포인트를 추가합니다.
  3. 클레임 컨트롤러가 XR을 생성합니다.
  4. XR 컨트롤러가 MR을 생성합니다.

Private API 추상화

클레임이 아닌 XR만 정의하는 XRD을 통해서 Controll plane 사용자가 직접 사용할 수 없는 Private API 추상화를 정의할 수 있습니다.

또한 Private API 추상화는 XR을 계층화하는데 사용할 수 있습니다.

Crossplane의 API가 호출될 때 수행하는 작업 설정 : Composition

Composition 종류

  1. P&T Composition(P&T : 패치 및 변환) 관리되는 리소스 템플릿의 기본목록을 지정합니다. 지정된 기본 리소스는 Claim에서 복사된 값으로 패치할 수 있습니다.
  2. Composition FunctionsClaim의 XR은 이러한 컨테이너에 전달되며, 이 컨테이너는 Crossplane이 수정할 수 있도록 관리되는 리소스를 반환합니다.
  3. OCI(Open Container Initiative) 컨테이너의 파이프라인을 지정합니다.

Corssplane의 Control plane 구성 패키지

종류

  1. 공급자 패키지 공급자의 모든 MR에 대한 API 엔드포인트를 생성하고 컨트롤러를 설치하여 해당 MR을 데이터 플레인과 조정합니다.
  2. 구성 패키지
  3. 컨트롤 플레인에 새로운 기능을 구성할 때 사용됩니다. 일반적으로 하나 이상의 새로운 종류의 클레임 API를 제공하도록 컨트롤 플레인을 구성합니다.

참고 : AWS Quickstart · Crossplane v1.12  


오늘은 CrossPlane에 대해서 알아보았습니다.

CrossPlane을 활용한다면 여러 리소스에 나눠져있는 리소스에서

주기적으로 진행하는 작업을 단일 API로 처리할 수 있다는 장점에 끌려 포스팅을 진행하게 되었습니다.

CrossPlane을 활용하여 기계적인 업무에서 자유로워 질 수 있다면 좋겠습니다.

다음에 또 뵈요~

댓글