最近Kubernetesを会社でも使い始めていて、HelmというKubernetes用のパッケージマネージャーなるものがあると聞いたので、調べようと思ったんだけど、いろいろ寄り道してしまい結局たどり着かなかったという話。
Helmって?
Helmの概要とChart(チャート)の作り方 に詳しくいろいろ書いてある
Kubernetes on local (Mac)
Docker for MacにはKubernetesも付いてるんだけど、有効にしてなかったので有効にして使えるようにした。
サンプルアプリのデプロイ
Docker for MacでKubernetes インストールからデプロイまで を見ながらkubernetes-dashboardのyamlを落として、デプロイしてみた。
てか一つのyamlに複数のリソース書いて一気にApplyできるの知らなかった。。しかもkubectl delete
でも一気に消せる。
docker-compose.ymlを使ってKubernetesにデプロイ
さっきのQiitaの記事を見てたらできるって書いてあったんだけど、そんなの知らなかった。。
docker stack deploy STACK_NAME --compose-file docker-compose.yml
で、できるらしい。なんか時間はかかったけど、VolumeMountもできてるし、自動でlocalhostのLoadBalancerが作られててすぐにアクセスできる状態になってた。
docker-compose.ymlをKubernetes Resourceに変換する
もうちょっと調べて見たら、公式ドキュメントに、Komposeをつかって、docker-compose.ymlをKubernetes Resourceに変換できるよって書いてあった。
Official Document: Translate a Docker Compose File to Kubernetes Resources
てか、kompose up
で直接実行できるのね。なんか起動がdocker stack
より早い。ただし、VolumeMountサポートしてないよみたいなWarningがでるのと、デフォルトではLoadBalancerやノードポートのサービスを作ってくれないのでアクセスできない。。
VolumeMountについてはIssueをみると、手動で作成する必要ある(?)みたい。LoadBalancerは公式ドキュメントのページに書いてあったけど、
labels:
kompose.service.type: LoadBalancer
を書いておくとkompose up
のときに作ってくれた!
docker stack
とkompose up
の違いは?
ちょっと探してみたけど、違いに言及されている記事は見つかんなかったな。(ちゃんと調べれば出てくるかも。)ただ、docker stack
はdocker側で作られていて、kompose up
はKubernetes側で作られているから、同じ目的で違う方向から作られたって感じなのかなー。
最後に
てな感じで、いろいろ寄り道してたら結構時間が経ってしまったので、Helmはまた今度。。