【くろすぷれーん】

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(平面=管理レイヤー)を提供するよ
← 用語集にもどる