v0.3リリース
公開日:2021年10月6日
Knative v0.3リリースを発表
Knativeの勢いは続きます! 再び、Knativeの新しいリリースを発表できることを嬉しく思います。前回のリリースで発表された一連のアーキテクチャ変更の後、v0.3は増加するKnativeデプロイメントから得られた多くの学びを実装し、運用制御を強化し、安定性を向上させます。
6週間のリリースサイクルに基づく、より予測可能なリリーススケジュールに移行するにつれて、Knativeのリリースはより小規模で頻繁になります。これは、ユーザーとのより緊密なフィードバックループを実現し、増加するユーザーから学び続けるにつれて、よりスムーズな軌道修正を可能にするためです。

v0.3リリースから、KnativeはKubernetes 1.11を必要とするようになりました。これは、Kubernetes 1.11でベータ版になった`/status`サブリソースのサポートを使用しており、Kubernetes CRDの長い間存在していたバグを修正するためです。
新機能、バグ修正、アーキテクチャの変更の概要を説明したKnative v0.3リリースノートの完全なセットは、サービング、ビルド、およびイベント処理リポジトリで入手できます。以下は、いくつかのハイライトです。
サービングAPI
v0.3リリースでは、KnativeはAPIでいくつかの追加パラメータを公開するようになりました。これらには、明示的なリビジョンタイムアウトと、ユーザーコンテナへの着信トラフィックのポートを指定する機能が含まれます。Knativeは以前、"$PORT"環境変数を使用してコンテナに公開していました。
さらに大きな追加は、Kubernetesリソース仕様のサポートです。これにより、ユーザーコンテナの予約と制限を指定できます。サービスが必要とするCPUとメモリ(RAM)の量を指定したり、使用できる量を制限したりできるだけでなく、開発者はクラスタにその機能が構成されたノードが含まれている場合、GPUなどのハードウェアアクセラレータへのアクセスを要求することもできます。
v0.3では、Knativeはオペレーターの変更のロールアウトについてもより積極的になっています。サービングConfigMapへの変更は、すぐに調整され、ロールアウトされます。
自動スケーリング
前回のリリースで導入された新しい単一の共有オートスケーラーに基づいて、v0.3はより積極的なスケールツーゼロ戦略を導入します。これは、デフォルトで、アクティビティがない30秒後にリビジョンをゼロポッドにスケールダウンします。デフォルトのKnative Pod Autoscaler(KPA)は、リビジョンレベルの同時実行ターゲットをサポートするようになりました。
Kubeconデモで示されているように、KnativeはHorizontal Pod Autoscaler(HPA)を提供するようになりました。これは、KPAをオプトアウトし、リクエストレートではなくCPUをスケーリングメトリックとして使用する必要があるユーザーに役立ちます。(注:HPAクラスのリビジョンはゼロにスケールダウンされません)。
最後に、`PodAutoscaler`の仕様をその場で変更して、スケール範囲やその他のパラメータを調整できるようになりました。
ネットワーキング
頻繁に要求される機能は、外部に公開されず、クラスタ内の他のサービスからのみアクセスできるサービスをデプロイする機能です。v0.3では、`svc.cluster.local`ドメインを使用するように構成されたルートは、クラスタローカルのIstioゲートウェイのみに公開されます。クラスタローカルゲートウェイは、デプロイされたサービスをクラスタの外部からアクセスできないようにします。開発者は、ルートまたはサービスに`serving.knative.dev/visibility=cluster-local`ラベルを使用して、この動作を有効にすることもできます。
Knativeは、専用のIstioゲートウェイも廃止予定です。v0.3リリースでは、Knativeは引き続き廃止されたゲートウェイとデフォルトのIstioゲートウェイの両方にパブリックルートを公開します。ただし、次のリリースからは、Knativeは廃止されたゲートウェイを削除して、オーバーヘッドをさらに削減し、パブリックIPの追加コストを回避します。(注:DNSマッピングのゲートウェイIPを更新する必要がある場合があります)。
イベント処理
前回のリリースでEventingが追加されたことで、KnativeにKubernetesカスタムリソース定義(CRD)としてインストールできる外部イベントソースの数とドキュメントの拡張に重点が置かれています。現在サポートされているイベントソースの完全なリストはこちらにあります。
ビルド
Knative Buildコンポーネントは、単一の`source`と複数の入力`sources`の両方をサポートできるようになりました。複数のソースが要求された場合、それぞれは宣言された順序でフェッチされ、ソースの名前フィールドにちなんで名付けられた`/workspace`の下のディレクトリに配置されます。ビルドコントローラーは、クラスタオペレーターがさらに制限を指定できるPodSecurityPolicyの対象となりました。
モニタリング
メトリックラベルは、すべてのKnativeコンポーネントで一貫している必要があります。また、デフォルトのPrometheusメトリックターゲットに加えて、Knativeコントロールプレーンメトリック(Reconciler、Autoscaler、およびActivatorから)をStackdriverに直接エクスポートできるようになりました。
詳細はこちら
- Knativeへようこそ
- 入門ドキュメント
- サンプルとデモ
- Knativeの会議とワーキンググループ
- 質問と問題
- TwitterのKnative(@KnativeProject)
- StackOverflowのKnative
- Knative Slack