v0.21 リリース
公開日: 2021-02-27 、 改訂日: 2023-08-03
Knative v0.21 リリースを発表¶
Knative の新しいバージョンが、複数のコンポーネントで利用可能になりました。それぞれのコンポーネントのドキュメントの Knative のインストール の手順に従ってください。
目次¶
- Serving v0.21
- Eventing v0.21
- Eventing 拡張機能
kn
CLI v0.21kn
CLI プラグイン
- Operator v0.21
- コントリビューターの皆様、ありがとうございます v0.21
ハイライト¶
- Kubernetes の最小バージョンが v1.18 に変更されました
- K8s の最小バージョン原則をご覧ください
- Serving が Istio 1.9 および Contour 1.12 をサポートするようになりました
- AutoTLS を使用した Kourier を使用する場合の DomainMapping の修正
- Eventing ソース PingSource バイナリモードには、破壊的な変更があります。
- Eventing 同期には、いつ応答するかを知る機能があります。詳細については、イベント応答ヘッダーコントラクト仕様を参照してください。
- CLI
kn
0.21.0 には、いくつかのバグ修正とマイナーな機能強化が含まれています。これは主に磨き上げられたリリースです。また、Knative リリース列車に 2 つの kn プラグインをもたらす最初のリリースでもあります。 - Knative Operator が net-kourier をサポートするようになりました
- Knative Operator が、オペレーターでサポートされる特別なバージョンとして
latest
のバージョンをサポートするようになりました
Serving v0.21¶
🚨 破壊的または注目すべき変更¶
- Kubernetes の最小バージョンが v1.18 に変更されました
- K8s の最小バージョン原則をご覧ください
- GC v1 および Labeler v1 は非推奨となり、コードベースから削除されました
- Webhooks 証明書で RSA/2048 の代わりに Ed25519 を使用し、有効期限が 1 週間になりました (knative/pkg#1998)
💫 新機能と変更¶
- config-network config map に autocreateClusterDomainClaim を導入します。これにより、自動 ClusterDomainClaim の作成を無効にすることで、共有クラスターで DomainMappings を安全に使用できるようになります。このオプションを「false」に設定した場合、クラスター管理者は、適切な spec.Namespace を設定して ClusterDomainClaim を作成することにより、ドメイン名をネームスペースに明示的に委任する必要があります。(#10537)
- ドメインマッピングでは、クラスターローカルドメイン名 (通常は "cluster.local" 下のドメイン) からのマッピングは許可されません (#10798)
- コンテナの SecurityContext で ReadOnlyRootFilesystem の設定を許可します (#10560)
- ユーザーが非アグレッシブプロービング (つまり、PeriodTimeout > 1) を選択した場合、コンテナの Readiness Probe FailureThreshold と TimeoutSeconds は、それぞれ 3 と 1 がデフォルトになります (#10700)
- まだ存在しない場合は、プロキシされたリクエストに "Accept-Encoding: gzip" ヘッダーを暗黙的に追加することを回避します。(#10691)
- 個々のリビジョンで serving.knative.dev/rolloutDuration アノテーションを使用して、段階的なロールアウトを設定できます。(#10561)
- Istio 1.9 のサポート (knative-extensions/net-istio#515](https://github.com/knative-extensions/net-istio/pull/515))
- Contour 1.12 のサポート (knative-extensions/net-contour#414](https://github.com/knative-extensions/net-contour/pull/414))
🐞 バグ修正¶
- auto-tls および kourier チャレンジを使用したドメインマッピングの問題を修正します (#10811
- アクティベーターのメトリクスがスタックし、期待どおりにゼロとの間でスケーリングが機能しなくなる可能性のあるバグを修正しました。(#10729)
- 非常にまれなエッジケースで、ドレインが終了したにもかかわらず、pre-stop フックが終了しない可能性のある Queue Proxy ドレインロジックの競合を修正します (#10781)
- メトリクスに関連する遅いメモリ不足の問題を回避します (knative/pkg#2005)
- アップストリームで削除されたため、リフレクターメトリクスの報告を停止します (knative/pkg#2020)
Eventing v0.21¶
🚨 破壊的または注目すべき変更¶
- 破壊的変更: PingSource バイナリモードは、base64 でエンコードされた形式ではなく、イベント本文に実際のバイナリデータを送信するようになりました。(#4851](https://github.com/knative/eventing/pull/4851), @eclipselu)
v1beta1
からv1beta2
pingsources.sources.knative.dev
リソースに移行するには、アップグレード後にストレージ移行ツールを実行する必要があります。(#4750](https://github.com/knative/eventing/pull/4750), @eclipselu)
💫 新機能と変更¶
- Eventing Webhook の HorizontalPodAutoscaler と PodDisruptionBudget の追加 (#4792)
- スペックに イベント応答ヘッダーコントラクト を追加 (#4560)
- PingSource で利用可能な CloudEvent トレース (#4877)
- デッドレターエンドポイントに送信される CloudEvents には、最後のディスパッチ試行からのエンコードされた HTTP 応答エラー情報を含む ce-knativedispatcherr という拡張属性が含まれます。(#4760, @travis-minke-sap)
- メッセージレシーバーは、カスタマイズされた活性および準備状態チェックをサポートします (#4730)
- imc-dispatcherサービスは、broker-ingress.knative-eventingおよびbroker-filter.knative-eventingサービスとの一貫性を保つために、新しいトレーススパン属性を追加します。新しい属性は、messaging.destination、messaging.message_id、messaging.protocol、およびmessaging.systemです(#4659)。
- Trigger.Deliveryフィールドを追加し、トリガーごとに配信を設定できるようにします。(#4654)
🐞 バグ修正¶
- APIServerSourceのZipkinトレースの可用性を修正しました(#4842)。
- セットアップ中にポッドが起動しない場合があるバグを修正しました。(#4725、#4741)
- v1beta1が不変フィールドへの変更を許可していたバグを修正しました。v1beta1 trigger.spec.brokerは不変です。(#4843)
🧹 クリーンアップ¶
- config-imc-event-dispatcherの値は、もはやオンザフライで設定できなくなりました。つまり、これらの値を設定する必要がある場合は、ディスパッチャーのデプロイを再デプロイする必要があります(#4543)。
- PingSource: イベントは常にバイナリモードで送信されるため、JSONデータの特別な処理を削除しました。(#4858)
- チャネルのダックタイプ内部をクリーンアップしました(#4749)。
Eventing Extensions¶
Eventing RabbitMQ v0.21¶
🚨 破壊的変更または注目すべき点¶
- Kubernetes の最小バージョンが v1.18 に変更されました
- k8sライブラリをv0.19.7にアップグレードしました。最小k8sバージョンは1.18になりました。(#213)
💫 新機能と変更点¶
- rabbitmq cluster operator v1.0、v1.1、v1.2、v1.3の新しいリリースをサポートします。(#204)
📖 ドキュメント¶
- RabbitMQソースのユーザー向けドキュメントを追加しました(#201)。
🧹 クリーンアップ¶
- 現在の動作を更新またはクリーンアップします - kind e2eテストでgo 1.15を使用します。(#196)
- 現在の動作を更新またはクリーンアップします。go.modでgo 1.15を使用します。(#215)
- cmd/failer/main.goのコメントを現実と一致するように更新します。(#210)
- ポッドの準備状況を判断するために、hackのスクリプトを使用します。(#209)
Eventing Kafka Source, Channel v0.21¶
💫 新機能と変更点¶
- PLAIN以外の他のKafka SASLメソッドを有効にするために、デフォルトのkafka-secretにsasltypeという名前の新しいオプションフィールドを追加します。SCRAM-SHA-256またはSCRAM-SHA-512をサポートします。(#332)
- 公開証明書の使用のためのtls.enabledフラグを追加し、CA/ユーザー証明書とキーのスキップを許可します(#359)。
- KafkaSourceおよびKafkaChannelは、デフォルトで設定にconfig-leader-election CMを使用します(#231)。
- Azure EventHub名前空間のプーリングのサポートを削除し、EventHubの制約された数(Kafkaトピック)へのAzure EventHubの使用を制限する単一の名前空間/認証のみをサポートするようになりました。(#297)
- 「分散型」KafkaChannel構成YAMLに、変換を提供するKafkaChannel WebHookが含まれるようになりました。(#187)
- KafkaSourceはknative-eventing名前空間にインストールされ、knative-sourcesの古いコントローラーは0にスケーリングされます(#224)。
- 単一のグローバルStatefulSetがすべてのKafkaSourceインスタンスを処理する、新しい代替KafkaSource実装を追加します。(#186)
- config-kafka configmapにsaramaフィールドを使用して、KafkaSourceのSarama構成のデフォルトを定義できるようになりました。(#337)
- config-kafka configmapにsaramaフィールドを使用して、統合チャネルのSarama構成のデフォルトを定義できるようになりました。(#305)
- KafkaChannel CustomResourceDefinitionは、apiextensions.k8s.io/v1 APIを使用するようになりました(#132)。
- KafkaSourceスケールサブリソースを使用して、基になるデプロイをスケールアップおよびスケールダウンできるようになりました(#138)。
- 接続引数を適切な値にデフォルト設定します。(#353)
🐞 バグ修正¶
- 統合されたKafkaChannelで、ディスパッチャーがそれらのサブスクライバーにメッセージをディスパッチする準備ができる前に、サブスクリプションがチャネルのstatus.subscribersに表示されるバグが修正されました。
- 統合されたKafkaChannelディスパッチャーの水平スケーラビリティは、リコンサイラーリーダー選出とシームレスに連携するようになりました。(#182)
- ディスパッチャーでのリコンシリエーションの実行中に未定義の動作を引き起こすコンシューマーグループマップの同時変更を修正しました(#352、@slinkydeveloper)。
- リバランスが発生したときにKafkaコンシューマーでクラッシュが発生するバグを修正しました(#263、@lionelvillard)。
- コンシューマーファクトリーのエラーチャネルでの競合を修正しました(#364)。
- KafkaSourceディスパッチャーがメトリクスとプロファイリング情報を公開するようになりました(#221)。
- 統合されたKafkaChannelは、デフォルトでより安全なイベント生成のためにSyncProducerに依存するようになりました。(#181)
Eventing Kafka Broker v0.21¶
💫 新機能と変更点¶
- SASLとSSLのサポートを追加します。(#534、@pierDipi)
- Trigger.Spec.DeliverySpecのサポートを追加します(#612)。
- KafkaSink CRDのステータスフィールドの説明を改善します。(#552)
- クリーンシャットダウン時のエラーログのノイズを減らします。(#625)
- Kubernetes 1.20をサポートします。(#542)
🐞 バグ修正¶
- 最も早いオフセットからトピックを消費します(#557)。
- オフセット管理を修正します(#557)。
- データプレーンリコンサイラーは、失敗したリコンシリエーションを処理します。(#568)
- TimeoutExceptionとDnsNameResolverTimeoutExceptionを修正します。(#539)
Client v0.21¶
🚨 破壊的変更または注目すべき点¶
リビジョン命名
このバージョンでは、knはリビジョンの命名方法のデフォルトを変更します。これまで、名前はクライアント自身が選択しており、Knative Servingの「Bring-Your-Own」(BYO)リビジョン名サポートを利用していました。
ただし、このモードにはいくつかの深刻な欠点があることが判明しました。
- クライアント側のリビジョン命名でサービスを作成する場合、更新のたびに新しいリビジョン名を指定する必要があります。これは、クラスターでリソースを直接編集したり、OpenShift Developerコンソールのようなツールを使用したりするなど、kn以外のクライアントを使用している場合は特に面倒です。knが唯一使用されるクライアントであると仮定するのは、少し大胆な態度です。
SinkBinding
はBYOリビジョン名では機能しません。kn service apply
はクライアント生成のリビジョン名を使用できないため、kn service applyは--revision-name
オプションを無視し、常にサーバー側で生成されたリビジョン名を使用します。kn
でBYOリビジョン名モードを使用してサービスを作成した後で、kubectl apply
を使用する場合も同様です。- リビジョン名はランダムであり、サーバー側で生成されたリビジョン名のように特定の世代順序を反映していません。
- 同じイメージ名で再度更新した場合に新しいリビジョンが作成される問題があります(#398を参照)。
この破壊的変更の理由の詳細については、#1144(およびこの問題を指す問題)を参照してください。
必要なアクション
クライアント側のリビジョン命名に依存している場合は、kn service create
に--revision-name {{.Service}}-{{.Random 5}}-{{.Generation}}
を追加して、以前のデフォルトの動作に戻す必要があります。ただし、ほとんどの場合、リビジョン名がkn
またはKnative Servingコントローラーによって作成されたかどうかを気にする必要はありません。
この変更に関する問題が発生した場合は、お知らせください。できるだけ早く修正します。この変更によって発生する問題については、サポートさせていただきます。
💫 新機能と変更点¶
- オプション
--context
と--cluster
を使用すると、Kubernetesクラスターへの接続パラメーターを選択できます。これらのオプションはkubectlと同じように機能します。 - kn exportを実行する際のクラスター固有のランタイム情報をいくつかクリーンアップしました。
CLIプラグイン¶
💫 新機能と変更点¶
CLI kn
プラグインがリリース版に移行しました。
リリースv0.21では、Knativeは依存関係に関して調整された最初のknプラグインセットも出荷しているため、簡単にインライン化できます。
バージョンv0.21
に含まれるプラグインは次のとおりです。
- kn-plugin-admin:Kubernetesで実行されているKnativeインストールを管理するため| ダウンロード
- kn-plugin-source-kafka:バックエンドでeventing-kafkaを介してインストールされたKafka Sourceを管理するため | ダウンロード
これらのプラグインを試すには、ダウンロードしてバイナリを実行パスに配置してください。すると、それぞれkn admin --helpとkn source kafka --helpでヘルプが表示されます。
Operator v0.21¶
💫 新機能と変更点¶
このオペレーターのイメージにバンドルされている最新のネットワークイングレスv0.21.0アーティファクトには、net-istio.yaml、net-contour.yaml、およびkourier.yamlが含まれています。
- Kourierゲートウェイサービスタイプを設定できるようにします(#470)。
- 拡張カスタムマニフェストのサポートを追加します(#468)。
- オートスケーラーのHAサポートを追加します(#480)。
- システムのデプロイメントの設定をオーバーライドするために、spec.deploymentsをサポートします(#472)。
- HA Eventingマスターを追加します(#444)。
🐞 バグ修正¶
🧹 クリーンアップ¶
- オペレーターでサポートされる特別なバージョンとして
latest
を追加 (#443) - ServingとEventingのアップグレードに関するテストを書き直し (#441)
- テストイメージのビルドプラットフォームを指定できるようにする (#451)
- いくつかの依存関係を最新バージョンに更新 (#463)
- 使用されているすべてのYAMLモジュールを整合 (#462)
- Istioゲートウェイのオーバーライド設定をspec.ingress.istioに移動 (#469)
貢献者の皆様、v0.21に感謝します¶
- @BbolroC
- @Harwayne
- @Shashankft9
- @aliok
- @arturenault
- @cardil
- @csantanapr
- @devguyio
- @dsimansk
- @eclipselu
- @evankanderson
- @grac3gao
- @houshengbo
- @julz
- @larhauga
- @lionelvillard
- @markusthoemmes
- @mattmoor
- @matzew
- @matzew
- @nak3
- @navidshaikh
- @pierDipi
- @rhuss
- @senthilnathan
- @shinigambit
- @skonto
- @slinkydeveloper
- @travis-minke-sap
- @vagababov
- @vaikas
- @whaught
- @xtreme-sameer-vohra
- @zhongduo
詳細はこちら¶
Knativeは、コミュニティの誰もが使用、改善、楽しむことができるオープンソースプロジェクトです。ぜひご参加ください!
- Knativeへようこそ
- ドキュメントを始める
- サンプルとデモ
- Knativeのミーティングとワークグループ
- 質問と問題
- Knativeユーザーメーリングリスト
- Knative開発メーリングリスト
- TwitterのKnative @KnativeProject
- StackOverflow上のKnative
- Knative Slack
- YouTube上のKnative