銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Radiusを知る(8) Radiusのコンテナとは

前回から少し間が空きましたが、引き続きRadiusのコンテナを見ていきます。

docs.radapp.io

RadiusにおけるコンテナはDockerコンテナと同等のものと読み取れます。サポートされるランタイム間ではコンテナワークロードを移植できるとありますが、現時点でサポートされるランタイムはkubernetesのみです。

Radiusで管理できない範囲への考慮もされており、Radiusでリソースを定義するときにRadiusがサポートしないkubernetesのリソースを直接定義する仕組み](https://docs.radapp.io/reference/resource-schema/core-schema/container-schema/#runtimes)が用意されています。また、Radiusをまだ適用していないkubernetesのリソース定義を修正せずにRadiusを利用し始めることができ、段階的にRadiusの機能を追加している仕組みも用意されています。Tutorialsにこの方法が追加されているので改めて確認したいと思います。

docs.radapp.io

また、PodSpec定義を使うことでRadiusで展開したコンテナにパッチを適用することもできます。この機能はHow-to Guideの中に記事があるため、こちらも改めて確認したいと思います。

docs.radapp.io

コンテナに関連する機能として、ネットワーク、ボリューム、ヘルスプローブといったものが用意されていますが、ほぼkubernetesの同名機能が利用できると考えてよさそうです。こちらもHow-to Guideに独立した記事があるため、改めて確認します。

RadiusではConnections(接続)という機能で2つのリソースの依存関係を定義することができます。例えばアプリケーションコンテナがmongodbコンテナに依存するという定義を追加できますが、このときアプリケーションコンテナには接続するmongodbコンテナへの接続情報が環境変数として追加される仕組みになっています。このときの環境変数の名前は、接続するコンテナの名前に基づいて決まっています。詳しくはドキュメントに記載されています。

docs.radapp.io

docs.radapp.io

最後にRadiusはコンテナに対する拡張機能を用意しており、うち2つは以前の記事で紹介した、Daprのサイドカーをinjectionする拡張機能、kubernetesのメタデータ拡張機能、コンテナのレプリカ数を定義する手動スケーリング拡張機能の3つが現時点で用意されています。

tech.tanaka733.net

tech.tanaka733.net