8.5. Knative Client を使用したトラフィック分割
kn
は、Knative サービス上でルート指定されたトラフィックを取得するリビジョンを制御するのに役立ちます。
Knative サービスは、トラフィックのマッピングを許可します。これは、サービスのリビジョンのトラフィックの割り当てられた部分へのマッピングです。これは特定のリビジョンに固有の URL を作成するオプションを提供し、トラフィックを最新リビジョンに割り当てる機能を持ちます。
サービスの設定が更新されるたびに、サービスルートがすべてのトラフィックを準備状態にある最新リビジョンにポイントする状態で、新規リビジョンが作成されます。
この動作は、トラフィックの一部を取得するリビジョンを定義して変更することができます。
手順
-
kn service update
コマンドを--traffic
フラグと共に使用して、トラフィックを更新します。
--traffic RevisionName=Percent
は以下の構文を使用します。
-
--traffic
フラグには、等号 (=
) で区切られた 2 つの値が必要です。 -
RevisionName
文字列はリビジョンの名前を参照します。 -
Percent
整数はトラフィックのリビジョンに割り当てられた部分を示します。 -
RevisionName の識別子
@latest
を使用して、サービスの準備状態にある最新のリビジョンを参照します。この識別子は--traffic
フラグと共に 1 回のみ使用できます。 -
service update
コマンドがトラフィックフラグと共にサービスの設定値を更新する場合、@latest
参照は更新が適用される作成済みリビジョンをポイントします。 -
--traffic
フラグは複数回指定でき、すべてのフラグのPercent
値の合計が 100 になる場合にのみ有効です。
たとえば、すべてのトラフィックを配置する前に 10% のトラフィックを新規リビジョンにルート指定するには、以下のコマンドを使用します。
$ kn service update svc --traffic @latest=10 --traffic svc-vwxyz=90
8.5.1. タグリビジョンの割り当て
サービスのトラフィックブロック内のタグは、参照されるリビジョンをポイントするカスタム URL を作成します。ユーザーは、http(s)://TAG-SERVICE.DOMAIN
形式を使用して、カスタム URL を作成するサービスの利用可能なリビジョンの固有タグを定義できます。
指定されたタグは、サービスのトラフィックブロックに固有のものである必要があります。kn
は kn service update
コマンドの一環として、サービスのリビジョンのカスタムタグの割り当ておよび割り当て解除に対応します。
タグを特定のリビジョンに割り当てた場合、ユーザーは、--traffic
フラグ内で --traffic Tag=Percent
として示されるタグでこのリビジョンを参照できます。
手順
以下のコマンドを使用します。
$ kn service update svc --tag @latest=candidate --tag svc-vwxyz=current
--tag RevisionName=Tag
は以下の構文を使用します。
-
--tag
フラグには、=
で区切られる 2 つの値が必要です。 -
RevisionName
文字列はRevision
の名前を参照します。 -
Tag
文字列は、このリビジョンに指定されるカスタムタグを示します。 -
RevisionName の識別子
@latest
を使用して、サービスの準備状態にある最新のリビジョンを参照します。この識別子は--tag
フラグで 1 回のみ使用できます。 -
service update
コマンドがサービスの設定値を (タグフラグと共に) 更新している場合、@latest
参照は更新の適用後に作成されるリビジョンをポイントします。 -
--tag
フラグは複数回指定できます。 -
--tag
フラグは、同じリビジョンに複数の異なるタグを割り当てる場合があります。
8.5.2. タグリビジョンの割り当て解除
トラフィックブロックのリビジョンに割り当てられたタグは、割り当て解除できます。タグの割り当てを解除すると、カスタム URL が削除されます。
リビジョンのタグが解除され、0% のトラフィックが割り当てられる場合、このリビジョンはトラフィックブロックから完全に削除されます。
手順
ユーザーは、
kn service update
コマンドを使用してリビジョンのタグの割り当てを解除できます。$ kn service update svc --untag candidate
--untag Tag
は以下の構文を使用します。
-
--untag
フラグには 1 つの値が必要です。 -
tag
文字列は、割り当てを解除する必要のあるサービスのトラフィックブロックの固有のタグを示します。これにより、それぞれのカスタム URL も削除されます。 -
--untag
フラグは複数回指定できます。
8.5.3. トラフィックフラグ操作の優先順位
すべてのトラフィック関連のフラグは、単一の kn service update
コマンドを使用して指定できます。 kn
はこれらのフラグの優先順位を定義します。コマンドの使用時に指定されるフラグの順番は考慮に入れられません。
kn
で評価されるフラグの優先順位は以下のとおりです。
-
--untag
: このフラグで参照されるすべてのリビジョンはトラフィックブロックから削除されます。 -
--tag
: リビジョンはトラフィックブロックで指定されるようにタグ付けされます。 -
--traffic
: 参照されるリビジョンには、分割されたトラフィックの一部が割り当てられます。
8.5.4. トラフィック分割フラグ
kn
は kn service update
コマンドの一環として、サービスのトラフィックブロックでのトラフィック操作に対応します。
以下の表は、トラフィック分割フラグ、値の形式、およびフラグが実行する操作の概要を表示しています。「繰り返し」列は、フラグの特定の値が kn service update
コマンドで許可されるかどうかを示します。
フラグ | 値 | オペレーション | 繰り返し |
---|---|---|---|
|
|
| Yes |
|
|
| Yes |
|
|
| No |
|
|
| Yes |
|
|
| No |
| tag |
リビジョンから | Yes |