第1章 Knative Serving CLI コマンド
1.1. kn service コマンド
以下のコマンドを使用して Knative サービスを作成し、管理できます。
1.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>
ここでは、以下のようになります。
-
--image
は、アプリケーションのイメージの URI です。 --tag
は、サービスで作成される初期リビジョンにタグを追加するために使用できるオプションのフラグです。コマンドの例
$ kn service create showcase \ --image quay.io/openshift-knative/showcase
出力例
Creating service 'showcase' in namespace 'default': 0.271s The Route is still working to reflect the latest desired specification. 0.580s Configuration "showcase" is waiting for a Revision to become ready. 3.857s ... 3.861s Ingress has not yet been reconciled. 4.270s Ready to serve. Service 'showcase' created with latest revision 'showcase-00001' and URL: http://showcase-default.apps-crc.testing
-
1.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> --port 80
新しい要求および制限パラメーターを追加してサービスを更新します。
$ kn service update <service_name> --request cpu=500m --limit memory=1024Mi --limit cpu=1000m
latest
タグをリビジョンに割り当てます。$ kn service update <service_name> --tag <revision_name>=latest
サービスの最新の
READY
リビジョンについて、testing
からstaging
にタグを更新します。$ kn service update <service_name> --untag testing --tag @latest=staging
test
タグをトラフィックの 10% を受信するリビジョンに追加し、残りのトラフィックをサービスの最新のREADY
リビジョンに送信します。$ kn service update <service_name> --tag <revision_name>=test --traffic test=10,@latest=90
1.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> --env <key>=<value>
JSON または YAML ファイルからサービス宣言を読み取ります。
$ kn service apply <service_name> -f <filename>
1.1.4. Knative CLI を使用したサーバーレスアプリケーションの記述
kn service describe
コマンドを使用して Knative サービスを記述できます。
コマンドの例
サービスを記述します。
$ kn service describe --verbose <service_name>
--verbose
フラグは任意ですが、さらに詳細な説明を提供するために追加できます。通常の出力と詳細出力の違いを次の例に示します。--verbose
フラグを使用しない出力例Name: showcase Namespace: default Age: 2m URL: http://showcase-default.apps.ocp.example.com Revisions: 100% @latest (showcase-00001) [1] (2m) Image: quay.io/openshift-knative/showcase (pinned to aaea76) Conditions: OK TYPE AGE REASON ++ Ready 1m ++ ConfigurationsReady 1m ++ RoutesReady 1m
--verbose
フラグを使用する出力例Name: showcase Namespace: default Annotations: serving.knative.dev/creator=system:admin serving.knative.dev/lastModifier=system:admin Age: 3m URL: http://showcase-default.apps.ocp.example.com Cluster: http://showcase.default.svc.cluster.local Revisions: 100% @latest (showcase-00001) [1] (3m) Image: quay.io/openshift-knative/showcase (pinned to aaea76) Env: GREET=Bonjour Conditions: OK TYPE AGE REASON ++ Ready 3m ++ ConfigurationsReady 3m ++ RoutesReady 3m
サービスを YAML 形式で記述します。
$ kn service describe <service_name> -o yaml
サービスを JSON 形式で記述します。
$ kn service describe <service_name> -o json
サービス URL のみを出力します。
$ kn service describe <service_name> -o url