ElasticsearchをKubernetes上で便利に使えるものとして、Elastic Cloud on Kubernetes(ECK)があるけど、ローカル環境でも手軽にKubernetesクラスタを作って、そこでECKを動かせるようにしたいな、ということで、eckctlにまとめてみました。
手軽にKubernetesクラスタも作る必要があるので、eckctlではデフォルトでkindを利用することにしてます。なので、
$ ./eckctl create
とすると、ローカル環境にKubernetesクラスタができて、そこにECKを入れて、Elasticsearchクラスタができます。
サービス経由でアクセスするか、ポートフォワーディングで、
$ ./eckctl proxy
をして、別ターミナルで
$ ./eckctl curl https://localhost:9200/
みたいにするとElasticsearchのクラスタにアクセスできます。ECKのElasticsearchにはパスワードがかかっているので、eckctl経由にすることで、パスワードを付加してアクセスしています。
あとは、使い終わったら
$ ./eckctl delete
すれば、きれいに削除することができます。
使いながら、もう少し便利にしていこうかとは思いますが(ドキュメントを含めて…)、別にkindに依存しているわけではないので、そのうち、AWSやGCPにもデプロイできるようにしたいなとも思いますが、そこまで時間がないような気も…。とりあえず、FessのK8s対応が保留になっているので、eckctlベースに対応を進められないかなと考えています。