だいごろうのブログ

熊本出身で大阪、東京、パリを転勤して、今は福岡でデータエンジニアです

[MEMO] katacodaでLearn Kubernetes ver7 Kompose / Helm + Helm周りを調べてみた

今回は、kubenetesのyamlの管理ツール系の話。KomposeとHelmを読んで見てる。

www.katacoda.com

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を利用することにより、 kubernetesyamlファイルに変換してくれる。

kompose --provider openshift convertこのようにして他のproviderをサポートすることも可能みたい。

Helm

標準的なkubernetesのいくつかのパッケージ(charts)を簡単にkubernetesで実行できるようなものかな?結構ないろいろな会社とコミュニティが運営してるみたいで、今後の発展性も良さそうだな。

www.katacoda.com

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 Docs | Helm


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のオブジェクトを管理するためのツールも多々出てきて、熟成が始まった感があって、学習意欲が掻き立てられますな。