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.4.4. Knative Serving CLI コマンド
以下の Knative (kn
) CLI コマンドを使用して、クラスター上の Knative Serving タスクを完了できます。
4.4.1. kn service コマンド リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して Knative サービスを作成し、管理できます。
4.4.1.1. Knative CLI を使用したサーバーレスアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用してサーバーレスアプリケーションを作成すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。kn service create
コマンドを使用して、基本的なサーバーレスアプリケーションを作成できます。
前提条件
- OpenShift Serverless Operator および Knative Serving がクラスターにインストールされていること。
-
Knative (
kn
) CLI をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
Knative サービスを作成します。
kn service create <service-name> --image <image> --tag <tag-value>
$ kn service create <service-name> --image <image> --tag <tag-value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は以下のようになります。
-
--image
は、アプリケーションのイメージの URI です。 --tag
は、サービスで作成される初期リビジョンにタグを追加するために使用できるオプションのフラグです。コマンドの例
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
4.4.1.2. Knative CLI を使用したサーバーレスアプリケーションの更新 リンクのコピーリンクがクリップボードにコピーされました!
サービスを段階的に構築する際に、コマンドラインで kn service update
コマンドを使用し、対話式のセッションを使用できます。kn service apply
コマンドとは対照的に、kn service update
コマンドを使用する際は、Knative サービスの完全な設定ではなく、更新が必要な変更のみを指定する必要があります。
コマンドの例
新規の環境変数を追加してサービスを更新します。
kn service update <service_name> --env <key>=<value>
$ kn service update <service_name> --env <key>=<value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいポートを追加してサービスを更新します。
kn service update <service_name> --port 80
$ kn service update <service_name> --port 80
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい要求および制限パラメーターを追加してサービスを更新します。
kn service update <service_name> --request cpu=500m --limit memory=1024Mi --limit cpu=1000m
$ kn service update <service_name> --request cpu=500m --limit memory=1024Mi --limit cpu=1000m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow latest
タグをリビジョンに割り当てます。kn service update <service_name> --tag <revision_name>=latest
$ kn service update <service_name> --tag <revision_name>=latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスの最新の
READY
リビジョンについて、testing
からstaging
にタグを更新します。kn service update <service_name> --untag testing --tag @latest=staging
$ kn service update <service_name> --untag testing --tag @latest=staging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow test
タグをトラフィックの 10% を受信するリビジョンに追加し、残りのトラフィックをサービスの最新のREADY
リビジョンに送信します。kn service update <service_name> --tag <revision_name>=test --traffic test=10,@latest=90
$ kn service update <service_name> --tag <revision_name>=test --traffic test=10,@latest=90
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.1.3. サービス宣言の適用 リンクのコピーリンクがクリップボードにコピーされました!
kn service apply
コマンドを使用して Knative サービスを宣言的に設定できます。サービスが存在しない場合は、これが作成されますが、それ以外の場合は、既存のサービスが変更されたオプションで更新されます。
kn service apply
コマンドは、ユーザーがターゲットの状態を宣言するために単一コマンドでサービスの状態を詳細に指定したい場合など、とくにシェルスクリプトや継続的インテグレーションパイプラインで役に立ちます。
kn service apply
を使用する場合は、Knative サービスの詳細な設定を指定する必要があります。これは kn service update
コマンドとは異なります。このコマンドでは、更新する必要のあるオプションを指定するだけで済みます。
コマンドの例
サービスを作成します。
kn service apply <service_name> --image <image>
$ kn service apply <service_name> --image <image>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 環境変数をサービスに追加します。
kn service apply <service_name> --image <image> --env <key>=<value>
$ kn service apply <service_name> --image <image> --env <key>=<value>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow JSON または YAML ファイルからサービス宣言を読み取ります。
kn service apply <service_name> -f <filename>
$ kn service apply <service_name> -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.1.4. Knative CLI を使用したサーバーレスアプリケーションの記述 リンクのコピーリンクがクリップボードにコピーされました!
kn service describe
コマンドを使用して Knative サービスを記述できます。
コマンドの例
サービスを記述します。
kn service describe --verbose <service_name>
$ kn service describe --verbose <service_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --verbose
フラグは任意ですが、さらに詳細な説明を提供するために追加できます。通常の出力と詳細の出力の違いについては、以下の例に示されます。--verbose
フラグを使用しない出力例Copy to Clipboard Copied! Toggle word wrap Toggle overflow --verbose
フラグを使用する出力例Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを YAML 形式で記述します。
kn service describe <service_name> -o yaml
$ kn service describe <service_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを JSON 形式で記述します。
kn service describe <service_name> -o json
$ kn service describe <service_name> -o json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービス URL のみを出力します。
kn service describe <service_name> -o url
$ kn service describe <service_name> -o url
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. Knative CLI オフラインモードについて リンクのコピーリンクがクリップボードにコピーされました!
kn service
コマンドを実行すると、変更が即座にクラスターに伝播されます。ただし、別の方法として、オフラインモードで kn service
コマンドを実行できます。オフラインモードでサービスを作成すると、クラスター上で変更は発生せず、代わりにサービス記述子ファイルがローカルマシンに作成されます。
Knative CLI のオフラインモードはテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
記述子ファイルの作成後、手動で変更し、バージョン管理システムで追跡できます。記述子ファイルで kn service create -f
、kn service apply -f
または oc apply -f
コマンドを使用して変更をクラスターに伝播することもできます。
オフラインモードには、いくつかの用途があります。
- 記述子ファイルを使用してクラスターで変更する前に、記述子ファイルを手動で変更できます。
- バージョン管理システムでは、サービスの記述子ファイルをローカルで追跡できます。これにより、記述子ファイルを再利用できます。たとえば、継続的インテグレーション (CI) パイプライン、開発環境またはデモなどで、ターゲットクラスター以外の配置が可能になります。
-
作成した記述子ファイルを検証して Knative サービスについて確認できます。特に、生成されるサービスが
kn
コマンドに渡されるさまざまな引数によってどのように影響するかを確認できます。
オフラインモードには、高速で、クラスターへの接続を必要としないという利点があります。ただし、オフラインモードではサーバー側の検証がありません。したがって、サービス名が一意であることや、指定のイメージをプルできることなどを確認できません。
4.4.2.1. オフラインモードを使用したサービスの作成 リンクのコピーリンクがクリップボードにコピーされました!
オフラインモードで kn service
コマンドを実行すると、クラスター上で変更は発生せず、代わりにサービス記述子ファイルがローカルマシンに作成されます。記述子ファイルを作成した後、クラスターに変更を伝播する前にファイルを変更することができます。
Knative CLI のオフラインモードはテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- OpenShift Serverless Operator および Knative Serving がクラスターにインストールされていること。
-
Knative (
kn
) CLI をインストールしている。
手順
オフラインモードでは、ローカルの Knative サービス記述子ファイルを作成します。
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest \ --target ./ \ --namespace test
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest \ --target ./ \ --namespace test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Service 'event-display' created in namespace 'test'.
Service 'event-display' created in namespace 'test'.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --target ./
フラグはオフラインモードを有効にし、./
を新しいディレクトリーツリーを保存するディレクトリーとして指定します。既存のディレクトリーを指定せずに、
--target my-service.yaml
などのファイル名を使用すると、ディレクトリーツリーは作成されません。代わりに、サービス記述子ファイルmy-service.yaml
のみが現在のディレクトリーに作成されます。ファイル名には、
.yaml
、.yml
または.json
拡張子を使用できます。.json
を選択すると、JSON 形式でサービス記述子ファイルが作成されます。--namespace test
オプションは、新規サービスをテスト
namespace に配置します。--namespace
を使用せずに、OpenShift Container Platform クラスターにログインしている場合には、記述子ファイルが現在の namespace に作成されます。それ以外の場合は、記述子ファイルがdefault
の namespace に作成されます。
作成したディレクトリー構造を確認します。
tree ./
$ tree ./
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
--target
で指定する現在の./
ディレクトリーには新しいtest/
ディレクトリーが含まれます。このディレクトリーの名前は、指定の namespace をもとに付けられます。 -
test/
ディレクトリーには、リソースタイプの名前が付けられたksvc
ディレクトリーが含まれます。 -
ksvc
ディレクトリーには、指定のサービス名に従って命名される記述子ファイルevent-display.yaml
が含まれます。
-
生成されたサービス記述子ファイルを確認します。
cat test/ksvc/event-display.yaml
$ cat test/ksvc/event-display.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいサービスに関する情報を一覧表示します。
kn service describe event-display --target ./ --namespace test
$ kn service describe event-display --target ./ --namespace test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --target ./
オプションは、namespace サブディレクトリーを含むディレクトリー構造のルートディレクトリーを指定します。または、
--target
オプションで YAML または JSON ファイルを直接指定できます。使用可能なファイルの拡張子は、.yaml
、.yml
、および.json
です。--namespace
オプションは、namespace を指定し、この namespace は必要なサービス記述子ファイルを含むサブディレクトリーのkn
と通信します。--namespace
を使用せず、OpenShift Container Platform クラスターにログインしている場合には、kn
は現在の namespace をもとに名前が付けられたサブディレクトリーでサービスを検索します。それ以外の場合は、kn
はdefault/
サブディレクトリーで検索します。
サービス記述子ファイルを使用してクラスターでサービスを作成します。
kn service create -f test/ksvc/event-display.yaml
$ kn service create -f test/ksvc/event-display.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3. kn container コマンド リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して、Knative サービス仕様で複数のコンテナーを作成し、管理できます。
4.4.3.1. Knative クライアントマルチコンテナーのサポート リンクのコピーリンクがクリップボードにコピーされました!
kn container add
コマンドを使用して、YAML コンテナーの仕様を標準出力に出力できます。このコマンドは、定義を作成するために他の標準の kn
フラグと共に使用できるため、マルチコンテナーのユースケースに役立ちます。
kn container add
コマンドは、kn service create
コマンドで使用できるコンテナー関連のすべてのフラグを受け入れます。UNIX パイプ (|
) を使用して kn container add
コマンドを連結して、一度に複数のコンテナー定義を作成することもできます。
コマンドの例
イメージからコンテナーを追加し、標準出力に出力します。
kn container add <container_name> --image <image_uri>
$ kn container add <container_name> --image <image_uri>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
kn container add sidecar --image docker.io/example/sidecar
$ kn container add sidecar --image docker.io/example/sidecar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
containers: - image: docker.io/example/sidecar name: sidecar resources: {}
containers: - image: docker.io/example/sidecar name: sidecar resources: {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 2 つの
kn container add
コマンドを連結してから、kn service create
コマンドに渡して、2 つのコンテナーで Knative サービスを作成します。kn container add <first_container_name> --image <image_uri> | \ kn container add <second_container_name> --image <image_uri> | \ kn service create <service_name> --image <image_uri> --extra-containers -
$ kn container add <first_container_name> --image <image_uri> | \ kn container add <second_container_name> --image <image_uri> | \ kn service create <service_name> --image <image_uri> --extra-containers -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --extra-containers -
は、kn
が YAML ファイルの代わりにパイプ入力を読み取る特別なケースを指定します。コマンドの例
kn container add sidecar --image docker.io/example/sidecar:first | \ kn container add second --image docker.io/example/sidecar:second | \ kn service create my-service --image docker.io/example/my-app:latest --extra-containers -
$ kn container add sidecar --image docker.io/example/sidecar:first | \ kn container add second --image docker.io/example/sidecar:second | \ kn service create my-service --image docker.io/example/my-app:latest --extra-containers -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --extra-containers
フラグは YAML ファイルへのパスを受け入れることもできます。kn service create <service_name> --image <image_uri> --extra-containers <filename>
$ kn service create <service_name> --image <image_uri> --extra-containers <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
kn service create my-service --image docker.io/example/my-app:latest --extra-containers my-extra-containers.yaml
$ kn service create my-service --image docker.io/example/my-app:latest --extra-containers my-extra-containers.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.4. kn domain コマンド リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して、ドメインマッピングを作成および管理できます。
4.4.4.1. Knative CLI を使用したカスタムドメインマッピングの作成 リンクのコピーリンクがクリップボードにコピーされました!
所有するカスタムドメイン名を Knative サービスにマッピングすることで、Knative サービスのドメインをカスタマイズできます。Knative (kn
) CLI を使用して、Knative サービスまたは Knative ルートなどのアドレス指定可能なターゲット CR にマップする DomainMapping
カスタムリソース (CR) を作成できます。
前提条件
- OpenShift Serverless Operator および Knative Serving がクラスターにインストールされている。
Knative サービスまたはルートを作成し、その CR にマップするカスタムドメインを制御している。
注記カスタムドメインは OpenShift Container Platform クラスターの DNS を参照する必要があります。
-
Knative (
kn
) CLI をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
ドメインを現在の namespace の CR にマップします。
kn domain create <domain_mapping_name> --ref <target_name>
$ kn domain create <domain_mapping_name> --ref <target_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
kn domain create example.com --ref example-service
$ kn domain create example.com --ref example-service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --ref
フラグは、ドメインマッピング用のアドレス指定可能なターゲット CR を指定します。--ref
フラグの使用時に接頭辞が指定されていない場合、ターゲットが現在の namespace の Knative サービスであることを前提としています。ドメインを指定された namespace の Knative サービスにマップします。
kn domain create <domain_mapping_name> --ref <ksvc:service_name:service_namespace>
$ kn domain create <domain_mapping_name> --ref <ksvc:service_name:service_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
kn domain create example.com --ref ksvc:example-service:example-namespace
$ kn domain create example.com --ref ksvc:example-service:example-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインを Knative ルートにマップします。
kn domain create <domain_mapping_name> --ref <kroute:route_name>
$ kn domain create <domain_mapping_name> --ref <kroute:route_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
kn domain create example.com --ref kroute:example-route
$ kn domain create example.com --ref kroute:example-route
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.4.2. Knative CLI を使用したカスタムドメインマッピングの管理 リンクのコピーリンクがクリップボードにコピーされました!
DomainMapping
カスタムリソース (CR) の作成後に、既存の CR の一覧表示、既存の CR の情報の表示、CR の更新、または Knative (kn
) CLI を使用した CR の削除を実行できます。
前提条件
- OpenShift Serverless Operator および Knative Serving がクラスターにインストールされている。
-
1 つ以上の
DomainMapping
CR を作成している。 -
Knative (
kn
) CLI ツールをインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
既存の
DomainMapping
CR を一覧表示します。kn domain list -n <domain_mapping_namespace>
$ kn domain list -n <domain_mapping_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存の
DomainMapping
CR の詳細を表示します。kn domain describe <domain_mapping_name>
$ kn domain describe <domain_mapping_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規ターゲットを参照するように
DomainMapping
CR を更新します。kn domain update --ref <target>
$ kn domain update --ref <target>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DomainMapping
CR を削除します。kn domain delete <domain_mapping_name>
$ kn domain delete <domain_mapping_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow