質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Google Container Engine (GKE)

Google Container Engine (GKE) は、Dockerコンテナのオープンソース管理ソフトウェア、Kubernetesのクラスタを簡単にデプロイ可能にするサービスです。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

Q&A

0回答

894閲覧

【k8s】同一ホストに複数のPathを動的に追加する方法が知りたい

panamax

総合スコア22

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Google Container Engine (GKE)

Google Container Engine (GKE) は、Dockerコンテナのオープンソース管理ソフトウェア、Kubernetesのクラスタを簡単にデプロイ可能にするサービスです。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

0グッド

1クリップ

投稿2019/11/04 13:18

編集2019/11/04 13:20

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関連のツールなどにはあまり詳しくないので、解決の方法だけでなく、このツールを使えば解決できる、などの意見・回答もあればぜひ教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urbainleverrier

2019/11/04 15:18

kubernetes, layer7で、といえば、istioのvirtualserviceかなと思います。 pathを動的に〜というのはなかなか難しい気がします。 ciかデプロイをeventとしてうまいこと受け取り、k8sのクライアントでvirtualserviceを定義してあげるしかないのではないでしょうか。 本番環境が整ったら~とか、一部ベータ版として~とかならistioは素晴らしいossだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問