OpenShift Serverless について
OpenShift Serverless の概要
概要
第1章 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless のライフサイクルとサポートされるプラットフォームの詳細は、OpenShift Operator ライフサイクル を参照してください。
リリースノートには、新機能、非推奨機能、互換性を損なう変更、既知の問題に関する情報が記載されています。以下のリリースノートは、OpenShift Container Platform 上の最新の OpenShift Serverless リリースに適用されます。
OpenShift Serverless 機能の概要については、OpenShift Serverless についてを参照してください。
OpenShift Serverless はオープンソースの Knative プロジェクトに基づいています。
最新の Knative コンポーネントリリースの詳細は、Knative ブログ を参照してください。
1.1. API バージョンについて リンクのコピーリンクがクリップボードにコピーされました!
API バージョンは、OpenShift Serverless の特定の機能およびカスタムリソースの開発状況を示す重要な指標です。正しい API バージョンを使用していないリソースをクラスター上に作成すると、デプロイメントで問題が発生する可能性があります。
OpenShift Serverless Operator は、最新バージョンを使用するように非推奨の API を使用する古いリソースを自動的にアップグレードします。たとえば、v1beta1
などの古いバージョンの ApiServerSource
API を使用するクラスターにリソースを作成していると、OpenShift Serverless Operator はこれらのリソースを自動的に更新し、これが利用可能な場合に API の v1
バージョンを使用するようになり、v1beta1
バージョンは非推奨になりました。
非推奨となった古いバージョンは、今後のリリースで削除される可能性があります。API の非推奨バージョンを使用すると、リソースが失敗することはありません。ただし、削除された API のバージョンを使用しようとすると、リソースが失敗します。問題を回避するために、マニフェストが最新バージョンを使用するように更新されていることを確認します。
1.2. 一般提供およびテクノロジープレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
一般提供 (GA) の機能は完全にサポートされており、実稼働での使用に適しています。テクノロジープレビュー (TP) 機能は実験的な機能であり、本番環境での使用を目的としたものではありません。TP 機能の詳細は、Red Hat Customer Portal の Technology Preview のサポート範囲 を参照してください。
次の表は、どの OpenShift Serverless 機能が GA であり、どの機能が TP であるかに関する情報を提供します。
機能 | 1.32 | 1.33 | 1.34 |
---|---|---|---|
Eventing トランスポートの暗号化 | - | - | TP |
トランスポート暗号化の提供 | - | - | TP |
OpenShift Serverless Logic | TP | GA | GA |
ARM64 サポート | - | TP | TP |
Custom Metrics Autoscaler Operator (KEDA) | - | TP | TP |
kn event プラグイン | TP | TP | TP |
Pipelines-as-code | TP | TP | TP |
| TP | TP | TP |
S2I ビルダーを使用した Go 関数 | TP | TP | TP |
単一ノード OpenShift での Serverless のインストールと使用 | GA | GA | GA |
Service Mesh を使用して Serverless でネットワークトラフィックを分離する | TP | TP | TP |
Serverless Logic | TP | GA | GA |
関数における | GA | GA | GA |
| GA | GA | GA |
Quarkus 関数 | GA | GA | GA |
Node.js 関数 | GA | GA | GA |
TypeScript 関数 | GA | GA | GA |
Python 関数 | TP | TP | TP |
Service Mesh mTLS | GA | GA | GA |
| GA | GA | GA |
HTTPS リダイレクト | GA | GA | GA |
Kafka ブローカー | GA | GA | GA |
Kafka シンク | GA | GA | GA |
Knative サービスの init コンテナーのサポート | GA | GA | GA |
Knative サービスの PVC サポート | GA | GA | GA |
namespace スコープのブローカー | TP | TP | TP |
| GA | GA | GA |
1.3. 非推奨の機能と削除された機能 リンクのコピーリンクがクリップボードにコピーされました!
以前のリリースで一般提供 (GA) またはテクノロジープレビュー (TP) であった一部の機能は、非推奨または削除されました。非推奨の機能は依然として OpenShift Serverless に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。
OpenShift Serverless で非推奨となり、削除された主な機能の最新のリストについては、以下の表を参照してください。
機能 | 1.29 | 1.30 | 1.31 | 1.32 | 1.33 | 1.34 |
---|---|---|---|---|---|---|
EventTypes | - | - | - | 非推奨 | 非推奨 | 非推奨 |
| - | - | - | 削除済み | 削除済み | 削除済み |
Kourier が有効になっている場合の Serverless 対応の Red Hat OpenShift Service Mesh | - | - | - | 非推奨 | 非推奨 | 非推奨 |
| - | 非推奨 | 非推奨 | 非推奨 | 非推奨 | 非推奨 |
| 非推奨 | 非推奨 | 非推奨 | 非推奨 | 非推奨 | 非推奨 |
Serving および Eventing | 削除済み | 削除済み | 削除済み | 削除済み | 削除済み | 削除済み |
| 削除済み | 削除済み | 削除済み | 削除済み | 削除済み | 削除済み |
| 削除済み | 削除済み | 削除済み | 削除済み | 削除済み | 削除済み |
1.4. Red Hat OpenShift Serverless 1.34 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.34 が利用可能になりました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.4.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.14 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.14 を使用するようになりました。
- OpenShift Serverless は Kourier 1.14 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.14 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.14 に Knative を使用するようになりました。
-
kn func
CLI プラグインがfunc
1.15 を使用するようになりました。 - OpenShift Serverless Logic は、同じ namespace で OpenAPI の複数の設定をサポートするようになりました。
- OpenShift Serverless Logic の管理コンソールが、テクノロジープレビュー (TP) 機能として利用できるようになり、開発プロセスの効率化を実現します。
- OpenShift Serverless Logic 1.34 では、ワークフローが設定を通じてさまざまな OpenShift Container Platform クラスターにアクセスできるようにする新しい機能が導入されています。この機能により、ユーザーはワークフロー内で REST 呼び出しを定義して、複数のクラスターとシームレスに対話できるようになります。
-
OpenShift Serverless Logic では、Job Service liveness チェックが強化され、リーダーステータスの取得に必要な時間を抑えることができるようになりました。新しいシステムプロパティー
kogito.jobs-service.management.leader-check.expiration-in-seconds
が導入され、リーダーステータスチェックに許可される最大時間を設定できるようになりました。 -
自動
EventType
登録は、テクノロジープレビュー (TP) として利用できるイベント機能です。ブローカーの Ingress とメモリー内チャネルで処理されたイベントに基づいてEventTypes
オブジェクトを自動的に作成し、EventTypes
の使用と作成のエクスペリエンスを向上させます。 - 暗号化サービスは、テクノロジープレビュー (TP) 機能として利用できるようになりました。
- スタートアッププローブがサポートされるようになり、コールドスタート時間が短縮され、アプリケーションの起動が高速化され、パフォーマンスが向上します。これらのプローブは、コンテナーの起動プロセスが遅いに特に役立ちます。
- OpenShift Serverless Serving のトランスポート暗号化機能により、TLS を使用してセキュリティーで保護され暗号化された HTTPS 接続を介してデータを転送できます。これは現在、テクノロジープレビュー (TP) 機能として利用できます。
- S2I ビルダーを使用する Go 関数が、Linux および Mac 開発者向けのテクノロジープレビュー (TP) 機能として利用できるようになりました。これにより、開発者はこれらのプラットフォームで Go 関数を実装および構築できます。
-
Knative Serving のマルチコンテナーサポートにより、単一の Knative サービスを使用してマルチコンテナー Pod をデプロイできます。また、複数のコンテナーの
readiness
とliveness
のプローブ値もサポートします。 -
Knative Kafka トリガーの自動スケーリングが、テクノロジープレビュー (TP) として KEDA (Kubernetes Event-Driven Autoscaling) によって強化されました。CMA/KEDA を使用した自動スケーリングは、Kafka トリガーと
KafkaSource
オブジェクトのリソース割り当てを最適化することでパフォーマンスをさらに向上させ、イベント駆動型ワークロードでのスケーラビリティーを向上します。 - Knative Eventing は、テクノロジープレビュー (TP) 機能として、転送中のデータの暗号化 (Eventing TLS) のサポートを提供するようになりました。Knative Eventing コンポーネントを設定して、HTTPS アドレスを公開したり、ユーザー提供の CA 信頼バンドルをクライアントに追加したりできます。
1.4.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
以前は、
KafkaSource.spec.net.tls.key
の読み込みに失敗しても、KafkaSource
オブジェクトが誤ってReady
ステータスのままになっていました。この問題は解決されています。PKCS #1 (Public-Key Cryptography Standards#1) 形式のサポートされていない TLS 証明書を使用して KafkaBroker
、KafkaChannel
、KafkaSource
、またはKafkaSink
オブジェクトを作成するとエラーが報告されるようになり、設定の問題が適切に処理され、通知されるようになりました。 -
Eventing コントローラーが間違ったオブジェクトタイプ (
Namespace
) を誤って再キューに入れたため、"resource not found" というログエラーが発生しました。この問題は解決され、コントローラーがオブジェクトの再キューイングを処理するようになり、ロギングとリソース管理の正確性が向上されるようになります。
1.5. Red Hat OpenShift Serverless 1.33.2 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.33.2 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する修正された問題は、次の注記に含まれています。
1.5.1. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
以前は、ユーザー namespace で
KnativeServing
やKnativeEventing
などの Knative インストールリソースを作成すると、OpenShift Serverless Operator で無限調整ループが発生していました。この問題は、knative-serving
またはknative-eventing
以外の namespace で Knative インストールリソースが作成されないようにするアドミッション Webhook を再導入することで解決されました。 - 以前は、インストール後のバッチジョブは一定期間後に削除され、特権サービスアカウントはバインドされていない状態のままでした。これにより、コンプライアンスシステムが問題を警告しました。この問題は、完了したジョブを保持し、サービスアカウントがバインドされたままになることで解決されました。
1.6. Red Hat OpenShift Serverless 1.33 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.33 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.6.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.12 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.12 を使用するようになりました。
- OpenShift Serverless は Kourier 1.12 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.12 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.12 に Knative を使用するようになりました。
-
kn func
CLI プラグインがfunc
1.14 を使用するようになりました。 OpenShift Serverless Logic が一般提供 (GA) されました。このリリースには、OpenShift Serverless Logic の概要、ワークフローの作成、実行、デプロイの手順、OpenShift Serverless Logic Operator のインストールとアンインストールのガイドラインが含まれています。さらに、OpenAPI サービスとエンドポイントを設定する手順と、サービスのトラブルシューティングの手法も含まれています。詳細は、OpenShift Serverless Logic overview を参照してください。
追加のドキュメントを参照することもできます。詳細は、Serverless Logic のドキュメント を参照してください。
- ARM64 上の OpenShift Serverless がテクノロジープレビューとして利用可能になりました。
-
NamespacedKafka
アノテーションは非推奨になりました。代わりに、データプレーン分離のない標準の Kafka ブローカーを使用します。 -
自動
EventType
の自動作成を有効にすると、クラスター内で利用可能なイベントを簡単に検出できるようになります。この機能は開発者プレビューとして利用できます。 - OpenShift 開発者コンソールの開発者ビューの Observe タブ内で、Knative Eventing モニタリングダッシュボードを直接使用できるようになりました。
-
Custom Metrics Autoscaler Operator を使用して、
KafkaSource
オブジェクトが定義する Apache Kafka ソースの Knative Eventing ソースを自動スケーリングできるようになりました。この機能はテクノロジープレビュー機能として利用可能で、Knative Eventing 内の Kafka ベースのイベントソースに対して強化されたスケーラビリティーと効率性を提供します。 - Kafka 実装を使用して Knative Broker を作成するときに、内部の Kafka トピックプロパティーをカスタマイズできるようになりました。これにより効率が向上し、管理が簡素化されます。
- 新しいトリガーフィルター機能がテクノロジープレビューとして利用できるようになりました。これらのフィルターはデフォルトで有効になっており、ユーザーは一連のフィルター式を指定できます。各式は各イベントに対して true または false に評価されます。
1.6.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- マウントポイントの権限が異なるため、クラスタービルドでの直接アップロードは IBM zSystems (s390x) および IBM Power (ppc64le) では機能しません。
Podman バージョン 4.6 を使用した関数のビルドとデプロイは
invalid pull policy "1"
エラーで失敗します。この問題を回避するには、Podman バージョン 4.5 を使用します。
1.7. Red Hat OpenShift Serverless 1.32.2 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.32.2 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する修正された問題は、次の注記に含まれています。
1.7.1. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
- 以前は、インストール後のバッチジョブは一定期間後に削除され、特権サービスアカウントはバインドされていない状態のままでした。これにより、コンプライアンスシステムが問題を警告しました。この問題は、完了したジョブを保持し、サービスアカウントがバインドされたままになることで解決されました。
1.8. Red Hat OpenShift Serverless 1.32 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.32 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.8.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.11 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.11 を使用するようになりました。
- OpenShift Serverless は Kourier 1.11 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.11 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.11 に Knative を使用するようになりました。
-
kn func
CLI プラグインがfunc
1.13 を使用するようになりました。 テクノロジープレビュー (TP) 機能として利用可能な Serverless Logic が更新されました。
使用方法は、Serverless Logic のドキュメント を参照してください。
-
user
コンテナーとqueue-proxy
コンテナーの OpenShift Serverless Functions の readiness と liveness プローブ設定を指定できます。 -
OpenShift Serverless Functions は、OpenShift Pipelines バージョン
1.10
から1.14
(最新) までをサポートするようになりました。OpenShift Pipelines の古いバージョンは、OpenShift Serverless Functions と互換性がなくなりました。 - Pipelines as Code の使用を含むクラスター内関数の構築は、OpenShift Data Foundation ストレージ上の IBM zSystems (s390x) および IBM Power (ppc64le) でのみサポートされるようになりました。
-
func subscribe
コマンドを使用して、関数を一連のイベントにサブスクライブできるようになりました。これにより、関数がフィルターによって定義されたCloudEvent
オブジェクトにリンクされ、自動応答が可能になります。 -
内部トラフィックの Knative Serving TLS 暗号化機能は非推奨になりました。それはテクニカルプレビュー機能でした。
internal-encryption
設定フラグを使用した機能は利用できなくなり、今後のリリースで新しい設定フラグに置き換えられます。 -
シークレットのフィルタリングは、OpenShift Serverless Operator 側でデフォルトで有効化されています。環境変数
ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID=true
は、デフォルトでnet-istio
andnet-kourier
コントローラー Pod に追加されます。 -
knative-serving
namespace のdomain-mapping
およびdomain-mapping-webhook
デプロイメント機能が削除されました。これらは現在、Serving Webhook および Serving Controller と統合されています。 -
KnativeServing
カスタムリソース (CR) でspec.config.domain
フィールドを設定すると、デフォルトの外部ドメインは、knative-serving
namespace のconfig-domain
config map に自動的に入力されなくなります。ここで、正確なドメイン設定を確実にするために、config-domain
config map を手動で設定する必要があります。 -
net-kourier
デプロイメントに gRPC ヘルスプローブを使用できるようになりました。Kourier コントローラーは、以前の exec コマンドとカスタムコマンドではなく、readiness と liveness の両方に標準の Kubernetes gRPC ヘルスプローブを使用するようになりました。より信頼性の高いプローブ応答を確保するために、timeoutSeconds
値が 100 ミリ秒から 1 秒に調整されました。 - 新しいトリガーフィルター機能がテクノロジープレビューとして利用できるようになりました。新しいトリガーフィルターがデフォルトで有効になりました。これにより、ユーザーはフィルター式のセットを指定できます。各式は、イベントごとに true または false に評価されます。
- Knative Eventing は、開発者プレビューとして、転送中のデータの暗号化 (Eventing TLS) のサポートを提供するようになりました。Knative Eventing コンポーネントを設定して、HTTPS アドレスを公開したり、ユーザー提供の CA 信頼バンドルをクライアントに追加したりできます。
- OpenShift Serverless は、システムコンポーネントのカスタム OpenShift CA バンドル注入をサポートするようになりました。詳細は、カスタム PKI の設定 を参照してください。
- Custom Metrics Autoscaler Operator を使用して、Apache Kafka ソースの Knative Eventing ソースを自動スケーリングできるようになりました。この機能は開発者プレビューとして利用可能で、Knative Eventing 内の Kafka ベースのイベントソースのスケーラビリティーと効率性が向上します。
- OpenShift 開発者コンソールの開発者ビューの Observe タブ内で、Knative Eventing モニタリングダッシュボードを直接使用できるようになりました。
-
同梱の Knative の EventTypes
v1beta1
のサポートは、OpenShift Serverless 1.32 では非推奨になりました。OpenShift Serverless 1.32 では、Knative CLI は EventTypev1beta2
API を使用してを促進します。以前のリリースでは、kn
CLI は EventType APIv1beta1
と下位互換性がなく、kn eventtypes
サブコマンドグループに制限されています。したがって、最高のユーザーエクスペリエンスを得るには、一致するkn
バージョンを使用することが推奨されます。
1.8.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
3scale-kourier-gateways
のデフォルトの CPU 制限が500m
から1s
に増加されました。500 を超える Knative Service インスタンスが作成されると、CPU リソースがなくなり、3scale-kourier-gateways
Pod で readiness および liveness プローブの失敗が発生する可能性があります。この調整は、上記の障害を減らし、高負荷時でもスムーズに動作させることを目的としています。
1.8.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- マウントポイントの権限が異なるため、クラスタービルドでの直接アップロードは IBM zSystems (s390x) および IBM Power (ppc64le) では機能しません。
Podman バージョン 4.6 を使用した関数のビルドとデプロイは
invalid pull policy "1"
エラーで失敗します。この問題を回避するには、Podman バージョン 4.5 を使用します。
1.9. Red Hat OpenShift Serverless 1.31 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.31 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.9.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.10 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.10 を使用するようになりました。
- OpenShift Serverless は Kourier 1.10 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.10 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.10 に Knative を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.11 を使用するようになりました。 - Service Mesh を使用した OpenShift Serverless マルチテナントがテクノロジープレビュー (TP) 機能として利用できるようになりました。
テクノロジープレビュー (TP) 機能として利用可能な Serverless Logic が更新されました。
使用方法は、Serverless Logic のドキュメント を参照してください。
- OpenShift Serverless を単一ノード OpenShift にインストールして使用できるようになりました。
-
既存の
PersistentVolume
オブジェクトの永続ボリューム要求 (PVC) を設定して、Serverless 機能で使用できるようになりました。 -
Ingress に Kourier を指定し、
DomainMapping
を使用する場合、OpenShift Route の TLS はパススルーに設定され、TLS は Kourier Gateway によって処理されます。Serverless 1.31 以降では、Kourier Gateway 側で有効な暗号スイートを指定できるようになりました。 Kourier が有効な場合の Red Hat OpenShift Service Mesh と Serverless の統合は非推奨になりました。Service Mesh の統合には
net-kourier
ではなくnet-istio
を使用してください。詳細は、「Red Hat OpenShift Service Mesh と Serverless の統合」セクションを参照してください。
PodDistruptionBudget
オブジェクトとHorizontalPodAutoscaler
オブジェクトが3scale-kourier-gateway
デプロイメント用に追加されました。-
PodDistruptionBudget
は、デプロイメント内の Pod の最小可用性要件を定義するために使用されます。 -
HorizontalPodAutoscaler
は、デプロイメント内の Pod の数を需要またはカスタムメトリクスに基づいて自動的にスケーリングするために使用されます。
-
- Knative ブローカーと Apache Kafka のチャネルによって使用される Apache Kafka トピック名のパターンを変更できるようになりました。
-
DomainMapping
v1alpha1
カスタムリソース定義 (CRD) は非推奨になりました。代わりにv1beta1
CRD を使用してください。 -
テクノロジープレビュー (TP) 機能であった
NamespacedKafka
アノテーションは現在非推奨になり、データプレーン分離のない標準の Kafka ブローカーが優先されます。
1.9.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
以前は、完全な Red Hat OpenShift Service Mesh 統合と
STRICT
ピア認証を使用して Knative Eventing をデプロイする場合、PingSource
アダプターのメトリクスは利用できませんでした。この問題は修正され、
PingSource
アダプターのメトリクスは、別のjob
とservice
ラベルの値を使用して収集されるようになりました。以前の値はpingsource-mt-adapter
でしたが、新しい値はpingsource-mt-adapter-sm-service
です。
1.10. Red Hat OpenShift Serverless 1.30.2 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.30.2 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Serverless addresses Common Vulnerabilities and Exposures (CVEs) の本リリースには、バグ修正が含まれ、OpenShift Container Platform 4.11 以降でサポートされます。特に、この更新プログラムは、Serving、Eventing Webhook、および RBAC プロキシーコンテナーで HTTP/2 トランスポートを無効にすることで、CVE-2023-44487 - HTTP/2 Rapid Stream Reset に対処します。
1.11. Red Hat OpenShift Serverless 1.30.1 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.30.1 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Serverless addresses Common Vulnerabilities and Exposures (CVEs) の本リリースには、バグ修正が含まれ、OpenShift Container Platform 4.11 以降でサポートされます。
1.12. Red Hat OpenShift Serverless 1.30 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.30 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Container Platform 4.13 は Red Hat Enterprise Linux (RHEL) 9.2 をベースにしています。RHEL 9.2 は、連邦情報処理標準 (FIPS) 検証に提出されていません。Red Hat は特定の期限を約束することはできませんが、RHEL 9.0 および RHEL 9.2 モジュール、さらには RHEL 9.x のマイナーリリースでも FIPS 検証を取得する予定です。更新に関する情報は、ナレッジベースの記事 Compliance Activities and Government Standards で入手できます。
1.12.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.9 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.9 を使用するようになりました。
- OpenShift Serverless は Kourier 1.9 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.9 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.9 に Knative を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.10.1 を使用するようになりました。 - OpenShift Serverless は、HyperShift でホストされるクラスター上で実行されるようになりました。
- OpenShift Serverless は単一ノード OpenShift 上で実行されるようになりました。
- OpenShift Serverless に関する開発者エクスペリエンスは、Visual Studio Code (VSCode) の OpenShift IDE 拡張機能である OpenShift Toolkit を通じて利用できるようになりました。拡張機能は、VSCode Extension タブおよび VSCode Marketplace からインストールできます。Visual Studio Code OpenShift Toolkit 拡張機能については、Marketplace ページ を参照してください。
- OpenShift Serverless Functions は、Red Hat OpenShift Pipelines バージョン 1.10 および 1.11 をサポートするようになりました。Red Hat OpenShift Pipelines の古いバージョンは、OpenShift Serverless Functions と互換性がなくなりました。
Serverless Logic は、テクノロジープレビュー (TP) 機能として利用できるようになりました。
詳細は、Serverless Logic のドキュメント を参照してください。
OpenShift Serverless 1.30.0 以降、s2i ビルダーを使用する IBM zSystems で次のランタイム環境がサポートされます。
- NodeJS
- Python
- TypeScript
- Quarkus
Red Hat OpenShift Service Mesh とのイベント統合が、テクノロジープレビュー (TP) 機能として利用できるようになりました。
このインテグレーションには次のものが含まれます。
-
PingSource
-
ApiServerSource
- Knative Source for Apache Kafka
- Knative Broker for Apache Kafka
- Knative Sink for Apache Kafka
-
ContainerSource
-
SinkBinding
-
InMemoryChannel
-
KafkaChannel
- Channel-based Knative Broker
-
- OpenShift Serverless Functions の Pipelines-as-code がテクノロジープレビュー機能として利用可能になりました。
-
net-kourier
のバースト値と 1 秒あたりのクエリー (QPS) の値を設定できるようになりました。 OpenShift Serverless Functions ユーザーは、個々の Quarkus 関数の
func.yaml
ファイル内のreadiness
プローブ値とliveness
プローブ値をオーバーライドできるようになりました。Quarkus、TypeScript、および Node.js 関数のガイダンスについては、「関数開発リファレンスガイド」を参照してください。
OpenShift Serverless 1.30.0 以降、Kourier コントローラーとゲートウェイのマニフェストには、デフォルトで次の制限とリクエストがあります。
リクエスト:
- cpu: 200m
- memory: 200Mi
制限:
- cpu: 500m
memory: 500Mi
OpenShift Serverless ドキュメントの「Knative Serving システムのデプロイメント設定のオーバーライド」セクションを参照してください。
-
テクノロジープレビュー (TP) 機能であった
NamespacedKafka
アノテーションは現在非推奨になり、データプレーン分離のない標準の Kafka ブローカーが優先されます。
1.12.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
以前では、
3scale-jourier-gateway
Pod が毎日数千のnet-jourier-controller
DNS クエリーを送信していました。NXDOMAIN
応答ごとに新しいクエリーが送信されていました。これは、正しい DNS クエリーが生成されるまで続いていました。このクエリーには
net-kourier-controller.knative-serving-ingress.svc.<cluster domain>.
完全修飾ドメイン名 (FQDN) が含まれるようになり、問題が解決されています。
1.12.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
Podman バージョン 4.6 を使用した関数のビルドとデプロイは
invalid pull policy "1"
エラーで失敗します。この問題を回避するには、Podman バージョン 4.5 を使用します。
- Pipelines-as-code の使用を含むクラスター上での関数の構築は、IBM zSystems および IBM Power ではサポートされていません。
- Buildpack ビルダーは、IBM zSystems および IBM Power ではサポートされていません。
1.13. Red Hat OpenShift Serverless 1.29.1 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.29.1 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Serverless addresses Common Vulnerabilities and Exposures (CVEs) の本リリースには、バグ修正が含まれ、OpenShift Container Platform 4.10 以降でサポートされます。
1.13.1. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
以前は、liveness プローブエラーが原因で
net-kourier-controller
が起動に失敗することがありました。これは修正されています。
1.14. Red Hat OpenShift Serverless 1.29 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.29 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Container Platform 4.13 は Red Hat Enterprise Linux (RHEL) 9.2 をベースにしています。RHEL 9.2 はまだ連邦情報処理標準 (FIPS) 検証に提出されていません。Red Hat は特定の期限を約束することはできませんが、RHEL 9.0 および RHEL 9.2 モジュール、さらには RHEL 9.x のマイナーリリースでも FIPS 検証を取得する予定です。更新に関する情報は、ナレッジベースの記事 Compliance Activities and Government Standards で入手できます。
1.14.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.8 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.8 を使用するようになりました。
- OpenShift Serverless は Kourier 1.8 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.8 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.8 に Knative を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.10 を使用するようになりました。 OpenShift Serverless 1.29 以降、次のようなさまざまな製品バージョンが利用できます。
-
最新リリースは
stable
チャネルから入手できます。 最新よりも古いリリースは、バージョンベースのチャネルを通じて入手できます。
これを使用するには、サブスクリプションオブジェクト YAML ファイルのチャネルパラメーターを
stable
版から対応するバージョンベースのチャネル (stable-1.29
など) に更新します。この変更により、最新リリースだけでなく、メンテナンス段階のリリースの更新も受け取れるようになります。
さらに、Knative (
kn
) CLI のバージョンをロックできます。詳細は、「Knative CLI のインストール」セクションを参照してください。
-
最新リリースは
- OpenShift Container Platform Pipelines を使用して、開発者コンソールから OpenShift Serverless 関数を作成できるようになりました。
- Knative Serving のマルチコンテナーのサポートが一般提供 (GA) になりました。この機能を使用すると、単一の Knative サービスを使用してマルチコンテナー Pod をデプロイできます。
-
OpenShift Serverless 関数は、個々の Node.js および TypeScript 関数の
func.yaml
ファイル内のreadiness
プローブ値とliveness
プローブ値をオーバーライドできるようになりました。 - GitHub リポジトリー内のソースコードが変更されたときに、関数がクラスターに自動的に再デプロイされるように設定できるようになりました。これにより、よりシームレスな CI/CD 統合が可能になります。
-
Service Mesh とのイベント統合が開発者プレビュー機能として利用できるようになりました。統合には、
PingSource
、ApiServerSource
、Knative Source for Apache Kafka、Knative Broker for Apache Kafka、Knative Sink for Apache Kafka、ContainerSource
、およびSinkBinding
が含まれます。 - このリリースには、アップグレードされた OpenShift Serverless Logic の開発者プレビューが含まれています。
-
Knative Operator Serving and Eventings CRD の API バージョン
v1alpha1
は削除されました。代わりにv1beta1
バージョンを使用する必要があります。Serverless Operator のアップグレード時に CRD が自動的に更新されるため、これは既存のインストールには影響しません。
1.14.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- DomainMapping で指定されたシークレットを更新する場合は、シークレットを更新するだけでは調整ループはトリガーされません。調整ループをトリガーするには、シークレットの名前を変更するか、Knative Ingress リソースを削除する必要があります。
- Webhook Horizontal Pod Autoscaler (HPA) 設定は、OpenShift Serverless Operator によってオーバーライドされます。その結果、より高いワークロードに対応することができなくなります。この問題を回避するには、ワークロードに対応する初期レプリカ値を手動で設定します。
-
Red Hat OpenShift Serverless 1.27 より前に作成された
KafkaSource
リソースは、削除時にスタックします。この問題を回避するには、KafkaSource
の削除を開始した後、リソースからファイナライザーを削除します。 -
liveness プローブエラーが原因で
net-kourier-controller
を起動できない可能性があります。ナレッジベースのソリューションを使用して問題を回避できます。
1.15. Red Hat OpenShift Serverless 1.28 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.28 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Container Platform 4.13 は Red Hat Enterprise Linux (RHEL) 9.2 をベースにしています。RHEL 9.2 はまだ連邦情報処理標準 (FIPS) 検証に提出されていません。Red Hat は特定の期限を約束することはできませんが、RHEL 9.0 および RHEL 9.2 モジュール、さらには RHEL 9.x のマイナーリリースでも FIPS 検証を取得する予定です。更新に関する情報は、ナレッジベースの記事 Compliance Activities and Government Standards で入手できます。
1.15.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.7 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.7 を使用するようになりました。
- OpenShift Serverless は Kourier 1.7 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.7 を使用するようになりました。 - OpenShift Serverless は、Apache Kafka 1.7 に Knative ブローカー実装を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.9.1 バージョンを使用するようになりました。 - OpenShift Serverless Functions の Node.js および TypeScript ランタイムが一般提供 (GA) になりました。
- OpenShift Serverless Functions の Python ランタイムがテクノロジープレビューとして利用可能になりました。
- Knative Serving のマルチコンテナーサポートがテクノロジープレビューとして利用可能になりました。この機能を使用すると、単一の Knative サービスを使用してマルチコンテナー Pod をデプロイできます。
OpenShift Serverless 1.29 以降では、Knative Eventing の以下のコンポーネントが 2 つの Pod から 1 つにスケールダウンされます。
-
imc-controller
-
imc-dispatcher
-
mt-broker-controller
-
mt-broker-filter
-
mt-broker-ingress
-
Serving CR の
serverless.openshift.io/enable-secret-informer-filtering
アノテーションが非推奨になりました。アノテーションは Istio に対してのみ有効ですが、Kourier では有効ではありません。OpenShift Serverless 1.28 では、OpenShift Serverless Operator は
net-istio
とnet-kourier
の両方の環境変数ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID
を挿入できます。シークレットフィルタリングを有効にする場合は、すべてのシークレットに
networking.internal.knative.dev/certificate-uid: "<id>"
というラベルを付ける必要があります。そうしないと、Knative Serving がシークレットを検出しないため、障害が発生します。新規および既存のシークレットの両方にラベルを付ける必要があります。次の OpenShift Serverless リリースのいずれかでは、シークレットフィルタリングがデフォルトで有効になります。障害が発生しないように、事前にシークレットにラベルを付けます。
1.15.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
現在、Python のランタイムは、IBM Power、IBM zSystems、および IBM® LinuxONE の OpenShift Serverless Functions ではサポートされません。
Node.js、TypeScript、および Quarkus 関数は、これらのアーキテクチャーでサポートされます。
Windows プラットフォームでは、
app.sh
ファイルのパーミッションが原因で、Source-to-Image ビルダーを使用して Python 関数をローカルで構築、実行、またはデプロイできません。この問題を回避するには、Windows Subsystem for Linux を使用します。
-
Red Hat OpenShift Serverless 1.27 より前に作成された
KafkaSource
リソースは、削除時にスタックします。この問題を回避するには、KafkaSource
の削除を開始した後、リソースからファイナライザーを削除します。
1.16. Red Hat OpenShift Serverless 1.27 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.27 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
OpenShift Serverless 1.26 は、OpenShift Container Platform 4.12 で完全にサポートされている最も古いリリースです。OpenShift Serverless 1.25 以前は、OpenShift Container Platform 4.12 にデプロイされません。
このため、OpenShift Container Platform をバージョン 4.12 にアップグレードする前に、OpenShift Serverless をバージョン 1.26 または 1.27 にアップグレードしてください。
1.16.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.6 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.6 を使用するようになりました。
- OpenShift Serverless は Kourier 1.6 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.6 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 1.6 を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.8.1 を使用するようになりました。 - namespace スコープのブローカーがテクノロジープレビューとして利用できるようになりました。このブローカーは、たとえば、ロールベースのアクセス制御 (RBAC) ポリシーを実装するために使用できます。
-
KafkaSink は、
デフォルトでCloudEvent
バイナリーコンテンツモードを使用するようになりました。バイナリーコンテンツモードは、CloudEvent
の代わりにボディーのヘッダーを使用するため、構造化モードよりも効率的です。たとえば、HTTP プロトコルの場合、HTTP ヘッダーを使用します。 - OpenShift Container Platform 4.10 以降で OpenShift Route を使用して、外部トラフィックに HTTP/2 プロトコルを介して gRPC フレームワークを使用できるようになりました。これにより、クライアントとサーバー間の通信の効率と速度が向上します。
-
Knative Operator Serving および Eventings CRD の API バージョン
v1alpha1
は、1.27 で非推奨になりました。これは今後のバージョンで削除される予定です。Red Hat は、代わりにv1beta1
バージョンを使用することを強く推奨しています。Serverless Operator のアップグレード時に CRD が自動的に更新されるため、これは既存のインストールには影響しません。 - 配信タイムアウト機能がデフォルトで有効になりました。これを使用すると、送信される HTTP リクエストごとにタイムアウトを指定できます。この機能は、引き続きテクノロジープレビューです。
1.16.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
以前は、Knative サービスが
Ready
状態にならないことがあり、ロードバランサーの準備が整うのを待っていると報告されていました。この問題は修正されました。
1.16.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
-
OpenShift Serverless を Red Hat OpenShift Service Mesh と統合すると、クラスターに存在するシークレットが多すぎると、起動時に
net-kourier
Pod がメモリー不足になります。 namespace スコープブローカーは、namespace スコープブローカーを削除した後でも、
ClusterRoleBindings
をユーザーの namespace に残す場合があります。これが発生した場合は、ユーザー namespace で
rbac-proxy-reviews-prom-rb-knative-kafka-broker-data-plane-{{.Namespace}}
という名前のClusterRoleBinding
を削除します。
1.17. Red Hat OpenShift Serverless 1.26 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.26 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.17.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- Quarkus を使用した OpenShift Serverless Functions が GA になりました。
- OpenShift Serverless は Knative Serving 1.5 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.5 を使用するようになりました。
- OpenShift Serverless は Kourier 1.5 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.5 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 1.5 を使用するようになりました。
- OpenShift Serverless は Knative Operator 1.3 を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.8.1 を使用するようになりました。 - 永続ボリューム要求 (PVC) が GA になりました。PVC は、Knative サービスに永続的なデータストレージを提供します。
新しいトリガーフィルター機能が開発者プレビューとして利用できるようになりました。これにより、ユーザーはフィルター式のセットを指定できます。各式は、イベントごとに true または false に評価されます。
新しいトリガーフィルターを有効にするには、Operator config map の
KnativeEventing
タイプのセクションにnew-trigger-filters: enabled
エントリーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Knative Operator 1.3 は、
operator.knative.dev
の更新されたv1beta1
バージョンの API を追加します。KnativeServing
およびKnativeEventing
カスタムリソース config map でv1alpha1
からv1beta1
に更新するには、apiVersion
キーを編集します。KnativeServing
カスタムリソース config map の例apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing ...
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KnativeEventing
カスタムリソース config map の例apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing ...
apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.17.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
- 以前、連邦情報処理標準 (FIPS) モードは、Kafka ブローカー、Kafka ソース、および Kafka シンクに対して無効になっていました。これは修正され、FIPS モードが利用できるようになりました。
1.18. Red Hat OpenShift Serverless 1.25.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.25.0 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.18.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.4 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.4 を使用するようになりました。
- OpenShift Serverless は Kourier 1.4 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.4 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 1.4 を使用するようになりました。
-
kn func
CLI プラグインはfunc
1.7.0 を使用するようになりました。 - 関数を作成およびデプロイするための統合開発環境 (IDE) プラグインが、Visual Studio Code および IntelliJ で利用できるようになりました。
Knative Kafka ブローカーが一般提供されるようになりました。Knative Kafka ブローカーは、Apache Kafka を直接ターゲットとする、Knative ブローカー API の高性能な実装です。
MT-Channel-Broker ではなく、Knative Kafka ブローカーを使用することを推奨します。
-
Knative Kafka シンクが一般提供されるようになりました。
KafkaSink
はCloudEvent
を取得し、Apache Kafka トピックに送信します。イベントは、構造化コンテンツモードまたはバイナリーコンテンツモードのいずれかで指定できます。 - 内部トラフィックの TLS の有効化がテクノロジープレビューとして利用可能になりました。
1.18.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
- 以前のバージョンでは、Knative Serving には liveness プローブの失敗後にコンテナーが再起動された場合に readiness プローブが失敗する問題がありました。この問題は修正されました。
1.18.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- 連邦情報処理標準 (FIPS) モードは、Kafka ブローカー、Kafka ソース、および Kafka シンクに対して無効になっています。
-
SinkBinding
オブジェクトは、サービスのカスタムリビジョン名をサポートしません。 Knative Serving Controller Pod は、クラスター内のシークレットを監視するための新しいインフォーマーを追加します。インフォーマーはシークレットをキャッシュに含めるため、コントローラー Pod のメモリー消費量が増加します。
Pod のメモリーが不足している場合は、デプロイのメモリー制限を増やすことで問題を回避できます。
1.19. Red Hat OpenShift Serverless 1.24.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.24.0 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.19.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.3 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.3 を使用するようになりました。
- OpenShift Serverless は Kourier 1.3 を使用するようになりました。
-
OpenShift Serverless は、Knative (
kn
) CLI 1.3 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 1.3 を使用するようになりました。
-
kn func
CLI プラグインがfunc
0.24 を使用するようになりました。 - Knative サービスの初期化コンテナーのサポートが一般提供 (GA) になりました。
- OpenShift Serverless ロジックが開発者プレビューとして利用できるようになりました。これにより、Serverless アプリケーションを管理するための宣言型ワークフローモデルを定義できます。
- OpenShift Container Platform では、OpenShift Serverless で Cost Management サービスを使用できるようになりました。
1.19.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless を Red Hat OpenShift Service Mesh と統合すると、クラスターに存在するシークレットが多すぎると、起動時に
net-istio-controller
Pod がメモリー不足になります。シークレットフィルタリングを有効にできるようになりました。これにより、
net-istio-controller
は、networking.internal.knative.dev/certificate-uid
ラベルを持つシークレットのみを考慮するようになり、必要なメモリー量が削減されます。- OpenShift Serverless Functions テクノロジープレビューは、デフォルトで Cloud Native Buildpacks を使用してコンテナーイメージをビルドするようになりました。
1.19.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- 連邦情報処理標準 (FIPS) モードは、Kafka ブローカー、Kafka ソース、および Kafka シンクに対して無効になっています。
OpenShift Serverless 1.23 では、KafkaBindings および kafka
-binding
Webhook のサポートが削除されました。ただし、既存のkafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration
が残り、もはや存在しないkafka-source-webhook
サービスを指している可能性があります。クラスター上の KafkaBindings の特定の仕様では、
kafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration
が、Webhook を介して、デプロイメント、Knative Services、ジョブなどのさまざまなリソースに作成および更新イベントを渡すように設定されている場合がありますが、そのように設定されていると失敗します。この問題を回避するには、OpenShift Serverless 1.23 にアップグレードした後、クラスターから
kafkabindings.webhook.kafka.sources.knative.dev MutatingWebhookConfiguration
を手動で削除します。oc delete mutatingwebhookconfiguration kafkabindings.webhook.kafka.sources.knative.dev
$ oc delete mutatingwebhookconfiguration kafkabindings.webhook.kafka.sources.knative.dev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.20. Red Hat OpenShift Serverless 1.23.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.23.0 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.20.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.2 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.2 を使用するようになりました。
- OpenShift Serverless は Kourier 1.2 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.2 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 1.2 を使用するようになりました。
-
kn func
CLI プラグインがfunc
0.24 を使用するようになりました。 -
Kafka ブローカーで
kafka.eventing.knative.dev/external.topic
アノテーションを使用できるようになりました。このアノテーションを使用すると、ブローカー自体の内部トピックを作成する代わりに、既存の外部管理トピックを使用できます。 -
kafka-ch-controller
およびkafka-webhook
Kafka コンポーネントが存在しなくなりました。これらのコンポーネントはkafka-webhook-eventing
コンポーネントに置き換えられました。 - OpenShift Serverless Functions テクノロジープレビューは、デフォルトで Source-to-Image (S2I) を使用してコンテナーイメージをビルドするようになりました。
1.20.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- 連邦情報処理標準 (FIPS) モードは、Kafka ブローカー、Kafka ソース、および Kafka シンクに対して無効になっています。
-
Kafka ブローカーを含む namespace を削除する場合は、ブローカーの
auth.secret.ref.name
シークレットがブローカーの前に削除されると、namespace ファイナライザーが削除されない可能性があります。 多数の Knative サービスで OpenShift Serverless を実行すると、Knative アクティベーター Pod がデフォルトのメモリー制限である 600MB 近くで実行される可能性があります。これらの Pod は、メモリー消費がこの制限に達すると再起動される可能性があります。アクティベーターデプロイメントの要求と制限は、
KnativeServing
カスタムリソースを変更することで設定できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
関数のローカルビルド戦略として Cloud Native Buildpack を使用している場合、
kn func
は podman を自動的に起動したり、リモートデーモンへの SSH トンネルを使用したりすることはできません。これらの問題は、関数をデプロイする前に、ローカル開発コンピューターで Docker または podman デーモンをすでに実行していると回避できます。 - 現時点で、クラスター上の関数ビルドが Quarkus および Golang ランタイムで失敗します。これらは Node、Typescript、Python、および Springboot ランタイムで正常に機能します。
1.21. Red Hat OpenShift Serverless 1.22.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.22.0 が公開されました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.21.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.1 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.1 を使用するようになりました。
- OpenShift Serverless は Kourier 1.1 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 1.1 を使用するようになりました。 - OpenShift Serverless は Knative Kafka1.1 を使用するようになりました。
-
kn func
CLI プラグインはfunc
0.23 を使用するようになりました。 - Knative サービスの初期コンテナーサポートがテクノロジープレビューとして利用できるようになりました。
- Knative サービスの永続ボリュームクレーム (PVC) サポートが、テクノロジープレビューとして利用できるようになりました。
-
knative-serving
、knative-serving-ingress
、knative-eventing
、およびknative-kafka
システムネームボックスに、デフォルトでknative.openshift.io/part-of:"openshift-serverless"
ラベルが付けられるようになりました。 - Knative Eventing-Kafka Broker/Trigger ダッシュボードが追加されました。これにより、Web コンソールで Kafka ブローカーとトリガーメトリクスを視覚化できます。
- Knative Eventing-KafkaSink ダッシュボードが追加されました。これにより、Web コンソールで KafkaSink メトリクスを視覚化できます。
- Knative Eventing-Broker/Trigger ダッシュボードは、Knative Eventing-Channel-based Broker/Trigger と呼ばれるようになりました。
-
knative.openshift.io/part-of: " openshift-serverless "
ラベルが、knative.openshift.io/system-namespace
ラベルに置き換わりました。 -
Knative Serving YAML 設定ファイルの命名スタイルがキャメルケース (
ExampleName
) からハイフンスタイル (example-name
) に変更されました。このリリース以降、Knative Serving YAML 設定ファイルを作成または編集するときは、ハイフンスタイルの表記を使用してください。
1.21.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- 連邦情報処理標準 (FIPS) モードは、Kafka ブローカー、Kafka ソース、および Kafka シンクに対して無効になっています。
1.22. Red Hat OpenShift Serverless 1.21.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.21.0 が利用可能になりました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.22.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 1.0 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 1.0 を使用するようになりました。
- OpenShift Serverless は Kourier 1.0 を使用するようになりました。
-
OpenShift Serverless は、Knative (
kn
) CLI 1.0 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 1.0 を使用するようになりました。
-
kn func
CLI プラグインがfunc
0.21 を使用するようになりました。 - Kafka シンクがテクノロジープレビューとして利用できるようになりました。
-
Knative オープンソースプロジェクトは、camel-cased 設定キーを非推奨にし、kebab-cased キーを一貫して使用することを支持し始めました。その結果、OpenShift Serverless 1.18.0 リリースノートで前述した
defaultExternalScheme
キーは非推奨になり、default-external-scheme
キーに置き換えられました。キーの使用方法は同じです。
1.22.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
-
OpenShift Serverless 1.20.0 では、サービスにイベントを送信するための
kn event send
の使用に影響するイベント配信の問題がありました。この問題は修正されています。 -
OpenShift Serverless 1.20.0 (
func
0.20) では、http
テンプレートを使用して作成された TypeScript 関数をクラスターにデプロイできませんでした。この問題は修正されています。 -
OpenShift Serverless 1.20.0 (
func
0.20) では、gcr.io
レジストリーを使用した関数のデプロイがエラーで失敗しました。この問題は修正されています。 -
OpenShift Serverless 1.20.0 (
func
0.20) では、kn func create
コマンドを使用して Springboot 関数プロジェクトディレクトリーを作成してから、kn func build
コマンドを実行するとエラーメッセージが表示されて失敗しました。この問題は修正されています。 -
OpenShift Serverless 1.19.0 (
func
0.19) では、一部のランタイムが podman を使用して関数をビルドできませんでした。この問題は修正されています。
1.22.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
現在、ドメインマッピングコントローラーは、現在サポートされていないパスを含むブローカーの URI を処理できません。
つまり、
DomainMapping
カスタムリソース (CR) を使用してカスタムドメインをブローカーにマップする場合は、ブローカーの入力サービスを使用してDomainMapping
CR を設定し、ブローカーの正確なパスをカスタムドメインに追加する必要があります。DomainMapping
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow その場合、ブローカーの URI は
<domain-name>/<broker-namespace>/<broker-name>
になります。
1.23. Red Hat OpenShift Serverless 1.20.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.20.0 が利用可能になりました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.23.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 0.26 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 0.26 を使用するようになりました。
- OpenShift Serverless は Kourier 0.26 を使用するようになりました。
-
OpenShift Serverless は、Knative (
kn
) CLI 0.26 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 0.26 を使用するようになりました。
-
kn func
CLI プラグインがfunc
0.20 を使用するようになりました。 Kafka ブローカーがテクノロジープレビュー機能として利用可能になりました。
重要現在テクノロジープレビューにある Kafka ブローカーは、FIPS ではサポートされていません。
-
kn event
プラグインがテクノロジープレビューとして利用できるようになりました。 -
kn service create
コマンドの--min-scale
フラグと--max-scale
フラグは非推奨になりました。代わりに、-scale-min
フラグと--scale-max
フラグを使用してください。
1.23.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless は、HTTPS を使用するデフォルトアドレスで Knative サービスをデプロイします。クラスター内のリソースにイベントを送信する場合、送信側にはクラスターの認証局 (CA) が設定されていません。これにより、クラスターがグローバルに受け入れ可能な証明書を使用しない限り、イベント配信は失敗します。
たとえば、一般にアクセス可能なアドレスへのイベント配信は機能します。
kn event send --to-url https://ce-api.foo.example.com/
$ kn event send --to-url https://ce-api.foo.example.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一方、サービスがカスタム CA によって発行された HTTPS 証明書でパブリックアドレスを使用する場合、この配信は失敗します。
kn event send --to Service:serving.knative.dev/v1:event-display
$ kn event send --to Service:serving.knative.dev/v1:event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーやチャネルなどの他のアドレス指定可能なオブジェクトへのイベント送信は、この問題の影響を受けず、期待どおりに機能します。
- 現在、Kafka ブローカーは Federal Information Processing Standards (FIPS) モードが有効になっているクラスターでは動作しません。
kn func create
コマンドで Springboot 関数プロジェクトディレクトリーを作成すると、それ以降のkn func build
コマンドの実行は失敗し、以下のエラーメッセージが出力されます。[analyzer] no stack metadata found at path '' [analyzer] ERROR: failed to : set API for buildpack 'paketo-buildpacks/ca-certificates@3.0.2': buildpack API version '0.7' is incompatible with the lifecycle
[analyzer] no stack metadata found at path '' [analyzer] ERROR: failed to : set API for buildpack 'paketo-buildpacks/ca-certificates@3.0.2': buildpack API version '0.7' is incompatible with the lifecycle
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 回避策として、関数設定ファイル
func.yaml
でbuilder
プロパティーをgcr.io/paketo-buildpacks/builder:base
に変更します。gcr.io
レジストリーを使用した関数のデプロイは失敗し、以下のエラーメッセージが出力されます。Error: failed to get credentials: failed to verify credentials: status code: 404
Error: failed to get credentials: failed to verify credentials: status code: 404
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 回避策として、
quay.io
またはdocker.io
などのgcr.io
以外のレジストリーを使用します。http
テンプレートで作成された TypeScript 関数は、クラスターへのデプロイに失敗します。回避策として、
func.yaml
ファイルで以下のセクションを置き換えます。buildEnvs: []
buildEnvs: []
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記を以下のように置き換えます。
buildEnvs: - name: BP_NODE_RUN_SCRIPTS value: build
buildEnvs: - name: BP_NODE_RUN_SCRIPTS value: build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow func
バージョン 0.20 では、一部のランタイムが podman を使用して関数をビルドできない場合があります。以下のようなエラーメッセージが出力される場合があります。ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この問題には、以下の回避策があります。
--time=0
をサービスExecStart
定義に追加して、podman サービスを更新します。サービス設定の例
ExecStart=/usr/bin/podman $LOGGING system service --time=0
ExecStart=/usr/bin/podman $LOGGING system service --time=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して podman サービスを再起動します。
systemctl --user daemon-reload
$ systemctl --user daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart --user podman.socket
$ systemctl restart --user podman.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
または、TCP を使用して podman API を公開することもできます。
podman system service --time=0 tcp:127.0.0.1:5534 &
$ podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.24. Red Hat OpenShift Serverless 1.19.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.19.0 が利用可能になりました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.24.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 0.25 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 0.25 を使用するようになりました。
- OpenShift Serverless は Kourier 0.25 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 0.25 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 0.25 を使用するようになりました。
-
kn func
CLI プラグインがfunc
0.19 を使用するようになりました。 -
KafkaBinding
API は OpenShift Serverless 1.19.0 で非推奨となり、今後のリリースで削除される予定です。 - HTTPS リダイレクトがサポートされ、クラスターに対してグローバルに設定することも、各 Knative サービスごとに設定することもできるようになりました。
1.24.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
- 以前のリリースでは、Kafka チャネルディスパッチャーは、ローカルコミットが成功するのを待ってからしか応答していませんでした。これにより、Apache Kafka ノードに障害が発生した場合に、イベントが失われる可能性がありました。Kafka チャネルディスパッチャーは、すべての同期レプリカがコミットするのを待ってから応答するようになりました。
1.24.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
func
バージョン 0.19 では、一部のランタイムが podman を使用して関数をビルドできない場合があります。以下のようなエラーメッセージが出力される場合があります。ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
ERROR: failed to image: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/info": EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この問題には、以下の回避策があります。
--time=0
をサービスExecStart
定義に追加して、podman サービスを更新します。サービス設定の例
ExecStart=/usr/bin/podman $LOGGING system service --time=0
ExecStart=/usr/bin/podman $LOGGING system service --time=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して podman サービスを再起動します。
systemctl --user daemon-reload
$ systemctl --user daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart --user podman.socket
$ systemctl restart --user podman.socket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
または、TCP を使用して podman API を公開することもできます。
podman system service --time=0 tcp:127.0.0.1:5534 &
$ podman system service --time=0 tcp:127.0.0.1:5534 & export DOCKER_HOST=tcp://127.0.0.1:5534
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.25. Red Hat OpenShift Serverless 1.18.0 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless 1.18.0 が利用可能になりました。OpenShift Container Platform 上の OpenShift Serverless に関連する新機能、更新、既知の問題は、以下のノートに含まれています。
1.25.1. 新機能 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Serverless は Knative Serving 0.24.0 を使用するようになりました。
- OpenShift Serverless は Knative Eventing 0.24.0 を使用するようになりました。
- OpenShift Serverless は Kourier 0.24.0 を使用するようになりました。
-
OpenShift Serverless は Knative (
kn
) CLI 0.24.0 を使用するようになりました。 - OpenShift Serverless は Knative Kafka 0.24.7 を使用するようになりました。
-
kn func
CLI プラグインがfunc
0.18.0 を使用するようになりました。 今後の OpenShift Serverless 1.19.0 リリースでは、外部ルートの URL スキームはデフォルトで HTTPS になり、セキュリティーが強化されます。
この変更をワークロードに適用する必要がない場合は、以下の YAML を
KnativeServing
カスタムリソース (CR) に追加してから 1.19.0 にアップグレードする前にデフォルト設定を上書きできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を 1.18.0 ですでに適用する必要がある場合は、以下の YAML を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 今後の OpenShift Serverless 1.19.0 リリースでは、Kourier ゲートウェイが公開されるデフォルトのサービスタイプは
ClusterIP
であり、LoadBalancer
ではありません。この変更をワークロードに適用する必要がない場合は、以下の YAML を
KnativeServing
カスタムリソース定義 (CR) に追加してから 1.19.0 にアップグレードする前にデフォルト設定を上書きできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OpenShift Serverless で
emptyDir
ボリュームを使用できるようになりました。詳細は、Knative Serving に関する OpenShift Serverless ドキュメントを参照してください。 -
kn func
を使用して関数を作成すると、Rust テンプレートが利用できるようになりました。
1.25.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
- 以前の 1.4 バージョンの Camel-K は OpenShift Serverless 1.17.0 と互換性がありませんでした。Camel-K の問題が修正され、Camel-K バージョン 1.4.1 を OpenShift Serverless 1.17.0 で使用できます。
以前のバージョンでは、Kafka チャネルまたは新しい Kafka ソースの新しいサブスクリプションを作成する場合は、新しく作成されたサブスクリプションまたはシンクが準備完了ステータスを報告した後、Kafka データプレーンがメッセージをディスパッチする準備ができるまでに遅延が生じる可能性があります。
その結果、データプレーンが準備完了ステータスを報告していないときに送信されたメッセージは、サブスクライバーまたはシンクに配信されない可能性があります。
OpenShift Serverless 1.18.0 では、問題が修正され、初期メッセージが失われなくなりました。この問題の詳細は、ナレッジベースの記事 #6343981 を参照してください。
1.25.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
Knative
kn
CLI の古いバージョンは、Knative Serving および Knative Eventing API の古いバージョンを使用する可能性があります。たとえば、kn
CLI のバージョン 0.23.2 はv1alpha1
API バージョンを使用します。一方、OpenShift Serverless の新しいリリースでは、古い API バージョンをサポートしない可能性があります。たとえば、OpenShift Serverless 1.18.0 は
kafkasources.sources.knative.dev
API のバージョンv1alpha1
をサポートしなくなりました。そのため、
kn
が古い API を検出できないため、新しい OpenShift Serverless で古いバージョンの Knativekn
CLI を使用するとエラーが発生する可能性がありました。たとえば、kn
CLI のバージョン 0.23.2 は OpenShift Serverless 1.18.0 では機能しません。問題を回避するには、OpenShift Serverless リリースで利用可能な最新の
kn
CLI バージョンを使用します。OpenShift Serverless 1.18.0 では、Knativekn
CLI 0.24.0 を使用します。
第2章 OpenShift Serverless の概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless は、Kubernetes ネイティブなビルディングブロックを提供します。開発者はそのビルディングブロックを使用して、OpenShift Container Platform 上でサーバーレスのイベント駆動型アプリケーションを作成およびデプロイできます。Serverless アプリケーションはオンデマンドでスケールアップおよびスケールダウン (ゼロまで) でき、数多くのイベントソースによりトリガーされます。OpenShift Serverless はオープンソースの Knative プロジェクト をベースとし、エンタープライズレベルのサーバーレスを有効にすることで、ハイブリッドおよびマルチクラウド環境に対して移植性と一貫性をもたらします。
OpenShift Serverless は OpenShift Container Platform とは異なる頻度でリリースされるため、OpenShift Serverless ドキュメントは製品のマイナーバージョンごとに個別のドキュメントセットとして利用できるようになりました。
OpenShift Serverless ドキュメントは https://docs.openshift.com/serverless/ で利用できます。
特定のバージョンのドキュメントは、バージョンセレクターのドロップダウンを使用するか、URL にバージョン (https://docs.openshift.com/serverless/1.28 など) を直接追加すると利用できます。
さらに、OpenShift Serverless ドキュメントは、Red Hat カスタマーポータル (https://access.redhat.com/documentation/ja-jp/red_hat_openshift_serverless/) でも利用できます。
OpenShift Serverless のライフサイクルとサポートされるプラットフォームに関する追加情報は、プラットフォームライフサイクルポリシー を参照してください。
2.1. OpenShift Serverless のコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
2.1.1. Knative Serving リンクのコピーリンクがクリップボードにコピーされました!
Knative Serving は Kubernetes 上に構築され、アプリケーションと機能をサーバーレスコンテナーとしてデプロイおよび提供することをサポートします。Serving はアプリケーションのデプロイメントを簡素化し、受信トラフィックに基づいて動的にスケーリングし、トラフィック分割によるカスタムロールアウトストラテジーをサポートします。
Knative Serving には以下の機能が含まれます。
- サーバーレスコンテナーの簡素化されたデプロイメント
- scale-to-zero を含むトラフィックベースの自動スケーリング
- ルーティングおよびネットワークプログラミング
- 特定の時点のアプリケーションスナップショットとその設定
2.1.2. Knative Eventing リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing には、遅延バインディングイベントソースとイベントコンシューマーを有効にするために設定可能なプリミティブを提供するプラットフォームが含まれます。
Knative Eventing は、次のアーキテクチャーのクラウドネイティブコンセプトをサポートしています。
- サービスは開発中に疎結合され、実稼働環境に独立してデプロイされます。
- プロデューサーは、コンシューマーがリッスンする前にイベントを生成できます。また、コンシューマーはまだ生成されていないイベントまたはイベントのクラスに対して、リソースを受信する意思を示すことができます。
- サービスを接続して、プロデューサーやコンシューマーを変更せずに新しいアプリケーションを作成でき、特定のプロデューサーから特定のイベントのサブセットを選択することもできます。
2.1.3. OpenShift Serverless Functions リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Functions を使用すると、Knative サービスとしてデプロイされ、Knative Serving と Eventing を活用できる関数を作成できます。
OpenShift Serverless Functions には、以下の機能が含まれています。
以下のビルドストラテジーをサポートします。
- Source-to-Image (S2I)
- buildpacks
- 複数のランタイム
-
Knative (
kn
) CLI によるローカル開発者エクスペリエンス - プロジェクトテンプレート
- CloudEvents およびプレーン HTTP リクエストを受信するサポート
2.1.4. OpenShift Serverless Logic リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic を使用すると、YAML または JSON ファイルを使用して宣言型ワークフローモデルを定義できます。宣言型ワークフローモデルは、イベント駆動型のサーバーレスアプリケーションを調整します。OpenShift Serverless Logic を使用すると、ワークフローの実行を視覚化できるため、デバッグと最適化が簡素化されます。また、エラー処理とフォールトトレランスも組み込まれているため、ワークフローの実行中に発生するエラーや例外の処理が容易になります。OpenShift Serverless Logic は CNCF Serverless Workflow specification を実装します。
2.1.5. Knative CLI リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用すると、コマンドラインまたはシェルスクリプト内から Knative リソースを作成できます。豊富なヘルプページと自動補完のサポートにより、Knative リソーススキーマの詳細な構造を記憶する必要がなくなります。
Knative (kn
) CLI には次の機能が含まれています。
次の Knative Serving 機能の管理をサポートします。
- サービス
- リビジョン
- ルート
次の Knative Eventing エンティティーの管理をサポートします。
- ソース
- ブローカー
- トリガー
- チャネル
- サブスクリプション
-
Kubernetes (
kubectl
) CLI ツールの設計に基づいたプラグインアーキテクチャー - Knative の Tekton パイプラインへの統合
第3章 Knative Serving リンクのコピーリンクがクリップボードにコピーされました!
Knative Serving は、クラウドネイティブアプリケーション の作成、デプロイ、管理を希望する開発者をサポートします。これにより、オブジェクトのセットが OpenShift Container Platform クラスター上の Serverless ワークロードの動作を定義し制御する Kubernetes カスタムリソース定義 (CRD) として提供されます。
開発者はこれらの CRD を使用して、複雑なユースケースに対応するためにビルディングブロックとして使用できるカスタムリソース (CR) インスタンスを作成します。以下に例を示します。
- Serverless コンテナーの迅速なデプロイ
- Pod の自動スケーリング
3.1. Knative Serving リソース リンクのコピーリンクがクリップボードにコピーされました!
- サービス
-
service.serving.knative.dev
CRD はワークロードのライフサイクルを自動的に管理し、アプリケーションがネットワーク経由でデプロイされ、到達可能であることを確認します。これは、ユーザーが作成した Service またはカスタムリソースに対して加えられるそれぞれの変更に Route、Configuration、および新規 Revision を作成します。Knative での開発者の対話のほとんどは、サービスを変更して実行されます。 - Revision
-
revision.serving.knative.dev
CRD は、ワークロードに対して加えられるそれぞれの変更のコードおよび設定の特定の時点におけるスナップショットです。Revision (リビジョン) はイミュータブル (変更不可) オブジェクトであり、必要な期間保持することができます。 - Route
-
route.serving.knative.dev
CRD は、ネットワークのエンドポイントを、1 つ以上のリビジョンにマップします。部分的なトラフィックや名前付きルートなどのトラフィックを複数の方法で管理することができます。 - Configuration
-
configuration.serving.knative.dev
CRD は、デプロイメントの必要な状態を維持します。これにより、コードと設定を明確に分離できます。設定を変更すると、新規リビジョンが作成されます。
第4章 Knative Eventing リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform 上の Knative Eventing を使用すると、開発者は Serverless アプリケーションと共に イベント駆動型のアーキテクチャー を使用できます。イベント駆動型のアーキテクチャーは、イベントプロデューサーとイベントコンシューマー間の関係を切り離すという概念に基づいています。
イベントプロデューサーはイベントを作成し、イベントシンクまたはコンシューマーはイベントを受信します。Knative Eventing は、標準の HTTP POST リクエストを使用してイベントプロデューサーとシンク間でイベントを送受信します。これらのイベントは CloudEvents 仕様 に準拠しており、すべてのプログラミング言語でのイベントの作成、解析、および送受信を可能にします。
Knative Eventing は以下のユースケースをサポートします。
- コンシューマーを作成せずにイベントを公開する
- イベントを HTTP POST としてブローカーに送信し、バインディングを使用してイベントを生成するアプリケーションから宛先設定を分離できます。
- パブリッシャーを作成せずにイベントを消費
- トリガーを使用すると、イベント属性に基づいてブローカーからのイベントを消費できます。アプリケーションはイベントを HTTP POST として受信します。
複数のタイプのシンクへの配信を有効にするために、Knative Eventing は複数の Kubernetes リソースで実装できる以下の汎用インターフェイスを定義します。
- アドレス指定可能なリソース
-
HTTP 経由でイベントの
status.address.url
フィールドに定義されるアドレスに配信されるイベントを受信し、確認することができます。KubernetesService
リソースはアドレス指定可能なインターフェイスにも対応します。 - 呼び出し可能なリソース
-
HTTP 経由で配信されるイベントを受信し、これを変換できます。HTTP 応答ペイロードで
0
または1
の新規イベントを返します。返されるイベントは、外部イベントソースからのイベントが処理されるのと同じ方法で処理できます。
4.1. Apache Kafka の Knative ブローカーの使用 リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka の Knative ブローカー実装では、サポートされているバージョンの Apache Kafka メッセージストリーミングプラットフォームを OpenShift Serverless で使用できるように、統合オプションが提供されています。Kafka は、イベントソース、チャネル、ブローカー、およびイベントシンク機能のオプションを提供します。
Apache Kafka の Knative ブローカーは、以下のような追加オプションを提供します。
- Kafka ソース
- Kafka チャネル
- Kafka ブローカー
- Kafka シンク
第5章 OpenShift Serverless Functions について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Functions により、開発者は OpenShift Container Platform で Knative サービスとしてステートレスでイベント駆動型の関数を作成およびデプロイできます。kn func CLI
は Knative kn
CLI のプラグインとして提供されます。kn func
CLI を使用して、クラスター上の Knative サービスとしてコンテナーイメージを作成、ビルド、デプロイできます。
5.1. 含まれるランタイム リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Functions は、以下のランタイムの基本機能を作成するために使用できるテンプレートを提供します。
5.2. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
第6章 OpenShift Serverless Logic の概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic を使用すると、開発者はイベント駆動型のサーバーレスアプリケーションをオーケストレーションする宣言型ワークフローモデルを定義できます。
ワークフローモデルは YAML または JSON 形式で記述できます。これは、クラウドまたはコンテナー環境でのサーバーレスアプリケーションの開発とデプロイに最適です。
OpenShift Container Platform にワークフローをデプロイするには、OpenShift Serverless Logic Operator を使用できます。
次のセクションでは、OpenShift Serverless Logic のさまざまな概念の概要を説明します。
6.1. Events リンクのコピーリンクがクリップボードにコピーされました!
イベントの状態は、1 つ以上のイベント定義で構成されます。イベント定義を組み合わせて、イベント状態がリッスンする CloudEvent
タイプを指定します。イベント状態を使用すると、指定された CloudEvent
を受信したときに新しいワークフローインスタンスを開始したり、指定された CloudEvent
を受信するまで既存のワークフローインスタンスの実行を一時停止したりできます。
イベント状態定義では、onEvents
プロパティーを使用して、同じ アクション
セットをトリガーする可能性のある CloudEvent
タイプをグループ化します。イベント定義の exclusive
プロパティーは、イベントの一致がどのように計算されるかを示します。exclusive
プロパティーの値が false
の場合、一致させるには、eventRefs
配列内のすべての CloudEvent
タイプを受信する必要があります。それ以外の場合、参照された CloudEvent
タイプの受信は一致と見なされます。
次の例は、noisy
と silent
を含む 2 つの CloudEvent タイプで構成されるイベント定義を示しています。
イベント定義の例
noisy
と silent
の CloudEvent タイプの両方を受信したときにイベント一致が発生したことを示し、両方の CloudEvent タイプに対して異なるアクションを実行するには、両方のイベント定義を含むイベント状態を別々の onEvent
項目に定義し、exclusive
プロパティーを false に設定します。
複数の onEvent
項目を持つイベント状態定義の例
6.2. Callback リンクのコピーリンクがクリップボードにコピーされました!
Callback の状態ではアクションが実行され、アクションの結果として生成されるイベントを待ってから、ワークフローを再開します。Callback の状態によって実行されるアクションは、非同期外部サービス呼び出しです。したがって、Callback の状態は、fire&wait-for-result
演算を実行するのに適しています。
ワークフローの観点から見ると、非同期サービスは、アクションが完了するのを待たずに制御が呼び出し元に直ちに返されることを示します。アクションが完了すると、CloudEvent
が公開されてワークフローが再開されます。
JSON 形式の Callback 状態の例
YAML 形式の Callback 状態の例
action
プロパティーは、外部アクティビティーまたはサービスをトリガーする関数呼び出しを定義します。アクションが実行されると、状態が Callback の場合、呼び出されたサービスによる手動での決定が完了したことを示す CloudEvent
になるまで待機します。
完了コールバックイベントを受信すると、Callback の状態は実行を完了し、次の定義されたワークフロー状態に遷移するか、終了状態の場合はワークフローの実行を完了します。
6.3. JQ 式 リンクのコピーリンクがクリップボードにコピーされました!
各ワークフローインスタンスはデータモデルに関連付けられています。ワークフローファイルに YAML
または JSON
が含まれているかどうかに関係なく、データモデルは JSON
オブジェクトで構成されます。JSON オブジェクトの初期コンテンツは、ワークフローの開始方法によって異なります。CloudEvent
を使用してワークフローが作成されている場合は、ワークフローのコンテンツは data
プロパティーから取得されます。ワークフローが HTTP
POST
リクエストにより開始された場合、ワークフローコンテンツはリクエスト本文から取得されます。
JQ 式は、データモデルとの対話に使用されます。サポートされる式言語には、JsonPath および JQ が含まれます。JQ 式言語がデフォルトの言語です。expressionLang
プロパティーを使用して、式言語を JsonPath に変更できます。
関数の JQ 式の例
{ "name": "max", "type": "expression", "operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}" }
{
"name": "max",
"type": "expression",
"operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}"
}
6.4. エラー処理 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic を使用すると、明示的な
エラー処理を定義できます。一般的なエラー処理エンティティーではなく、エラーが発生した場合に何が起こるかをワークフローモデル内で定義できます。明示的なエラー処理により、ワークフローと外部システム間のやり取り中に発生する可能性のあるエラーを処理できます。エラーが発生すると、通常のワークフローのシーケンスが変更されます。このような場合、ワークフローの状態は、事前定義された状態に移行するのではなく、エラーを処理できる可能性のある代わりの状態に移行します。
各ワークフロー状態では、実行中に発生する可能性のあるエラーにのみ関連するエラー処理を定義できます。ある状態で定義されたエラー処理は、ワークフロー実行中に別の状態で発生したエラーの処理に使用できません。
ワークフロー状態の実行中に発生する可能性があり、ワークフロー定義内で明示的に処理されない不明なエラーは、ランタイム実装によって報告され、ワークフローの実行を停止する必要があります。
6.4.1. エラー定義 リンクのコピーリンクがクリップボードにコピーされました!
ワークフロー内のエラー定義は、name
および code
パラメーターで構成されます。この name
は、wrong parameter
など、自然言語によるエラーに関する簡単な説明です。code
パラメーターは、実装でエラーを特定するのに役立ちます。
コード
パラメーターは必須であり、エンジンはさまざまなストラテジーを使用して、提供された値を実行時に発生した例外にマッピングします。使用可能なストラテジーには、FQCN、エラーメッセージ、ステータスコードが含まれます。
ワークフローの実行中は、ワークフローの最上位レベルの errors
プロパティーで既知のワークフローエラーを処理する必要があります。このプロパティーは string
型にすることができ、エラー定義を含む再利用可能な JSON
または YAML
定義ファイルを参照できます。また、チェックされたエラーをワークフロー定義にインラインで定義できる array
型にすることもできます。
以下の例は、両方のタイプの定義を示しています。
再利用可能な JSON エラー定義ファイルを参照する例
{ "errors": "file://documents/reusable/errors.json" }
{
"errors": "file://documents/reusable/errors.json"
}
再利用可能な YAML エラー定義ファイルを参照する例
errors: file://documents/reusable/errors.json
errors: file://documents/reusable/errors.json
JSON ファイルを使用してワークフローエラーをインラインで定義する例
YAML ファイルを使用してワークフローエラーをインラインで定義する例
errors: - name: Service not found error code: '404' description: Server has not found anything matching the provided service endpoint information
errors:
- name: Service not found error
code: '404'
description: Server has not found anything matching the provided service endpoint
information
6.5. スキーマ定義 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic は、入力スキーマ定義と出力スキーマ定義の 2 種類のスキーマ定義をサポートしています。
6.5.1. 入力スキーマ定義 リンクのコピーリンクがクリップボードにコピーされました!
dataInputSchema
パラメーターは、定義された JSON
スキーマに対してワークフローデータ入力を検証します。dataInputSchema
を指定することは重要です。これは、ワークフロー状態が実行される前に、提供されたワークフローデータ入力が正しいかどうかを確認する場合に使用されるためです。
dataInputSchema
は、以下のように定義できます。
dataInputSchema
定義の例
"dataInputSchema": { "schema": "URL_to_json_schema", "failOnValidationErrors": false }
"dataInputSchema": {
"schema": "URL_to_json_schema",
"failOnValidationErrors": false
}
スキーマプロパティーは URI であり、ワークフローデータ入力を検証するために使用される JSON スキーマへのパスを保持します。URI は、クラスパス URI、ファイル、または HTTP URL にすることができます。クラスパス URI が指定されている場合、JSON スキーマファイルをプロジェクトのリソースセクションまたはクラスパスに含まれるその他のディレクトリーに配置する必要があります。
failOnValidationErrors
は、オプションのフラグで、入力データが指定の JSON スキーマと一致しない場合に採用される動作を示します。指定しない場合や true
に設定された場合、例外が発生し、フローの実行に失敗します。false
に設定すると、フローが実行され、検証エラーを含む WARN レベルのログが出力されます。
6.5.2. 出力スキーマ定義 リンクのコピーリンクがクリップボードにコピーされました!
出力スキーマ定義はワークフロー実行後に適用され、出力モデルが期待どおりの形式であることを確認します。Swagger 生成にも役立ちます。
入力スキーマ定義と同様に、次のように outputSchema
を使用して JSON スキーマへの URL を指定する必要があります。
outputSchema
定義の例
dataInputSchema
に記述されている同じルールは、schema
と failOnValidationErrors
に適用されます。唯一の違いは、後者のフラグがワークフローの実行後に適用されることです。
6.6. カスタム関数 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic は custom
関数タイプをサポートしており、これにより実装で関数定義機能を拡張できるようになります。operation
文字列と組み合わせることで、定義済みの関数タイプのリストを使用できます。
カスタム関数型は、他のランタイム実装間で移植できない可能性があります。
6.6.1. sysout カスタム関数 リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、sysout
関数をロギングに使用できます。
sysout
関数定義の例
:
の後の文字列はオプションであり、ログレベルを示すために使用されます。使用可能な値は TRACE
、DEBUG
、INFO
、WARN
、および ERROR
です。値が存在しない場合は、INFO
がデフォルトになります。
state
定義では、次の例に示すように、同じ sysout
関数を呼び出すことができます。
状態内の sysout
関数参照の例
上記の例では、message
引数は、補間を使用した jq 式または jq 文字列にすることができます。
6.6.2. Java カスタム関数 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic は、ワークフローサービスを定義する Apache Maven プロジェクト内の Java
関数をサポートします。
次の例は、Java
関数の宣言を示しています。
Java
関数宣言の例
6.6.3. Knative カスタム関数 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic は knative-serving
アドオンを通じてカスタム関数の実装を提供し、Knative サービスを起動します。これにより、HTTP リクエストの実行に使用される、Knative サービスを定義する静的 URI を取得できるようになります。URI で定義された Knative サービスは、現在の Knative クラスターでクエリーされ、有効な URL に変換されます。
次の例では、デプロイされた Knative サービスを使用します。
kn service list
$ kn service list
NAME URL LATEST AGE CONDITIONS READY REASON
custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True
以下の例のように、Knative サービス名を使用して OpenShift Serverless Logic カスタム関数を宣言できます。
この関数は POST
リクエストを送信します。パスを指定しない場合、OpenShift Serverless Logic はルートパス (/) を使用します。演算で method=GET
を設定して GET
リクエストを送信することもできます。この場合、引数はクエリー文字列を介して転送されます。
6.6.4. REST カスタム関数 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic は、ショートカットとして REST
カスタムタイプを提供します。カスタム REST を使用する場合は、関数定義で、呼び出す HTTP URI と使用する HTTP メソッド (get、post、patch、または put) を指定します。これは、operation
文字列を使用して行います。関数が呼び出されるとき、OpenAPI 関数を使用する場合と同じように、リクエスト引数を渡します。
次の例は、REST
関数の宣言を示しています。
相対エンドポイントを使用する場合は、ホストをプロパティーとして指定する必要があります。ホストプロパティーの形式は kogito.sw.functions.<function_name>
.host です。この例では、kogito.sw.functions.multiplyAllByAndSum.host
がホストプロパティーキーです。必要に応じて、kogito.sw.functions.multiplyAllAndSum.port
プロパティーを指定して、デフォルトのポート (80) を上書きできます。
このエンドポイントは、numbers
フィールドが整数の配列である JSON オブジェクトを本体として受け取り、配列内の各項目を multiplier
で乗算し、乗算されたすべての項目の合計を返します。
6.7. タイムアウト リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic では、さまざまなシナリオでワークフロー実行の最大時間を設定するために使用できるタイムアウト設定が複数定義されています。ワークフローが特定の状態にあるときにイベントの到達を待機できる時間、またはワークフローの最大実行時間を設定できます。
定義場所に関係なく、タイムアウトは、参照されたワークフロー要素がアクティブになったときに開始される時間または期間として設定する必要があります。タイムアウトは ISO 8601 data and time standard
を使用して期間を指定し、PnDTnHnMn.nS
形式を使用します。1 日は厳密に 24 時間と見なされます。たとえば、PT15M
は 15 分を設定し、P2DT3H4M
は 2 日、3 時間、および 4 分を定義します。
P2M
のような月ベースのタイムアウト、つまり 2 カ月間の期間は、月の長さが変化する可能性があるため、有効ではありません。その場合は、代わりに PT60D
を使用します。
6.7.1. ワークフローのタイムアウト リンクのコピーリンクがクリップボードにコピーされました!
ワークフローがキャンセルされるまでに実行できる最大時間を設定するには、ワークフロータイムアウトを使用します。キャンセルされると、ワークフローは終了したとみなされ、GET リクエストを通じてアクセスできなくなります。したがって、デフォルトでは割り込みが true
であるかのように動作します。
ワークフローのタイムアウトは、トップレベルの timeouts
プロパティーで定義されます。string
と object
の 2 つのタイプを使用できます。string
型は、ワークフローのタイムアウト定義を含む JSON または YAML ファイルを指す URI を定義します。object
型は、タイムアウト定義をインラインで定義するために使用されます。
たとえば、ワークフローを 1 時間実行した後にキャンセルするには、次の設定を使用します。
ワークフロータイムアウトの例
6.7.2. イベントのタイムアウト リンクのコピーリンクがクリップボードにコピーされました!
ワークフローで状態を定義するときに、timeouts
プロパティーを使用して、この状態を完了するまでの最大時間を設定できます。その時間が過ぎると、状態はタイムアウトしたとみなされ、エンジンはこの状態から実行を続行します。実行フローは状態の種類によって異なります。たとえば、次の状態への遷移が実行される場合があります。
イベントベースの状態では、eventTimeout
サブプロパティーを使用して、イベントの到達を待機するまでの最大時間を設定できます。これは現在の実装でサポートされている唯一のプロパティーです。
イベントタイムアウトは、callback 状態タイムアウト、switch 状態タイムアウト、および even 状態タイムアウトをサポートします。
6.7.2.1. Callback 状態のタイムアウト リンクのコピーリンクがクリップボードにコピーされました!
Callback
状態は、一般に外部サービスを呼び出すアクションを実行し、イベントの形式で非同期応答を待機する必要がある場合に使用できます。
応答イベントが消費されると、ワークフローは実行を継続し、通常は遷移プロパティーで定義された次の状態に移動します。
Callback
状態では、イベントが消費されるまで実行が停止されるため、これに対して eventTimeout を設定できます。設定された時間内にイベントが到達しない場合、ワークフローは実行を継続し、遷移で定義された次の状態に移動します。
タイムアウトのある Callback
状態の例
6.7.2.2. Switch 状態のタイムアウト リンクのコピーリンクがクリップボードにコピーされました!
特定の条件に応じてアクションを実行する必要がある場合は、Switch
の状態を使用できます。これらの条件は、ワークフローデータ (dataConditions
) またはイベント (eventConditions
) をベースにできます。
eventConditions
を使用すると、ワークフロー実行は、設定されたイベントのいずれかが到達して条件に一致するまで待ってから決定を下します。このような状況では、イベントが条件に一致するまで最大待機する時間を制御するイベントタイムアウトを設定できます。
この時間が経過すると、ワークフローは defaultCondition
プロパティーに定義された状態に移行します。
タイムアウトのある Switch 状態の例
6.7.2.3. Event 状態のタイムアウト リンクのコピーリンクがクリップボードにコピーされました!
Event
状態は、ワークフローで 1 つ以上のイベントが受信されるまで待機し、一連のアクションを実行してから実行を継続するために使用されます。Event 状態が開始状態の場合は、新しいワークフローインスタンスが作成されます。
この状態では、timeouts
プロパティーを使用して、設定されたイベントが到達するまでワークフローが最大待機する時間を設定します。
この時間が経過してもイベントが受信されない場合、ワークフローは遷移プロパティーで定義された状態に移行するか、終了状態の場合はアクションを実行せずにワークフローインスタンスを終了します。
timeout のある Event 状態の例
6.8. Parallelism リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Serverless Logic は並列タスクの実行をシリアル化します。parallel
という言葉は同時実行を意味するのではなく、分岐の実行間に論理的な依存関係がないことを意味します。アクティブブランチが実行を中断した場合、非アクティブブランチはアクティブブランチが完了するのを待たずにタスクの実行を開始または再開できます。たとえば、アクティブなブランチは、イベントの受信を待機している間、実行を一時停止する場合があります。
並列状態は、現在のワークフローインスタンス実行パスを、各ブランチごとに 1 つずつ複数のパスに分割する状態です。これらの実行パスは並列で実行され、定義された completionType
パラメーター値に応じて現在の実行パスに結合されます。
JSON 形式の並列ワークフローの例
YAML 形式の並列ワークフローの例
前の例では、allOf
は、状態が遷移または終了する前にすべてのブランチの実行が完了する必要があることを定義しています。このパラメーターが設定されていない場合、これがデフォルト値です。
第7章 OpenShift Serverless のサポート リンクのコピーリンクがクリップボードにコピーされました!
このドキュメントで説明されている手順で問題が発生した場合は、Red Hat カスタマーポータル (http://access.redhat.com) にアクセスしてください。Red Hat Customer Portal を使用して、Red Hat 製品に関するテクニカルサポート記事の Red Hat ナレッジベースを検索または閲覧できます。Red Hat Global Support Services (GSS) にサポートケースを送信したり、他の製品ドキュメントにアクセスしたりすることもできます。
このガイドを改善するための提案がある場合、またはエラーを見つけた場合は、最も関連性の高いドキュメントコンポーネントの Jira イシュー を送信できます。コンテンツを簡単に見つけられるよう、セクション番号、ガイド名、OpenShift Serverless のバージョンなどの詳細情報を記載してください。
クラスターサイズ要件の定義に関する次のセクションは、これらのディストリビューションに適用されます。
- OpenShift Container Platform
- OpenShift Dedicated
7.1. Red Hat ナレッジベースについて リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ナレッジベース は、お客様が Red Hat の製品やテクノロジーを最大限に活用できるようにするための豊富なコンテンツを提供します。Red Hat ナレッジベースは、Red Hat 製品のインストール、設定、および使用に関する記事、製品ドキュメント、および動画で構成されています。さらに、既知の問題に対する解決策を検索でき、それぞれに根本原因の簡潔な説明と修復手順が記載されています。
7.2. Red Hat ナレッジベースの検索 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform の問題が発生した場合には、初期検索を実行して、解決策を Red Hat ナレッジベース内ですでに見つけることができるかどうかを確認できます。
前提条件
- Red Hat カスタマーポータルのアカウントがある。
手順
- Red Hat カスタマーポータル にログインします。
主な Red Hat カスタマーポータルの検索フィールドには、問題に関連する入力キーワードおよび文字列を入力します。これらには、以下が含まれます。
- OpenShift Container Platform コンポーネント (etcd など)
- 関連する手順 (installation など)
- 明示的な失敗に関連する警告、エラーメッセージ、およびその他の出力
- Search をクリックします。
- OpenShift Container Platform 製品フィルターを選択します。
- ナレッジベース のコンテンツタイプフィルターを選択します。
7.3. サポートケースの送信 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc
) がインストールされている。 - Red Hat カスタマーポータルのアカウントがある。
- Red Hat の標準またはプレミアムサブスクリプションがある。
手順
- Red Hat カスタマーポータル にログインし、SUPPORT CASES → Open a case を選択します。
- 問題の該当するカテゴリー (Defect / Bug など)、製品 (OpenShift Container Platform)、およびすでに自動入力されていない場合は製品バージョンを選択します。
- Red Hat ナレッジベースで推奨されるソリューション一覧を確認してください。この一覧に上げられているソリューションは、報告しようとしている問題に適用される可能性があります。提案されている記事が問題に対応していない場合は、Continue をクリックします。
- 問題の簡潔で説明的な概要と、確認されている現象および予想される動作の詳細情報を入力します。
- 報告している問題に対する一致に基づいて推奨される Red Hat ナレッジベースソリューションの一覧が更新されることを確認してください。ケース作成プロセスでより多くの情報を提供すると、このリストの絞り込みが行われます。提案されている記事が問題に対応していない場合は、Continue をクリックします。
- アカウント情報が予想通りに表示されていることを確認し、そうでない場合は適宜修正します。
自動入力された OpenShift Container Platform クラスター ID が正しいことを確認します。正しくない場合は、クラスター ID を手動で取得します。
OpenShift Container Platform Web コンソールを使用してクラスター ID を手動で取得するには、以下を実行します。
- Home → Dashboards → Overview に移動します。
- Details セクションの Cluster ID フィールドで値を見つけます。
または、OpenShift Container Platform Web コンソールで新規サポートケースを作成し、クラスター ID を自動的に入力することができます。
- ツールバーから、(?)Help → Open Support Case に移動します。
- Cluster ID 値が自動的に入力されます。
OpenShift CLI (
oc
) を使用してクラスター ID を取得するには、以下のコマンドを実行します。oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
$ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
プロンプトが表示されたら、以下の質問に入力し、Continue をクリックします。
- 動作はどこで発生しているか。どの環境を使用しているか。
- 動作はいつ発生するか。頻度は。繰り返すか。特定のタイミングで発生するか。
- 時間枠およびビジネスへの影響に関して提供できるどのような情報があるか ?
- 関連する診断データファイルをアップロードし、Continue をクリックします。
まずは、oc adm must-gather
コマンドを使用して収集されるデータと、そのコマンドによって収集されない問題に固有のデータを含めることが推奨されます。
- 関連するケース管理の詳細情報を入力し、Continue をクリックします。
- ケースの詳細をプレビューし、Submit をクリックします。
7.4. サポート用の診断情報の収集 リンクのコピーリンクがクリップボードにコピーされました!
サポートケースを作成する際、ご使用のクラスターのデバッグ情報を Red Hat サポートに提供していただくと、Red Hat サポートの解決の糸口になります。must-gather
ツールを使用すると、OpenShift Serverless に関連するデータを含む、OpenShift Container Platform クラスターの診断情報を収集できます。サポート対応を迅速に進めるためには、OpenShift Container Platform と OpenShift Serverless の両方の診断情報を提供してください。
7.4.1. must-gather ツールについて リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather
CLI コマンドは、以下のような問題のデバッグに必要となる可能性のあるクラスターからの情報を収集します。
- リソース定義
- サービスログ
デフォルトで、oc adm must-gather
コマンドはデフォルトのプラグインイメージを使用し、./must-gather.local
に書き込みを行います。
または、以下のセクションで説明されているように、適切な引数を指定してコマンドを実行すると、特定の情報を収集できます。
1 つ以上の特定の機能に関連するデータを収集するには、以下のセクションに示すように、イメージと共に
--image
引数を使用します。以下に例を示します。
oc adm must-gather --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
$ oc adm must-gather --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 監査ログを収集するには、以下のセクションで説明されているように
-- /usr/bin/gather_audit_logs
引数を使用します。以下に例を示します。
oc adm must-gather -- /usr/bin/gather_audit_logs
$ oc adm must-gather -- /usr/bin/gather_audit_logs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ファイルのサイズを小さくするために、監査ログはデフォルトの情報セットの一部として収集されません。
oc adm must-gather
を実行すると、ランダムな名前を持つ新規 Pod がクラスターの新規プロジェクトに作成されます。データは Pod で収集され、must-gather.local
で始まる新規ディレクトリーに保存されます。このディレクトリーは、現行の作業ディレクトリーに作成されます。
以下に例を示します。
NAMESPACE NAME READY STATUS RESTARTS AGE ... openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s ...
NAMESPACE NAME READY STATUS RESTARTS AGE
...
openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s
openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s
...
任意で、--run-namespace
オプションを使用して、特定の namespace で oc adm must-gather
コマンドを実行できます。
以下に例を示します。
oc adm must-gather --run-namespace <namespace> --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
$ oc adm must-gather --run-namespace <namespace> --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.13.0
7.4.2. OpenShift Serverless データの収集について リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather
CLI コマンドを使用してクラスターに関する情報を収集できます。これには、OpenShift Serverless の機能およびオブジェクトが含まれます。must-gather
を使用して OpenShift Serverless データを収集するには、インストールされたバージョンの OpenShift Serverless イメージおよびイメージタグを指定する必要があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。
手順
oc adm must-gather
コマンドを使用してデータを収集します。oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8:<image_version_tag>
$ oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8:<image_version_tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8:1.14.0
$ oc adm must-gather --image=registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8:1.14.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow