理由
Helmを Kuberetesにいい感じに機能を追加するためのインストーラ+パッケージレポジトリ ぐらいの認識しかしてないので少し調べる。
知りたいこと
- アーキテクチャ
- Helmの安定利用にどのようなコンポーネントが必要か?
- 自前のアプリケーションをHelmで管理するメリットは有るか?
- 他者への配布を考えない自前のアプリケーションの管理、運用用途でも使用すべきか?
- 運用面
- 自前のレジストリなどを使ってパッケージの配信停止などに対応できるか?
- 導入するコンポーネントのバージョニングなどはどうすればよいか?
- GitOps可能か? できるなら何を使うのが良いか? CircleCI/CodeBuild...
調べたこと
GitHub: https://github.com/helm/helm
- パッケージマネージャという認識であっている。
Chart という単位でパッケージを取り扱う
- KubernetesへのインストールはこのChart単位で行う。
アーキテクチャ
https://helm.sh/docs/topics/architecture/
Helm自体はクライアントだけで、サーバサイドは無い。
クライアントがKubernetesAPIを操作することで機能を実現している。
private repository
自分用のレポジトリを作る機能は有る。
https://helm.sh/docs/howto/chart_repository_sync_example/
まとめ
HelmはKubernetesにおけるapt/yum/homebrewのようなもの。
アプリケーションをKubernetesにインストール/アンインストールするための手順をChartというパッケージにまとめて管理できる。
ドキュメントをざっと読んだ限りでは自作のアプリケーションを管理するメリットはなさそう。あくまでもミドルウェアのような様々なクラスタでインストールされる可能性のあるものを配付するための仕組みという印章。
一方で同じChartから復数のReleaseを生成することもできるため、共通した設定でコンポーネントを利用したい場合などには役に立ちそう。
例えばlog forwarderやproxyをsidecarとして道入する際に定型の設定がある場合など。
理由
Helmを
Kuberetesにいい感じに機能を追加するためのインストーラ+パッケージレポジトリぐらいの認識しかしてないので少し調べる。知りたいこと
調べたこと
GitHub: https://github.com/helm/helm
Chartという単位でパッケージを取り扱うアーキテクチャ
https://helm.sh/docs/topics/architecture/
https://helm.sh/docs/intro/using_helm/#three-big-concepts
Helm自体はクライアントだけで、サーバサイドは無い。
クライアントがKubernetesAPIを操作することで機能を実現している。
private repository
自分用のレポジトリを作る機能は有る。
https://helm.sh/docs/howto/chart_repository_sync_example/
まとめ
HelmはKubernetesにおけるapt/yum/homebrewのようなもの。
アプリケーションをKubernetesにインストール/アンインストールするための手順をChartというパッケージにまとめて管理できる。
ドキュメントをざっと読んだ限りでは自作のアプリケーションを管理するメリットはなさそう。あくまでもミドルウェアのような様々なクラスタでインストールされる可能性のあるものを配付するための仕組みという印章。
一方で同じChartから復数のReleaseを生成することもできるため、共通した設定でコンポーネントを利用したい場合などには役に立ちそう。
例えばlog forwarderやproxyをsidecarとして道入する際に定型の設定がある場合など。