1.4.2. 既知の問題
Knative Serving には、
queue-proxy
について固定された最小25m
の CPU 要求が設定されます。クラスターにこの値と競合する値が設定されている場合、たとえばdefaultRequest
の最小 CPU 要求として25m
を超える値が設定される場合、Knative サービスはデプロイに失敗します。回避策として、Knative サービスに対してresourcePercentage
アノテーションを個別に設定できます。resourcePercentage の設定例
spec: template: metadata: annotations: queue.sidecar.serving.knative.dev/resourcePercentage: "10" 1
- 1
queue.sidecar.serving.knative.dev/resourcePercentage
は、queue-proxy
に使用されるユーザーコンテナーリソースの割合です。これには 0.1 - 100 の範囲を設定できます。
OpenShift Container Platform 4.5 以降のバージョンでは、トラフィック分配機能を使用して Knative サービスをデプロイすると、Web コンソールの Developer パースペクティブに、一般的なサービスアドレスの無効な URL が表示されます。
正しい URL が YAML リソースと CLI コマンドの出力に表示されます。
-
OpenShift Serverless で ping ソースを使用している場合、他のすべての Knative Eventing コンポーネントをアンインストールし、削除した後に、
pingsource-jobrunner
Deployment
リソースは削除されません。 シンクに接続されているシンクバインディングを削除する前にシンクを削除すると、
SinkBinding
オブジェクトの削除がハングする可能性があります。回避策として、
SinkBinding
オブジェクトを編集し、ハングの原因となるファイナライザーを削除できます。finalizers: - sinkbindings.sources.knative.dev
シンクバインディングの動作が OpenShift Serverless 1.8.0 で変更され、これにより後方互換性が失われます。
シンクバインディングを使用するには、クラスター管理者は、
bindings.knative.dev/include:"true"
でSinkBinding
オブジェクトに設定された namespace にラベルを付ける必要があります。SinkBinding
オブジェクトで設定されるリソースにも、bindings.knative.dev/include:"true"
でラベル付けする必要がありますが、このタスクは すべての OpenShift Serverless ユーザーが実行できます。クラスター管理者は、以下のコマンドを入力して namespace にラベルを付けることができます。
$ oc label namespace <namespace> bindings.knative.dev/include=true
ユーザーは、
bindings.knative.dev/include=true
ラベルをリソースに手動で追加する必要があります。たとえば、このラベルを
CronJob
オブジェクトに追加するには、以下の行をジョブリソースの YAML 定義に追加します。jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"