5.4. Routing
Knative は OpenShift Dedicated TLS 終端を使用して Knative サービスのルーティングを提供します。Knative サービスが作成されると、OpenShift Dedicated ルートがサービス用に自動的に作成されます。このルートは OpenShift Serverless Operator によって管理されます。OpenShift Dedicated ルートは、OpenShift Dedicated クラスターと同じドメインで Knative サービスを公開します。
OpenShift Dedicated ルーティングの Operator 制御を無効にすることで、Knative ルートを TLS 証明書を直接使用するように設定できます。
Knative ルートは OpenShift Dedicated ルートと共に使用し、トラフィック分割などの詳細なルーティング機能を提供します。
5.4.1. OpenShift Dedicated ルートのラベルおよびアノテーションのカスタマイズ
OpenShift Dedicated ルートは、Knative サービスの metadata
仕様を変更して設定できるカスタムラベルおよびアノテーションの使用をサポートします。カスタムラベルおよびアノテーションはサービスから Knative ルートに伝番され、次に Knative ingress に、最後に OpenShift Dedicated ルートに伝播されます。
前提条件
- OpenShift Serverless Operator および Knative Serving が OpenShift Dedicated クラスターにインストールされている必要があります。
-
OpenShift CLI (
oc
) をインストールしている。
手順
OpenShift Dedicated ルートに伝播するラベルまたはアノテーションが含まれる Knative サービスを作成します。
YAML を使用してサービスを作成するには、以下を実行します。
YAML を使用して作成されるサービスの例
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: <service_name> labels: <label_name>: <label_value> annotations: <annotation_name>: <annotation_value> ...
Knative (
kn
) CLI を使用してサービスを作成するには、次のように入力します。kn
コマンドを使用して作成されるサービスの例$ kn service create <service_name> \ --image=<image> \ --annotation <annotation_name>=<annotation_value> \ --label <label_value>=<label_value>
以下のコマンドからの出力を検査して、OpenShift Dedicated ルートが追加したアノテーションまたはラベルで作成されていることを確認します。
検証のコマンドの例
$ oc get routes.route.openshift.io \ -l serving.knative.openshift.io/ingressName=<service_name> \ 1 -l serving.knative.openshift.io/ingressNamespace=<service_namespace> \ 2 -n knative-serving-ingress -o yaml \ | grep -e "<label_name>: \"<label_value>\"" -e "<annotation_name>: <annotation_value>" 3