본문 바로가기
Infra2026년 5월 22일4분 읽기

Crossplane 2 vs Pulumi 4 — 팀 플랫폼 IaC 결정 가이드

YS
김영삼
조회 373
Crossplane 2 vs Pulumi 4 — 팀 플랫폼 IaC 결정 가이드

핵심 요약

플랫폼 팀이 사내 셀프 서비스를 만들려고 할 때 Crossplane은 K8s 네이티브, Pulumi는 범용 언어 기반. Crossplane 2의 Composition v2와 Pulumi 4의 새 어셈블리 모델 모두 큰 진화. 인프라가 K8s 중심이면 Crossplane, AWS·GCP·SaaS가 모두 섞이면 Pulumi.

1. 모델 차이

Crossplane 2Pulumi 4
핵심K8s CRD범용 SDK
저장소etcdstate backend
개발자 언어YAML/KCLPython·TS·Go·C#
GitOps 친화매우 강함가능(Pulumi YAML)

2. Crossplane 2 — Composition v2

apiVersion: apiextensions.crossplane.io/v2
kind: Composition
spec:
  mode: Pipeline
  pipeline:
  - functionRef: { name: function-go-templating }
    input:
      template: |
        apiVersion: rds.aws.upbound.io/v1beta1
        kind: Instance
        ...

Composition을 Go template·KCL·Starlark 등 함수로 작성. 기존 YAML patch 모델 대비 표현력 대폭 강화.

3. Pulumi 4 — 새 어셈블리

import * as aws from "@pulumi/aws";
import * as k8s from "@pulumi/kubernetes";

const cluster = new aws.eks.Cluster("prod", {...});
new k8s.helm.v4.Chart("monitoring", {
  chart: "kube-prometheus-stack",
  values: { ... },
}, { provider: cluster.provider });

v4의 helm v4 Chart는 진짜 helm install/upgrade를 수행, drift 검출 정확.

4. 셀프 서비스 — 사용자 경험

Crossplane: 개발자가 kubectl apply -f my-postgres.yaml 한 번이면 클라우드 RDS 프로비저닝. K8s 학습한 사용자에 친숙. Pulumi: PR로 코드 변경 → CI에서 preview → 머지 → 적용. 사용자가 IaC 코드를 직접 다룰 때 자연스럽다.

5. 다중 클라우드

두 도구 모두 잘 지원. Crossplane은 Provider 패키지(Upbound official) 품질이 AWS/GCP/Azure는 상, 나머지는 가변. Pulumi는 Terraform 프로바이더를 그대로 변환해 사용해 커버리지가 압도적.

6. 비용·상태 관리

Crossplane은 etcd에 모든 상태. 대규모 리소스(1만+)에서 etcd 압박 — sharding/외부 backend 검토. Pulumi는 S3/Pulumi Cloud로 state 분리, 상태 충돌 락 자동.

7. 결정 가이드

  • 플랫폼이 K8s 중심, 개발자에 셀프 서비스 → Crossplane 2
  • AWS+SaaS 다 혼재, 코드로 관리 → Pulumi 4
  • Terraform 자산 큼 → Pulumi 4(import 가능)
  • Argo CD/Flux 사용 중 → Crossplane 2 자연스러움

자주 묻는 질문

Q. Terraform/OpenTofu와 비교? 둘은 IaC 표준 출발점, Crossplane/Pulumi는 플랫폼/프로그램 친화. 셀프 서비스가 목적이면 Crossplane/Pulumi 우세.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록