Crossplane が CNCF「Graduated」へ — これからの IaC と制御プレーンの未来を考える
はじめに
2025年11月、Crossplane が Cloud Native Computing Foundation(CNCF)の “Graduated(卒業)プロジェクト” に認定されました。
これは「Crossplane が成熟し、本番環境で安心して使えるレベルに到達した」という重要なマイルストーンです。
Crossplane は、Kubernetes を拡張してクラウドリソース(例:S3 バケットや CloudSQL)を宣言的に管理できるようにする OSS です。
Terraform のような IaC ツールと似ていますが、Kubernetes の API や宣言モデルを活用するという点が特徴的です。
この記事では次の内容を紹介します👇
- CNCFとCrossplaneの位置づけ
- CNCFにおける “Graduation” の意味
- Crossplaneの基本的な使い方(簡単なデモつき)
- Terraformとの違い
- さらに学ぶためのおすすめリソース
CNCFとその成熟度モデル
🏢 CNCFとは?
CNCF(Cloud Native Computing Foundation) は、クラウドネイティブ技術の普及と標準化を推進する非営利団体です。
Kubernetes や Prometheus、Envoy、gRPC など、多くのクラウドネイティブ技術が CNCF の管理下で開発・運用されています。
CNCF の主な役割は次の3つです:
- オープンソース技術の育成と認定(Sandbox → Incubating → Graduated)
- プロジェクトの中立的なガバナンス・セキュリティ監査の提供
- KubeCon などを通じたコミュニティの拡大と教育
つまり CNCF は、「クラウドネイティブ技術の品質保証・信頼性の証」を与える組織でもあります。
🌱 成熟度モデルとは?
CNCF はホストする OSS を3段階の成熟度で分類しています。
| 段階 | 説明 | 対応プロジェクト例 |
|---|---|---|
| Sandbox | 実験的な新技術。将来性の検証段階。 | KubeVela, Porter |
| Incubating | 採用実績が出てきた成長段階。 | OpenFeature, KEDA |
| Graduated | 本番環境で多数利用される成熟段階。 | Kubernetes, Prometheus, Crossplane 🚀 |
Graduated になるには以下を満たす必要があります:
- 広範な本番導入実績
- 継続的なメンテナンスとガバナンス
- セキュリティ監査合格
- 活発なコミュニティと透明性の高い開発体制
つまり、「Graduated = 本番で安心して使える OSS」と捉えて問題ありません。
Crossplane とは?
Crossplane は Kubernetes を拡張し、アプリと同じ仕組みでクラウドインフラを管理できるようにする OSS です。
「Infrastructure as Code(IaC)」を超えて「Infrastructure as API」を実現します。
Terraform との違い
| 比較項目 | Terraform | Crossplane |
|---|---|---|
| 実行方法 | CLI(手動/CI経由で実行) | Kubernetes Controller(常駐) |
| 状態管理 | tfstate(ローカル or リモート) | Kubernetes の etcd に統合 |
| 設定言語 | HCL | YAML(CRDを使用) |
| 連携性 | 独立したワークフローが中心 | Kubernetesリソースとして動くため、GitOps(ArgoCD/Flux)とシームレスに連携可能 |
Terraform は「構成適用時に一括反映」するモデルですが、
Crossplane は Kubernetes Controller が常時動き、宣言した状態を自動的に維持します。
そのため、GitOps との親和性が高く、アプリとインフラのライフサイクルを統合できるのが大きな強みです。
実際に触ってみる:簡単な Crossplane デモ
ここでは、ローカルの kind クラスター上で Crossplane を動かし、
AWS S3 バケットを Kubernetes マニフェストから作成する流れを紹介します。
Step ① Crossplane のインストール
kubectl create namespace crossplane-system
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane \
--namespace crossplane-system crossplane-stable/crossplane
🔍 確認
kubectl get pods -n crossplane-system
出力例:
NAME READY STATUS RESTARTS AGE
crossplane-7c8bfb89c6-hls2x 1/1 Running 0 45s
crossplane-rbac-manager-6b8dd47f44-lr9p4 1/1 Running 0 45s
これで、Crossplane のコントローラ(Pod)が起動していることを確認できます。
Crossplane は Kubernetes の拡張機能として動作するため、Pod が作成されるのです。
また、crossplane-system という専用 Namespace に分けているのは、
アプリケーションのリソースと混在させず、運用を分離するためです。
Step ② AWS Provider のインストール
kubectl apply -f - <<EOF
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws
spec:
package: xpkg.upbound.io/upbound/provider-aws:v1.17.1
EOF
この「Provider」が、AWS API を操作するためのプラグインにあたります。
Step ③ AWS 認証情報の登録
AWS アクセスキーを Kubernetes Secret に登録します。
kubectl create secret generic aws-creds -n crossplane-system \
--from-file=creds=./aws-credentials.txt
⚠️ 注意
Kubernetes Secret は base64 エンコードされているだけで暗号化ではありません。
本番環境では Sealed Secrets や External Secrets Operator、Vault などの安全な方法を利用することが推奨されます。
次に、この Secret を ProviderConfig に紐付けます。
apiVersion: aws.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: aws-provider
spec:
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: aws-creds
key: creds
Step ④ S3 バケットを作成してみる
apiVersion: s3.aws.crossplane.io/v1beta1
kind: Bucket
metadata:
name: demo-bucket-crossplane
spec:
forProvider:
locationConstraint: ap-northeast-1
providerConfigRef:
name: aws-provider
適用します。
kubectl apply -f s3-bucket.yaml
確認:
kubectl get bucket
出力例:
NAME READY SYNCED EXTERNAL-NAME AGE
demo-bucket-crossplane True True demo-bucket-crossplane 30s
AWS コンソールを見ると、demo-bucket-crossplane が作成されているはずです 🎉
Crossplane の魅力を整理すると…
- GitOps に完全対応:YAML なので ArgoCD や Flux とそのまま連携
- 状態の一元管理:アプリもインフラも Kubernetes 上で統合管理
- ポリシー化・再利用性:Composition 機能で自社標準インフラをテンプレート化
まさに「Kubernetes を組織のクラウド制御プレーンに変える」アプローチといえます。
Crossplane を本格的に学びたい人へおすすめのリソース
| リソース | 概要 |
|---|---|
| Crossplane Official Docs | 公式ドキュメント(豊富なサンプルと概念説明) |
| Upbound Academy | Crossplane の開発元 Upbound による無料学習コース |
| Crossplane GitHub Examples | 実際の構成サンプル(AWS/GCP/Azure など) |
| Platform Engineering Community | Crossplane を活用したプラットフォーム設計の知見共有 |
まとめ
- Crossplane が CNCF の Graduated プロジェクト に認定されました。
- CNCF はクラウドネイティブ技術の品質と信頼性を担保する組織であり、Graduated はその「安心の証」です。
- Crossplane は Kubernetes を拡張してクラウドを宣言的に制御できる OSS。Terraform と異なり、GitOps と自然に統合できます。
- 実際のデモを通じて、S3 バケットなどのクラウドリソースを Kubernetes 経由で操作できることを確認しました。
Crossplane は「IaC の次のステージ」を切り開く重要な技術です。
プラットフォームエンジニアリングや GitOps を次のレベルに進めたい方には、今が学びどきです。