9. Ingress
Pod
myapi-r45
version:r45
Pod
nginx
Internet
Service(nodePort)
Production
url: pro.app.io
selector:
version : r45
Service(nodePort)
Develop
url: dev.app.io
pro.app.io
dev.app.io
Service(cluster-ip)
tkp-api-r45-2
dev.app.io/versions/r45/
下記のURLでこのPodにアクセス出来る
https://pro.app.io
https://dev.app.io/versions/r45/
Service(cluster-ip)
myapi-r46
Pod
myapi-r46
version:r46
dev.app.io/versions/r46pro.app.io
下記のURLでこのPodにアクセス出来る
https://dev.app.io/versions/r46/
nameでdomainを割り当てるた
めにcluster-ipを作成
http://myapi-r45で他のpodから
アクセス出来るようにしてある
構成図
10. 構成手順
1. Ingressの設定
a. pro.app.ioはProductionのServiceに、dev.app.ioだったらDevelopのServiceに振り分ける
2. Service(NodePort)の設定 ProductionとDevelopの2つを用意
a. Productionはselectorでproduction用のpodのversion(メタ情報)を指定。
b. DevelopはselectorでNginxのpodを指定
3. Nginx(pod)の設定
a. nginxとdnsmasq(dnsサーバー)のcontainerで構成
b. nginxのlocation機能でurlに含まれるversionから該当するcluster-ipの名前に振り分ける
i. 例: http://dev.app.io/versions/v1 → http://myapi-v1
4. アプリ(pod)の設定
a. アプリのpodとセットで、cluster-ipを作成
i. cluster-ipはそのアプリをselectorで指定
ii. アプリはclusert-ipの名前でアクセス出来るようになる
iii. clusert-ip name: myapi-v1
iv. url: http://myapi-v1