動かなかった部分の回避策がわかったので、今回はDaprのTutorialを試してました。
動かなかった場所は2か所ありますが、うち1か所に対応するためにRadiusを最新の0.26に更新する必要があります。コメントの通り、CLIの更新、radius-system名前空間の削除、rad initの再実行、が必要です。
もう1点は該当箇所で言及します。さて、Daprとは何か?については、Daprに関する公式ドキュメントの概要がわかりやすいです。
分散アプリケーションを構築するときに必要なコンポーネントを提供する役割を持っています。このTutorialではその中でも状態ストア(Session Store)を利用します。
まず、Daprのドキュメントに従ってkubernetes上にDaprをセットアップしておきます。
そしてアプリケーションとアプリケーションが依存するApplications.Dapr/stateStores@2023-10-01-preview
というDaprの状態ストアをリソースとして定義します。また、アプリケーションにはDaprのためにサイドカーコンテナも定義しています。
デプロイすると、Dapr側でも状態ストアが作られたことが確認できます。
次に、フロントエンドのコンテナを追加します。ここで動かなかった2か所目が出てきます。containerPort: 8080
のまま動かすと、http://localhost:8080
にアクセスしても接続できずradコマンドでエラーが確認できます。このIssueに報告した通り、サンプルリポジトリを見るとフロントエンドコンテナは80番ポートを使っているので、containerPort: 80
にしてデプロイすると動作しました。
kubernetes側のリソースを見るとDaprの状態ストアとしてRedisがPodとして動いていることもわかります。開発者側はDaprの状態ストアを利用すると定義し、運用者側がその実態としてコンテナで動くRedisを使うレシピを提供しているようです。