Skip to content

歴史

起源

CDK8s は 2020 年 5 月に Amazon Web Services (AWS) が発表しました。主たる作者は Elad Ben-Israel で、AWS CDK・jsii・projen の作者でもあります。動機は、AWS CDK が CloudFormation に対して使う Construct Programming Model (CPM) を Kubernetes マニフェストにも持ち込むことでした。これにより、手書きの YAML や Go テンプレートではなく、型・ループ・再利用可能な抽象を備えた実プログラミング言語でワークロードを定義できます (AWS containers blog)。

同年、cdk8s+ (cdk8s-plus) という高レベルの intent ベース API がベータに入り、生のリソース層の上に Pod や Deployment といった型付きクラスを提供しました。2020 年 11 月には CNCF (Cloud Native Computing Foundation) に Sandbox 成熟度で受理されました (CNCF プロジェクトページ)。

年表

マイルストーン
2020AWS が cdk8s を発表。高レベル API cdk8s+ がベータ入り (AWS blog)
20202020-11-10 に CNCF Sandbox に受理 (CNCF)
2021一般提供 (GA) を宣言。Go サポート追加。専用 org cdk8s-team へ移管 (AWS What's New)

どう進化したか

核となる発想は Construct Programming Model です。同じ construct 抽象が AWS CDK (CloudFormation 向け)、CDKTF (Terraform 向け)、cdk8s (Kubernetes 向け) を記述します。多言語パッケージ化は jsii が担い、TypeScript ソースを Python・Java・Go・.NET 向けパッケージへコンパイルします (AWS containers blog)。

2021 年 10 月の GA で、対応言語に Go を追加し、AWS Labs org から専用の cdk8s-team GitHub org へ移りました。これは AWS 製品ではなく独立した CNCF プロジェクトであることを示すものです (AWS What's New)。

コードベースも単一リポジトリではなく、この org に分割されています。アンブレラの cdk8s-team/cdk8s リポジトリは website・横断 issue・ドキュメントを持ち、合成エンジンは cdk8s-team/cdk8s-core にあって npm に cdk8s という名前で配布されます。コマンドラインツール (cdk8s-cli) と高レベル API (cdk8s-plus) はそれぞれ別リポジトリです。

現在地

CDK8s は引き続き CNCF Sandbox プロジェクトです (CNCF)。cdk8s-core エンジンのリリースは頻繁で、本稿執筆時点の最新リリースは 2026-06-23 公開の v2.70.80 です (GitHub Releases)。本ディープダイブは 2026-06-25 のコミット 558f788 を基準としています。

ビルドは projen と jsii を使います。npm run build ターゲットは projen build を実行し、package:pythonpackage:javapackage:dotnetpackage:go の各ターゲットが言語別の配布物を生成します (cdk8s-corepackage.json)。ランタイムは peer dependency として constructs ^10 に依存し、yamlfast-json-patchfollow-redirects を bundle します。