【くろすぷれーん】

Crossplane とは?

💡 「kubectl」でクラウドリソースを作成・管理する
📌 このページのポイント
Crossplane:K8s APIでマルチクラウド管理 Kubernetes API / YAML kubectl apply Crossplane リソース定義を クラウドAPIに変換 Provider設定 AWS S3, RDS, EKS Azure Blob, SQL, AKS GCP GCS, CloudSQL K8sのマニフェストだけで複数クラウドのリソースを宣言的に管理
Crossplaneのイメージ
ひよこ ひよこ

Terraformと何が違うの?

ペンギン先生 ペンギン先生

Terraformはterraform applyコマンドで実行するCLIツール。CrossplaneはKubernetes上で動くコントローラーで、常にクラウドリソースの状態を監視して宣言した状態に収束させる(Reconciliation Loop)。Kubernetesコンテナを管理するのと同じ仕組みでクラウドリソースを管理するんだよ

ひよこ ひよこ

どういうメリットがある?

ペンギン先生 ペンギン先生

①kubectlで統一的にアプリとインフラを管理できる、②GitOpsArgo CD等)でインフラもCI/CDパイプラインに組み込める、③Compositionで「データベースVPC+セキュリティグループ」をまとめた社内プラットフォームAPIを作れる、④ドリフト検出と自動修復が標準装備だよ

ひよこ ひよこ

Compositionって何?

ペンギン先生 ペンギン先生

複数のクラウドリソースをまとめて1つの抽象リソースとして定義する機能。例えば「PostgreSQLDatabase」というカスタムAPIを作って、裏ではRDSインスタンス+サブネットグループ+セキュリティグループ+パラメータグループが自動作成される。開発チームは詳細を知らずにkubectl apply -f db.yamlだけでDB環境が整うんだよ

ひよこ ひよこ

導入すべきケースは?

ペンギン先生 ペンギン先生

Kubernetesを既に使っていて、インフラもKubernetesエコシステムに統一したい場合。プラットフォームエンジニアリングで開発者向けの内部プラットフォームを構築するのに最適。ただしKubernetesに詳しいチームが前提で、学習コストは高い。Terraformで十分な場合はあえて乗り換える必要はないよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Crossplane」って出てきたら「KubernetesAPIでクラウドインフラを管理するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Crossplane」 = クロスプレーン(交差面)
💬 複数のクラウドをCross(横断)してPlane(平面=管理レイヤー)を提供するよ
← 用語集にもどる