###前提・実現したいこと
- GKEを用いてelasticsearchクラスタを構築したい。
それに付随して様々な問題が出てきたため、それを解決する。
- GKEでelasticsearchとnginxを動かして、nginxをingressとして公開し、その内部で
/search
等でリバースプロキシとしてelasticsearchのserviceに飛ばしたい。
###発生している問題・エラーメッセージ
elasticsearchはx-packのsecurity機能を使うことでbasic認証を付けることが出来るが、kubernetesのingressを通して接続しようとするとbasic認証によってヘルスチェックが通らず、502が帰ってきてしまう。
そこで下記の方法を考えました。
nginxを同じNodeで動かし、 */search
等のパスでbasic認証付きのリバースプロキシとして動かしてelasticsearchと接続する。
この際にヘルスチェックは */
のみにすることでとりあえず動くのではないかと考えました。
/
でヘルスチェック用のレスポンス200を返す。/search
でelasticsearchのkubernetes serviceに飛ばす。
上記を実現するため、とりあえずリバースプロキシだけ試したいのでnginxの*.confファイルに
location /search { proxy_pass: ${同クラスタで動いているelasticsearch serviceのIP} }
と記入すれば良さそうだと考えたのですが、同じクラスタといっても複数Nodeである可能性等を考えると何のIPを指定すればいいかわからず、調べてもよくわからずで止まってしまいました。
###試したこと
elasticsearchのサービスを type: LoadBalancer
として、
静的IPを指定する方法を使って、そのIPを*.confに記載すれば出来るかもしれないとも考えたのですが、運用も考えるとあまり良くないのかなと思ってしまいました。
インフラに関して勉強して一ヶ月経ってないほどで最適解などもわからずやっています。
今考えている方法よりももっといい方法があればそれも教えて頂けると嬉しいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。