インスタンスごとに個別のデプロイメント構成を作成することを検討し、渡された環境変数を設定して、それぞれのパスを異なる方法で示すようにします。アプリケーションで環境変数を使用して、使用するパスを認識させます。
両方のインスタンス間でトラフィックの負荷を分散する必要がある場合は、トラフィックを必要な比率で両方に転送するようにルートを設定します。
例えば:
oc new-build getwarped/s2i-httpd-server~https://github.com/getwarped/httpd-parked-domain.git --name mysite
oc new-app mysite --name mysite1 --env DATA=instance1
oc new-app mysite --name mysite2 --env DATA=instance2
oc expose svc/mysite1 --name mysite
oc set route-backends mysite mysite1=50 mysite2=50
これにより、次のようになります。
$ oc get all -o name
buildconfig/mysite
build/mysite-1
imagestream/mysite
imagestream/s2i-httpd-server
deploymentconfig/mysite1
deploymentconfig/mysite2
replicationcontroller/mysite1-1
replicationcontroller/mysite2-1
route/mysite
service/mysite1
service/mysite2
pod/mysite-1-build
pod/mysite1-1-64c6a
pod/mysite2-1-v3lf4
$ oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION
mysite mysite-book.127.0.0.1.xip.io mysite1(50%),mysite2(50%) 8080-tcp
ところで、ライセンスが既に使用されているとソフトウェアが判断しても起動しない場合は、展開戦略をローリングから再作成に変更する必要があります。これは、新しいインスタンスを開始する前に、既存のインスタンスがシャットダウンされることを意味します。2 つある場合でも、一方を再起動する前に、トラフィックが他方にルーティングされる場所の比率をいつでも調整できるからです。そうすれば、インスタンスが完了したときにリクエストが失敗することはありません。一方の再起動後にトラフィックを再調整するか、すべてのトラフィックをそれに切り替えてもう一方を再起動できます。