kubernetesが楽しい

最近はどっぷりkubernetes漬けになっている。面白いなーと思った機能を紹介。

ingress

kubernetesは外部に露出させるエンドポイントに対して複数のサービスを紐づけることができる。これとワイルドカードサブドメインを組み合わせると、yamlひとつでサービスを作りまくることができる。

daemonset

ノード(コンテナを動かすマシン)1台に対して1つのコンテナを常駐させたいことがある。たとえばfluentdでシステムログを集約するとき。これを実現するのがdaemonset。ECSにはなかったから重宝している。サービスメッシュとか、マシンメトリクスの収集などもこれを使うといい。

helm

kubernetesの機能ではないが。kubernetesのリソースはmanifestで管理するが、パラメタ化できなかったり(つまり複数のサービスで使いまわすのが難しい)、バージョニングできなかったりと不便。これを解決してくれるレイヤーがhelm。パラメタ化、依存関係を解決したyamlのセットをpackageとしてリポジトリに上げ、使用するときはnpmのように helm install {pkg_name} する。引数でパラメタを注入したり。簡単によくあるリソースを展開してくれるものと解釈されていることが多いが、本質はパッケージマネージャそのもの。