私にとっての docker-compose と k8s
すごい前の書きかけに下記が残ってたので、供養
概要
複数の OSS をそれぞれコンテナとして立てて、それらの api を使用するようなサーバーを構築したいという状況が最近多かった。
そのようなときに、 docker-compose と k8s を使ってみて、どういうところがうれしかったか? という点についてまとめてみた。
あらかじめ断っておくが、私はどちらについてもヘビーユーザーではないので、間違った意見の可能性もある。
そのあたりは、指摘していただけると、とても助かります。
docker-compose
docker-compose は、コンテナをまとめて記載するとき、とても素直な書き方ができる。
なので、学習コストが極めて低い。と思う。
それに、 yaml ファイルにビルド設定を書くこともできるので、開発中に、コンテナの詳細な外部設定に目を向ける必要がないため、目的に集中することができた。
小さなものを作りたいときには、使用するコンテナを yaml につっこんでおけばよいので、脳死の状態でも書ける。
ただ、長期間、動かしたいなどの用途だと、コンテナがよからぬ原因で死んでしまった場合などを考慮し始めると、つらいかもしれない。
運用には適していないのかもしれない。
k8s
k8s の学習コストが高そうな話を聞いていたが、、、
k8s 自体は、 docker-compose のコンテナの設定とか、環境変数の設定、マウントする volume とかを別々のファイルに分けて、詳細に設定できるようにしただけで、そこまで難しくはなかった。
( 手元で適当に走らせる分には )
k8s の yaml ファイルの書き方については、以下の postgresql サーバーを立てるページがとても参考になった。
上記のページの yaml を写経しつつ、調べつつしていると、以下のことについての理解がすすんだ。
1. configMap とかいう、 docker なら .env に設定するようなことを設定できることとか
2. PersistentVolume という、 docker の volume に相当するような概念とか