kro - Kube リソースオーケストレーター
始める前に
このセクションの環境を準備してください:
~$prepare-environment automation/controlplanes/kro
これにより、ラボ環境に以下の変更が加えられます:
- EKS、IAM、DynamoDB 用の AWS Controllers for Kubernetes コントローラーをインストール
- AWS Load Balancer Controller をインストール
- UI ワークロード用の Ingress リソースを作成
これらの変更を適用する Terraform はここで確認できます。
kro (Kube Resource Orchestrator) は、関連する Kubernetes リソースのグループを作成するためのカスタム API を定義できるオープンソースの Kubernetes オペレーターです。kro を使用すると、CEL (Common Expression Language) 式を使用してリソース間の関係を定義し、自動的に作成順序を決定する ResourceGraphDefinitions (RGDs) を作成できます。
kro を使用すると、インテリジェントな依存関係処理を備えた高レベルの抽象化に複数の Kubernetes リソースを構成できます - リソースがどのように相互に参照しているかを分析することで、リソースをデプロイする正しい順序を自動的に決定します。CEL 式を使用してリソース間で値を渡したり、条件付きロジックを含めたり、ユーザーエクスペリエンスを簡素化するためのデフォルト値を定義したりすることができます。
このラボでは、まず WebApplication ResourceGraphDefinition を使用してインメモリデータベースを持つ完全な Carts コンポーネントをデプロイすることで、kro の機能を探ります。次に、ベースの WebApplication テンプレートを拡張して Amazon DynamoDB ストレージを追加する WebApplicationDynamoDB ResourceGraphDefinition を構成することでこれを強化します。