This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第9章 Knative Serving
9.1. kn の使用による Knative Serving タスクの実行 リンクのコピーリンクがクリップボードにコピーされました!
Knative kn
CLI は oc
または kubectl
CLI ツールの機能を拡張し、OpenShift Container Platform の Knative コンポーネントとの対話を統合します。kn
を使用すると、開発者は YAML ファイルを直接編集せずにアプリケーションをデプロイし、管理できます。
9.1.1. kn を使用した基本ワークフロー リンクのコピーリンクがクリップボードにコピーされました!
以下の基本的なワークフローでは、環境変数 RESPONSE
を読み取る単純な hello
サービスをデプロイし、その出力を印刷します。
本書は、サービスでの作成、読み取り、更新、削除 (CRUD) 操作を実行する際の参照情報として使用できます。
手順
イメージからサービスを
デフォルト
namespace に作成します。kn service create hello --image docker.io/openshift/hello-openshift --env RESPONSE="Hello Serverless!"
$ kn service create hello --image docker.io/openshift/hello-openshift --env RESPONSE="Hello Serverless!"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを一覧表示します。
kn service list
$ kn service list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME URL LATEST AGE CONDITIONS READY REASON hello http://hello-default.apps-crc.testing hello-gsdks-1 8m35s 3 OK / 3 True
NAME URL LATEST AGE CONDITIONS READY REASON hello http://hello-default.apps-crc.testing hello-gsdks-1 8m35s 3 OK / 3 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl
サービスエンドポイントコマンドを使用して、サービスが機能しているかどうかを確認します。curl http://hello-default.apps-crc.testing
$ curl http://hello-default.apps-crc.testing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Hello Serverless!
Hello Serverless!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを更新します。
kn service update hello --env RESPONSE="Hello OpenShift!"
$ kn service update hello --env RESPONSE="Hello OpenShift!"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスの環境変数
RESPONSE
は Hello OpenShift! に設定されるようになりました。サービスを記述します。
kn service describe hello
$ kn service describe hello
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを削除します。
kn service delete hello
$ kn service delete hello
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Service 'hello' successfully deleted in namespace 'default'.
Service 'hello' successfully deleted in namespace 'default'.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この一覧表示を試行して、
hello
サービスが削除されていることを確認します。kn service list hello
$ kn service list hello
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No services found.
No services found.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1.2. kn を使用した自動スケーリングのワークフロー リンクのコピーリンクがクリップボードにコピーされました!
YAML ファイルを直接編集せずに kn
を使用して Knative サービスを変更することで、自動スケーリング機能にアクセスできます。
適切なフラグと共に service create
および service update
コマンドを使用して、自動スケーリング動作を設定します。
フラグ | 詳細 |
---|---|
| 単一レプリカによって処理される同時要求のハード制限。 |
|
受信する同時要求の数に基づくスケールアップのタイミングの推奨。デフォルトは |
| レプリカの最大数。 |
| レプリカの最小数。 |
9.1.3. kn を使用したトラフィック分割 リンクのコピーリンクがクリップボードにコピーされました!
kn
を使用して、Knative サービス上でルート指定されたトラフィックを取得するリビジョンを制御できます。
Knative サービスは、トラフィックのマッピングをサポートします。これは、サービスのリビジョンのトラフィックの割り当てられた部分へのマッピングです。これは特定のリビジョンに固有の URL を作成するオプションを提供し、トラフィックを最新リビジョンに割り当てる機能を持ちます。
サービスの設定が更新されるたびに、サービスルートがすべてのトラフィックを準備状態にある最新リビジョンにポイントする状態で、新規リビジョンが作成されます。この動作は、トラフィックの一部を取得するリビジョンを定義して変更することができます。
手順
kn service update
コマンドを--traffic
フラグと共に使用して、トラフィックを更新します。たとえば、すべてのトラフィックを配置する前に 10% のトラフィックを新規リビジョンにルート指定するには、以下を実行します。
kn service update svc --traffic @latest=10 --traffic svc-vwxyz=90
$ kn service update svc --traffic @latest=10 --traffic svc-vwxyz=90
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --traffic RevisionName=Percent
は以下の構文を使用します。-
--traffic
フラグには、等号 (=
) で区切られた 2 つの値が必要です。 -
RevisionName
文字列はリビジョンの名前を参照します。 -
Percent
整数はトラフィックのリビジョンに割り当てられた部分を示します。 -
RevisionName の識別子
@latest
を使用して、サービスの準備状態にある最新のリビジョンを参照します。この識別子は--traffic
フラグと共に 1 回のみ使用できます。 -
service update
コマンドがトラフィックフラグと共にサービスの設定値を更新する場合、@latest
参照は更新が適用される作成済みリビジョンをポイントします。 -
--traffic
フラグは複数回指定でき、すべてのフラグのPercent
値の合計が 100 になる場合にのみ有効です。
-
9.1.3.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
$ kn service update svc --tag @latest=candidate --tag svc-vwxyz=current
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --tag RevisionName=Tag
は以下の構文を使用します。-
--tag
フラグには、=
で区切られる 2 つの値が必要です。 -
RevisionName
文字列はRevision
の名前を参照します。 -
Tag
文字列は、このリビジョンに指定されるカスタムタグを示します。 -
RevisionName
の識別子@latest
を使用して、サービスの準備状態にある最新のリビジョンを参照します。この識別子は--tag
フラグで 1 回のみ使用できます。 -
service update
コマンドがサービスの設定値を (タグフラグと共に) 更新している場合、@latest
参照は更新の適用後に作成されるリビジョンをポイントします。 -
--tag
フラグは複数回指定できます。 -
--tag
フラグは、同じリビジョンに複数の異なるタグを割り当てる場合があります。
-
9.1.3.2. タグリビジョンの割り当て解除 リンクのコピーリンクがクリップボードにコピーされました!
トラフィックブロックのリビジョンに割り当てられたタグは、割り当て解除できます。タグの割り当てを解除すると、カスタム URL が削除されます。
リビジョンのタグが解除され、0% のトラフィックが割り当てられる場合、このリビジョンはトラフィックブロックから完全に削除されます。
手順
kn service update
コマンドを使用してリビジョンのタグの割り当てを解除します。kn service update svc --untag candidate
$ kn service update svc --untag candidate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --untag Tag
は以下の構文を使用します。-
--untag
フラグには 1 つの値が必要です。 -
tag
文字列は、割り当てを解除する必要のあるサービスのトラフィックブロックの固有のタグを示します。これにより、それぞれのカスタム URL も削除されます。 -
--untag
フラグは複数回指定できます。
-
9.1.3.3. トラフィックフラグ操作の優先順位 リンクのコピーリンクがクリップボードにコピーされました!
すべてのトラフィック関連のフラグは、単一の kn service update
コマンドを使用して指定できます。kn
は、これらのフラグの優先順位を定義します。コマンドの使用時に指定されるフラグの順番は考慮に入れられません。
kn
で評価されるフラグの優先順位は以下のとおりです。
-
--untag
: このフラグで参照されるすべてのリビジョンはトラフィックブロックから削除されます。 -
--tag
: リビジョンはトラフィックブロックで指定されるようにタグ付けされます。 -
--traffic
: 参照されるリビジョンには、分割されたトラフィックの一部が割り当てられます。
9.1.3.4. トラフィック分割フラグ リンクのコピーリンクがクリップボードにコピーされました!
kn
は kn service update
コマンドの一環として、サービスのトラフィックブロックでのトラフィック操作に対応します。
以下の表は、トラフィック分割フラグ、値の形式、およびフラグが実行する操作の概要を表示しています。Repetition 列は、フラグの特定の値が kn service update
コマンドで許可されるかどうかを示します。
フラグ | 値 | 操作 | 繰り返し |
---|---|---|---|
|
|
| はい |
|
|
| はい |
|
|
| いいえ |
|
|
| はい |
|
|
| いいえ |
|
|
リビジョンから | はい |