やりたいこと
nginx経由でJupyterlabへアクセスしたい。(Kubernetes環境)
Jupyterlabが稼働するPodは、ユーザーがリクエストしたタイミングで自動で生成される仕組みになっている。
Podは最大で150個程度まで増える想定である。
悩んだこと
nginx.confのlocationの記述方法。
Podが新規に作成されたタイミングで、nginx.confにlocationを一つ追加するのってどうやるんだろう??
動的に追加するのは難しそうだから、事前に150個分書いておくか?
と悩んでいました。
実際当初は、150個分書いて運用していました・・・(補足参照)
なお、URIのパス、転送先のパスは、いずれも jupyterlab-XXX というように、XXXの部分がプロジェクトのID(1〜150)になるルールです。
結論
正規表現を使うと解決できました。(locationは1つで良い)
記述例
location ~ ^/(?<path>jupyterlab-[0-9]*) {
proxy_pass http://$path.namespace.svc.cluster.local:8888;
中略
}
補足
転送先が起動していない(名前解決できない)とnginxはエラーとなり起動しません。
これについての対応方法は別途記事にする予定です。
2023/2/2 記事にしました。
https://qiita.com/Yohko_Tanaka/items/0f9cb1c98eff3cc87962
参考記事