2016-12-08 5 views
0

本番環境で動作しているWebアプリケーションのバージョン1.0があるとします。新しいバージョン2.0を本番バージョン1.0の横に並べて展開したいとします。トラフィックをユーザー/顧客のサブセットから新しいバージョンにルーティングしたいとします。言い換えれば、Kubernetesのウェブベースのアプリケーションのための実際のカナリアのリリース(thisの記事で定義)を達成する方法。Kubenetes - Webベースのアプリケーションの場合、顧客のサブセットを新しいバージョンのアプリケーションにルーティングするために、Cookieベースのルーティングをサポートしていますか?

Kubernetes documentationは、カナリアの展開について話していますが、ユーザーベースのルーティングを実現する方法については言及していません。 Kubernetesが提供する既存のロードバランシングサポートを使用してクッキーに基づいてスティッキーなロードバランシングを実装することは可能ですか?

答えて

0

KubernetesのCanaryデプロイメントでは、同じアプリケーションで異なるバージョンのポッドを展開する必要があります。たとえば、アプリケーション用に5つのポッドがある場合、そのうちの1つが新しいバージョンになり、トラフィックの1/5が転送されますこの新しいバージョンに。クライアントが接続しているとき、それは常に同じポッドになってしまいますことを保証します

ユーザーベースのカナリア展開を実現するために、あなたは

sessionAffinity: ClientIP

で、あなたのサービスでスティッキーセッションを使用することができます(もしIPは同じままです)

トラフィックを割り当てるための 'クッキー'ベースの方法はありません。

+0

はい、ただし、ルーティングロジックを制御することはできません。ユーザーの選択されたサブセットのみを新しいPodにルーティングすることはできません。私はユーザーのログイン時にカナリークッキーを設定し、そのクッキーを使用してユーザーをカナリアポッドに誘導することを考えていました。 Kubernetesが負荷分散を提供していれば、それは不可能だと思います。 –

+0

私はそうは思わない。クッキーはどこかでトラフィックをプロキシするために解析する必要があります。それは非常にカスタムソリューションのようだ – MrE

関連する問題