17 Blue / Green スイッチの手順 (2) K8s の機能だけで実現する場合 本番に繋がる Service へ向け変えるため、設定を変更後、再起動 dog-bff -blue dog-api-green dog-api-blue dog-bff -green 本番 active-dog-api-svc idle-dog-api-svc color: green color: green color: blue color: blue 本番 イヌチーム 設定変更 & 再起動 待機 待機
18 Blue / Green スイッチの手順 (3) K8s の機能だけで実現する場合 Service のラベルをスイッチし、本番と待機系を切り替え dog-bff -blue dog-api-green dog-api-blue dog-bff -green 本番 active-dog-api-svc idle-dog-api-svc color: green color: green color: blue color: blue 本番 イヌチーム ラベルを スイッチ 待機 待機
33 Istioならシンプルに実現できる 同じ Namespace の Pod への通信は、 同じ色に向くようにするには、送信元の Pod の ラベルの情報を利用 dog-api-green dog-api-blue 本番 ------------(省略)------------- spec: hosts: - dog-api.dog.svc.cluster.local http: - match: // blue の Pod からのリクエストは blue へ - sourceLabels: ns: dog color: blue route: - destination: host: dog-api.dog.svc.cluster.local subset: blue - match: // greenのPodからのリクエストはgreenへ - sourceLabels: ns: dog color: green route: - destination: host: dog-api.dog.svc.cluster.local subset: green - name: active // デフォルトルール route: - destination: host: dog-api.dog.svc.cluster.local subset: green dog-api.dog.svc. cluster.local 待機 dog-bff-green dog-bff-blue 本番 待機 Namespace: dog ns: dog ns: dog ns: dog ns: dog color: blue color: blue color:green color:green