k8sのクラスタ上で、ingressを使って、複数のアプリケーションをパスごとにマッピングして、
1つのホストで構成しようとしています。
具体的には、
http://example.com/hoge をhogeアプリケーションのポッドへ転送
http://example.com/fuga をfugaアプリケーションのポッドへ転送
といった感じです。
そのような構成であれば、以下のようなマニフェストで実現できると思います。
YAML
1apiVersion: extensions/v1beta1 2kind: Ingress 3metadata: 4 name: example-ingress 5 annotations: 6 kubernetes.io/ingress.class: 'nginx' 7 nginx.ingress.kubernetes.io/rewrite-target: / 8spec: 9 rules: 10 - host: example.com 11 http: 12 paths: 13 - path: / 14 backend: 15 serviceName: root-svc 16 servicePort: 8080 17 - path: /hoge 18 backend: 19 serviceName: hoge-svc 20 servicePort: 8081 21 - path: /fuga 22 backend: 23 serviceName: fuga-svc 24 servicePort: 8082 25
しかし、今回実現したいのはk8sクラスタ上に存在しているingressに対して、新たなpathを動的に追加する、というものです。
具体的には、k8sクラスタ上に新たなアプリケーションがデプロイされた時に、そのアプリケーションにhttp://example.com/piyo からアクセスできるような設定を、クラスタ上の既存のingressに対して設定する、ということをやりたいと考えています。
アプリケーションのk8sクラスタ上へのデプロイはCIツールなどによって自動化するので、アプリケーションのデプロイの度にingressのマニフェストをエディタで編集して、/piyo へのパスを追加する、といったようなことはしたくありません。
このようなことは、事前に設定ファイルを記述したり、何かしらのツールを使うことによって実現できるものなのでしょうか?
Kubernetes関連のツールなどにはあまり詳しくないので、解決の方法だけでなく、このツールを使えば解決できる、などの意見・回答もあればぜひ教えていただきたいです。
あなたの回答
tips
プレビュー