サービスバージョンは、クラウドネイティブゲートウェイのルートに対して構成されるタグベースのルーティング機能に使用されます。 カナリアリリース、タグベースのルーティング、高可用性デプロイメントなどのシナリオの要件を満たすように、ルートのタグベースのルーティングポリシーを構成できます。
サービスソースが [固定アドレス] または [DNS ドメイン名] に設定されているサービスのバージョンは管理できません。
背景情報
マイクロサービスでは、サービスはアプリケーションの機能単位として定義されます。 サービスは、注文サービスやユーザーサービスなどの分野に固有です。 物理的には、サービスは物理マシン、仮想マシン、またはネットワークアドレスを持つコンテナ内でデプロイおよび実行されます。 論理的には、サービスは同じ機能を提供するノードで構成されます。
サービスのノードは、ノードのメタデータに基づいて異なるサブセットに分割できます。 サービスバージョンは、ノードのサブセットと呼ばれます。 サービスバージョンは、通常、[カナリアリリース]、[タグベースのルーティング]、および [高可用性デプロイメント] で使用されます。
カナリアリリース: サービスの新しいバージョンは、サービスのイテレーション全体で頻繁にリリースされます。 サービスの安定性と継続性を確保するために、開発者はほとんどの場合、カナリアリリース機能を使用してサービスの更新を実行します。 新しいバージョンをテストするためにカナリアリリースを実行する場合、トラフィックのごく一部が新しいバージョンにルーティングされます。 テスト結果が期待どおりであれば、残りのトラフィックは徐々に新しいバージョンにルーティングされます。
タグベースのルーティング: ビジネスシナリオでは、サービスの複数のバージョンが並行して存在する場合があります。 バージョンの機能は異なり、情報固有のリクエストに適用されます。 たとえば、同じ API 操作が呼び出されると、異なるヘッダー値を持つリクエストは、サービスの異なるバージョンに転送されます。 タグベースのルーティングは、テスト、ステージング、本番環境などの複数の開発環境が共存するシナリオでも使用されます。 サービスバージョンを使用して、リクエスト情報に基づいてリクエストを異なる開発環境に転送できます。
高可用性デプロイメント: サービスの可用性を確保するために、同一のサービスが複数の Kubernetes クラスターにデプロイされる場合があります。 ノードのクラスターメタデータに基づいて、クラスターごとにすべてのサービスインスタンスを管理できます。 また、重み付けを調整して、クラスターへのトラフィックを分散させることもできます。 クラスターに障害が発生した場合、そのクラスターのトラフィックの重みを 0 に設定すると、すべてのトラフィックが他のクラスターに転送されます。
サービスバージョンの管理は、サービスノードのメタデータによって異なります。
Container Service for Kubernetes (ACK) クラスター上のサービスの場合、サービスノードのメタデータは、Pod のラベル属性によって決定されます。 たとえば、ACK クラスターのインスタンスを持つ Spring Cloud サービスを登録する場合、Spring Cloud サービスに対応するタグ名とタグ値を、ACK クラスターの deployment.yaml ファイルの
spec.template.metadata.labelsに追加できます。 // ACK クラスターの deployment.yaml ファイルの spec.template.metadata.labels に Spring Cloud サービスに対応するタグ名とタグ値を追加できます。Nacos レジストリを使用するサービスの場合、サービスノードのメタデータは、サービスアプリケーションがレジストリに登録されるときに構成されます。 たとえば、Nacos インスタンスを持つ Spring Cloud アプリケーションを登録する場合、
spring.cloud.nacos.discovery.metadataフィールドを指定して、ノードのメタデータを決定できます。 // ノードのメタデータを決定するために spring.cloud.nacos.discovery.metadata フィールドを指定できます。
サービスバージョンの追加
MSE コンソール にログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。 [ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
左側のナビゲーションペインで、Routes をクリックします。 表示されるページで、[サービス] タブをクリックします。
[サービス] タブで、変更するサービスの名前をクリックします。 Service Version セクションで、Add Version をクリックします。
サービスバージョンリストで、パラメーターを構成し、
Actions 列の アイコンをクリックします。
パラメーター
説明
Version Name
サービスバージョンの名前を指定します。 短くわかりやすい名前を使用することをお勧めします。
Tag Name
ドロップダウンリストからタグ名を選択します。 タグ名は、サービスのすべてのノードのメタデータを示すキーの完全なセットを識別するために使用されます。 追加するサービスバージョンのサービスノードのセットを区別するために、キーを選択する必要があります。
Tag Value
ドロップダウンリストからタグ値を選択します。 タグ値は、[タグ名] で指定されたキーに対応する値の完全なセットを識別するために使用されます。 追加するサービスバージョンのサービスノードの範囲をさらに絞り込むために、値を選択する必要があります。
Number of Instances/Proportion
インスタンス数: 指定されたタグ名とタグ値で識別されるサービスノードの数。 これらのノードは、追加するサービスバージョンに属します。
割合: 新しいサービスバージョンに属するサービスノードの、すべてのサービスノードに対する割合。
説明Tag Name と Tag Value は、追加するサービスバージョンのインスタンスを識別するために一緒に使用されます。
表示されるメッセージで、OK をクリックします。
追加されたサービスバージョンは、Service Version セクションに表示されます。
サービスバージョンの編集
MSE コンソール にログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。 [ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
左側のナビゲーションペインで、Routes をクリックします。 表示されるページで、[サービス] タブをクリックします。
[サービス] タブで、変更するサービスの名前をクリックします。 Service Version セクションで、目的のバージョンを見つけ、
Actions 列の アイコンをクリックします。Tag Name と Tag Value の設定を変更し、
Actions 列の アイコンをクリックします。表示されるメッセージで、OK をクリックします。
サービスバージョンの削除
MSE コンソール にログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。 [ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
左側のナビゲーションペインで、Routes をクリックします。 表示されるページで、[サービス] タブをクリックします。
[サービス] タブで、変更するサービスの名前をクリックします。 Service Version リストで、目的のバージョンを見つけ、
Actions 列の アイコンをクリックします。表示されるメッセージで、OK をクリックします。