v0.24リリース

公開日: 2021-07-08 、  修正日: 2023-08-03

Knative v0.24 リリース発表

Knativeの新しいバージョンが複数のコンポーネントで利用可能になりました。

それぞれのコンポーネントについては、ドキュメントのKnativeのインストールの手順に従ってください。

目次

ハイライト

Serving v0.24

🚨 破壊的または重要な変更

  • 一部のnet-*コンポーネントの名前変更 関連する問題:knative/networking#448

    GA/1.0に向けた取り組みの一環として、Servingとともにインストールされるネットワークプラグインの命名を標準化しました。kubectlを使用してKnativeデプロイを手動で管理している場合、これには2段階のアップグレードプロセスが必要になります。以下のセクションを参照してください

    • net-http01 v0.24.0へのアップグレード

      # Apply the new release
      $ kubectl apply -f net-http01.yaml
      
      # Once the deployment is ready delete the old resources
      $ kubectl delete deployment http01-controller -n knative-serving
      $ kubectl delete service challenger -n knative-serving
      
    • net-certmanager v0.24.0へのアップグレード

      # Apply the new release
      $ kubectl apply -f net-certmanager.yaml
      
      # Once the deployment is ready apply the same file but
      # prune the old resources
      $ kubectl apply -f net-certmanager.yaml \
        --prune -l networking.knative.dev/certificate-provider=cert-manager
      
    • net-istio v0.24.0へのアップグレード

      # Apply the new release
      $ kubectl apply -f net-istio.yaml
      
      # Once the deployment is ready apply the same file but
      # prune the old resources
      $ kubectl apply -f net-istio.yaml \
        --prune -l networking.knative.dev/ingress-provider=istio
      
    • net-contour v0.24.0へのアップグレード

      # Apply the new release
      $ kubectl apply -f net-contour.yaml
      
      # Once the deployment is ready apply the same file but
      # prune the old resources
      $ kubectl apply -f net-contour.yaml \
        --prune -l networking.knative.dev/ingress-provider=contour
      
    • net-kourier v0.24.0へのアップグレード。この時点で、名前をnet-kourierに変更することは、次のリリースまで延期しました。アップグレードの一部としてトラフィックの中断がないようにする必要があります。したがって、v0.24.0へのアップグレードには特別な手順は必要ありません。

  • Kubernetes 1.19が必須になりました

    Kubernetes最小バージョン原則の一環として、Kubernetesバージョン1.19が必須になりました。

  • Webhook/Controller RBACの変更

    Knativeインストールの削除に関する推奨される方法は、kubectl delete -f serving-core.yamlおよび適用した可能性のあるその他のリリースYAMLを実行することです。knative-serving名前空間を削除すると同様のクリーンアップが実行されるという誤解がありましたが、これはクラスターにスコープされたリソースを削除しません。以前のリリースでは、クラスターの状態によってKnative Servingの再インストールが妨げられていました。この問題に対処しましたが、名前空間とファイナライザーに関するいくつかのRBACアクセス許可が必要です。

    以下の関連する問題とPRを参照してください

    • 元の問題:knative/pkg#2044
    • 回避策:knative/pkg#2098
    • knative-serving-coreクラスターロールには、namespaces/finalizersに対するアクセス許可が必要です:#11517
  • DomainMapping機能がベータ版になりました

    これは、デフォルトでメインのserving-coreYAMLに組み込まれていることを意味します。domainmapping-controllerのレプリカ数をゼロに設定することで、この機能をオプトアウトすることもできます。

    この移行の一環として、config-network config mapのautocreateClusterDomainClaimsのデフォルト値がfalseに変更されました。つまり、特定のDomainMappingを名前空間に作成する機能を委任するには、クラスター全体のアクセス許可が必要です。シングルテナントクラスターでは、この値をtrueに戻すことで、任意のユーザーがDomain Mappingを作成できるようにすることができます。(#11573

💫 新機能と変更

  • コンテナのセキュリティコンテキストから機能を削除できるようにする(#11344
  • DomainMappingで、HTTPS証明書として使用されるTLSシークレットを指定できるようになりました(#11250
  • 有効にすると、コンテナのセキュリティコンテキストから機能を追加できるようにする機能ゲートを提供します(#11410
  • defaultExternalSchemeを使用して、デフォルトの "http"ではなく、選択したURLスキームを表面化するデフォルトルートに使用できるようになりました。(#11480
  • Envoy構成サイズを最小限に抑えるように生成されたルートを最適化しました(net-istio#632
  • 既存のcontourインストールと区別するために、ContourのClusterRoleとClusterRoleBindingの名前を変更します(net-contour#500
  • 新しいConfigMap config-kourierを追加しました。最初のenable-service-access-logging設定を使用します(net-kourier#523

🐞 バグ修正

  • アクティベーター数が多く、サービスポッド数が少ないデプロイメントで、トラフィックが一時的に「間違った」ルーティングになり、キューが超過したためにエラーが発生していたバグを修正しました。(#11375
  • トラフィック構成が間違っていた場合、Routeのトラフィックステータスが更新されます。(#11477
  • 他のconfigmapと一貫して、機能ConfigMapの_exampleセクションが誤って変更されていないことを検証します。(#11391

Eventing v0.24

🚨 破壊的または重要な変更

  • v1beta2からv1のpingsources.sources.knative.devリソースに移行するため、アップグレード後にストレージ移行ツールを実行する必要があります。(#5381

💫 新機能と変更点

新しい機能をテストおよび開発するための新しいプロセスである実験的機能プロセスを導入したことをお知らせします。

このプロセスのおかげで、新しい素晴らしい機能を試して、プロジェクトにフィードバックを提供することができます!

まずは2つの実験的機能を導入します。

  • kreference-group: refを使用する場合、完全なAPIバージョンではなく、APIグループのみを使用してリソースを参照します。
  • delivery-timeout: deliveryを使用する場合、リクエストごとのタイムアウトを定義します。

これらの機能を有効にする方法と使用法については、実験的機能ドキュメントで詳しく説明しています。

  • KReference.GroupSubscription.Spec.Channelでも使用できるようになりました。(#5520
  • DeliverySpec.Timeoutを追加しました。(#5149
  • 実験的機能kreference-groupを追加しました。有効にすると、リソースバージョン(例:v1beta1、v1など)を明示せずに、Subscriber.Ref.APIVersionの代わりにSubscriber.Ref.Groupを使用して別のリソースを参照できます。(#5440
  • 残りのHAコントロールプレーンポッド(オペレーター経由)には、単一障害点が発生しないようにpodAntiAffinityのラベルが付けられるようになりました。(#5409

🐞 バグ修正

  • イベントのリスニングを開始する前に準備完了を報告するapiserversourcesでの競合状態を修正しました。(#5446
  • imc-controllerのクラスタロールに、namespaces/finalizersの更新権限が付与されました。(#5539
  • knative-eventing-webhookのクラスタロールに、namespaces/finalizersの更新権限が付与されました。(#5501

🧹 クリーンアップ

  • Subscription.Spec.ChannelでKReferenceが使用されるようになり、spec.channelCRDスキーマの許可度が低くなり、KReferenceフィールドのサポートされている使用法に一致するようになりました。YAMLでリソースを作成するSubscriptionのユーザーには影響しません。(#5412
  • PingSourceアダプターは、ソースが準備できていない場合、警告イベントの代わりに通常のイベントを生成するようになりました。イベントの名前をPingSourceSkippedに変更しました。
    • PingSourceアダプターは、同期されたときに通常のイベントPingSourceSynchronizedを生成するようになりました。(#5549

Eventing拡張機能

Apache Kafka Broker v0.24

💫 新機能と変更点

  • 既存のSubscriber resolved conditionに、配信順序に関する詳細を追加しました。#912
  • レシーバーデプロイメントは、利用可能なすべてのCPUを使用します。#985
  • 実験的機能delivery-timeoutの一部として、BrokerとTriggerの両方のデリバリー仕様で新しいタイムアウトフィールドを指定できるようになりました。詳細については、実験的機能を参照してください。#1034
  • Goをv1.16に更新しました。#886
  • protobufをv3.17.xに更新しました。#946
  • vert.xをv4.1に更新しました。#900

RabbitMQ Eventing v0.24

💫 新機能と変更点

  • RabbitMQBrokerクラスのブローカーに対して、有効な[secret, rabbitmqcluster]構成をチェックする検証webhookを追加しました。(#324
  • rabbitmqクラスターオペレーターまたはmessaging-topology-operatorに依存しないインストールオプションを提供します。これにより、独自のrabbitmqブローカーを持ち込むことができます。(#309
  • 2種類のブローカーのインストール手順を追加しました。(#315

🐞 バグ修正

  • スタンドアロンブローカーがTrigger DeadLetterSinkを適切にサポートするように修正しました。(#341
  • トリガーごとのDeadLetterSinkのサポートを修正しました。(#337
  • 問題#320を修正しました。 nightlyとリリース予定のスタンドアロンブローカーの両方へのリンクの間違いを修正しました。(#325
  • 機能がhttps://github.com/knative-extensions/eventing-autoscaler-kedaに移動したため、不要なkeda権限を削除しました。(#319
  • スタンドアロンブローカーのすべてのRabbitMQリソースに対して、より適切な名前を使用します。k8sリソースとRabbitMQリソースの両方。(#344

Client v0.24

💫 新機能と変更点

  • webhookの警告の表示を整形しました。#1353
  • Kubernetesの依存関係をv0.20.7に更新しました。#1344
  • Sourcesのコードカバレッジを増やしました。#1343
  • 他のネットワーク上でe2eテストを実行できるようにしました。#1339
  • --env-value-fromフラグを追加し、指定されたとおりに環境変数の順序を保持します。#1328

🐞 バグ修正

  • SubscriptionのChannelがKRefenceタイプを使用するように修正しました。#1326

Operator v0.24

💫 新機能と変更点

  • Eventingソースのマニフェストを追加しました。#641
  • EventingソースのAPIを変更しました。#613
  • ソースをインストールするロジックを追加しました。#645
  • pkg/test.KubeClientの使用を停止しました。#655
  • デプロイメントとサービスをインストールした後、webhookをインストールします。#674

🐞 バグ修正

  • バージョンパラメータをサポートすることでフェッチャーを改善しました。#613
  • アップグレード後のテストを実行する前に20秒のタイムアウトを追加しました。#623
  • e2eテストに$KO_FLAGSを追加しました。#649
  • 他のネットワーク上でe2eテストを実行できるようにしました。#650
  • spec.deployments.nodeSelectorを介してNodeSelectorを設定できるようにしました。#658
  • net-*デプロイメントの名前変更を正常に処理します。#669

コントリビューターの皆様、ありがとうございます

詳細情報

Knativeは、コミュニティの誰もが使用、改善、楽しむことができるオープンソースプロジェクトです。ぜひご参加ください!

当サイトでは、サイトトラフィックを把握するために分析とCookieを使用しています。当サイトのご利用に関する情報は、その目的のためにGoogleと共有されます。詳細はこちら。