【くろすぷれーん】
Crossplane とは?
最終更新:
💡 「kubectl」でクラウドリソースを作成・管理する
Kubernetesを土台に、クラウドのリソースなどを管理するコントロールプレーンを作るためのオープンソースのフレームワーク。インフラをKubernetesのリソースとして宣言的に管理する。
📌 このページのポイント
- クラウドのリソース(例:AWSのRDS)を、Kubernetesのカスタムリソース「マネージドリソース」として定義する
- kubectlなど、Kubernetes向けの道具でインフラを扱える
- Composition(合成)で、複数のリソースをまとめた独自のAPIを作れる
- CNCFのGraduatedプロジェクト(2025年10月28日に昇格)
Terraformと何が違うの?
Terraformは、設定ファイルを書き、計画(plan)を確認して、適用(apply)するという流れで使うツールで、実際のリソースとの対応を「状態(state)」として保存する。CrossplaneはKubernetes上で動き続けるコントロールプレーンで、リソースを継続的に見張り、宣言した状態からずれたら自動で直すんだ。Kubernetesがコンテナを管理するのと同じ考え方で、クラウドリソースを管理するんだよ
どういうメリットがある?
①アプリもインフラもKubernetesのリソースとして同じやり方で扱える、②Compositionで「データベース一式」のような自分たち専用のAPIを作れる、③Crossplaneの外で変更されても、宣言した内容で上書きして元に戻す、の3つが大きいよ。③は便利な反面、クラウドの管理画面で直接直した設定も戻されるから、変更は必ずマニフェスト側で行うルールになるんだ
Compositionって何?
導入すべきケースは?
Kubernetesをすでに使っていて、インフラも同じやり方で管理したいチームや、開発者向けの社内プラットフォームを作りたいチームに向いているよ。公式ドキュメントも、プラットフォームエンジニアリングのためのフレームワークだと説明している。逆にKubernetesを運用していないなら、Crossplaneのためにクラスターを持つことになる。Terraformなどで困っていないなら、無理に乗り換える必要はないね
まとめ:ざっくりこれだけ覚えればOK!
「Crossplane」って出てきたら「KubernetesのAPIでクラウドインフラを管理するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Crossplane」 = クロスプレーン(製品名)
💬 公式ドキュメントは、Crossplaneを「コントロールプレーンを作るためのフレームワーク」と説明しているよ。名前の由来についての公式の説明は確認できていないんだ