[MEMO] katacodaでLearn Kubernetes ver7 Kompose / Helm + Helm周りを調べてみた
今回は、kubenetesのyamlの管理ツール系の話。KomposeとHelmを読んで見てる。
https://github.com/kubernetes/kompose/releases
Kompose
docker-compose.yamlを用意し
kompose up
kompose up
をすると自動で、kubernetesにそのdocker-composeにかかれている deployment,svc,pods,pvc
などを作成する。
kompose convert
kompose convert
を利用することにより、 kubernetesのyamlファイルに変換してくれる。
kompose --provider openshift convert
このようにして他のproviderをサポートすることも可能みたい。
Helm
標準的なkubernetesのいくつかのパッケージ(charts)を簡単にkubernetesで実行できるようなものかな?結構ないろいろな会社とコミュニティが運営してるみたいで、今後の発展性も良さそうだな。
helm search {SEARCH_WORD}
chartsを検索する。
helm inspect {NAME}
対象のchartsの詳細を見る
helm install {NAME}
対象のchartsをkubernetes上で起動する。
helm ls
今helmから実行しているPodを確認
Helm in github
なんか、よくわからんから、githubを訳していく。 https://github.com/kubernetes/helm/releases
HelmはKubernetesのchartsを管理するツール. Chartsはpre-configured Kubernetes resourcesのパッケージです.
こういったケースに使います。
- よくあるパターンのソフトウェアのパッケージをHelm chartsでKubernetes上で実行したいとき
- Helm chartsで自分のアプリをシェアしたいとき
- Kubernetesのアプリケーションを再現可能なbuildにしたいとき。
- かしこくKubernetesのマニフェストを管理したい
- Helm packagesを管理したい
Helmは Kubernetesのapplicationsの管理とインストールを簡略化するツールです。apt/yum/homebrewのKubernetes版だと思ってください。
- Helmはclient (helm) and a server (tiller)のパーツに別れます
- TillerはKubernetes内で動作し、chartsのインストールなどを管理します。
- Helmは自分のPCやCI/CD上で起動します。
- Chartsは以下の2つを最低限含むHelm packages:
- パッケージの詳細 (Chart.yaml)
- 一つ以上のKubernetesのmanifestのテンプレートファイル
- ChartsはディスクやリモートChart repository(これなんだろう?) などに保存できます (like Debian or RedHat packages)
とりあえず、githubにのREADMEを訳してみた。わかるようなわからんような。 あとでここも、読んで理解しておこう。 helm.sh
自分で、Chartsを書くドキュメントも充実してるなぁ。 https://helm.sh/docs/developing_charts/#charts
なかなか良さそうだと思って、反論ブログも探してみた。 winderresearch.com まとめると、Securityの甘さと、管理の複雑さかな。 podとTillerあたりとsecretの保存周りが微妙かな。あと、gitopsでバージョン管理できてたのが、複雑になるとか、kubenetesのベストプラクティスではなくなるとか。テンプレートをしたかったらkustomizeとか、他のツールも検証してみなよって感じ。
所感
DockerのオーケストレーションでKubernetesだと思って、勉強したけど、CROIなどの登場で、KubernetesでDocker以外を使う選択肢も出てきたり、Kubernetesのオブジェクトを管理するためのツールも多々出てきて、熟成が始まった感があって、学習意欲が掻き立てられますな。