すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Knative のよくある質問とソリューション

最終更新日:Mar 04, 2026

このトピックでは、Container Service for Kubernetes (ACK) クラスターで Knative を使用する際に発生する可能性のある一般的な問題と、それに対応するソリューションについて説明します。

インデックス

Alibaba Cloud Knative とオープンソース Knative の違い

Alibaba Cloud Knative は、運用と保守、使いやすさ、弾力性、ゲートウェイ、イベント駆動型機能、監視とアラートなど、複数の側面でオープンソース Knative を強化しています。詳細については、「Alibaba Cloud Knative とオープンソース Knative の比較」をご参照ください。

Knative のインストール時に選択すべきゲートウェイ

Alibaba Cloud Knative は、ALB、ASM、Kourier の3つのゲートウェイをサポートしています。ALB はアプリケーション層のロードバランシングに最適化されています。ASM は Istio に基づくサービスメッシュ機能を提供します。基本的なゲートウェイ機能のみが必要な場合は、Kourier を選択してください。詳細については、「Knative のゲートウェイの選択」をご参照ください。

Resource Access Management (RAM) ユーザーまたはロールで Knative を使用するために必要な権限

クラスター内のすべての名前空間にアクセスする権限が必要です。これらの権限は次のように付与します。

  1. Container Service 管理コンソールにログインします。Container Service 管理コンソール 。左側のナビゲーションウィンドウで、承認 をクリックします。

  2. RAM ユーザー]タブをクリックします。RAM ユーザーリストで、対象の RAM ユーザーの横にある[権限の管理]をクリックします。

  3. ロール権限の追加」エリアで、権限を付与するクラスターを選択し、名前空間をすべての名前空間に設定して、プロンプトに従って権限付与を完了します。

Knative Pod がゼロにスケールダウンするまでの時間

Pod がゼロにスケールダウンするのに必要な時間は、次の3つのパラメーターによって異なります。

  • stable-window:安定ウィンドウ。スケールダウンする前に、システムはこの期間中にメトリックを監視し、即座にアクションを実行しません。

  • scale-to-zero-grace-period:ゼロへのスケールダウンのタイムアウト。この期間中、システムは急激なトラフィックスパイクに対応するために、新しいリクエストがない場合でも最後の Pod を保持します。

  • scale-to-zero-pod-retention-period:ゼロにスケールダウンする前の最後の Pod の保持期間。これにより、新しい Pod を最初から起動することなく、トラフィックスパイクに迅速に対応できます。

Pod は、次の3つの条件すべてが満たされたときにゼロにスケールダウンします。

  1. stable-window 内でリクエストが受信されない。

  2. scale-to-zero-pod-retention-period が期限切れになった。

  3. SKS (Serverless Kubernetes Service) がプロキシモードに切り替わるまでの時間が scale-to-zero-grace-period を超え、Pod がスケールダウンを開始する。

Pod がゼロにスケールダウンする際の最大保持期間は stable-window + Max["scale-to-zero-grace-period", "scale-to-zero-pod-retention-period"] です。特定の保持期間を強制するには、scale-to-zero-pod-retention-period パラメーターを設定します。

Knative で GPU リソースを使用する方法

Knative Service では、spec.template.metadata.annotation セクションに k8s.aliyun.com/eci-use-specs フィールドを追加することで、GPU インスタンスタイプを指定できます。その後、spec.containers.resources.limits セクションで nvidia.com/gpu フィールドを使用して GPU リソースを宣言できます。

詳細については、「GPU の使用」をご参照ください。

Knative で共有 GPU を使用する方法

共有 GPU スケジューリングの例を実行 の手順に従って、ノードの共有 GPU スケジューリングを有効にします。その後、aliyun.com/gpu-mem フィールドを使用して Knative Service でリソース制限を設定します。詳細については、「共有 GPU スケジューリングの有効化」をご参照ください。

トラフィックがない場合に Knative がインスタンスをゼロにスケールダウンする際のコールドスタートレイテンシー問題の解決策

アプリケーションがリクエストを受信しない場合、オープンソース Knative は、永続インスタンスの実行コストを削減するために、デフォルトでアプリケーションインスタンスの数をゼロにスケールダウンします。リクエストが到着すると、アプリケーションには新しいインスタンスが割り当てられます。これには、IaaS リソースの割り当てとスケジューリング、イメージのプル、およびアプリケーションの起動が含まれます。これによりコストは削減されますが、コールドスタートのレイテンシーが発生します。

ビジネスがコールドスタートのレイテンシーに敏感な場合は、次のいずれかのソリューションを検討してください。

  • リザーブドインスタンスの設定:Knative の使用コストとコールドスタートのレイテンシーのバランスを取るために、低スペック、低コストの バースト可能インスタンスの概要 を予約します。最初のリクエストが到着すると、予約されたインスタンスがリクエストを処理し、デフォルトスペックのインスタンスのスケールアウトをトリガーします。デフォルトスペックのインスタンスがスケールアウトを完了した後、後続のリクエストはそれらに転送されます。予約されたインスタンスは、リクエストの処理後に自動的にオフラインになります。詳細については、「リザーブドインスタンスの設定」をご参照ください。

  • Elastic Container Instance (ECI) イメージキャッシュ機能を使用して、アプリケーションイメージのキャッシュスナップショットを事前に作成し、それらのスナップショットから ECI インスタンス (Pod) を作成します。これにより、イメージレイヤーのダウンロードが回避または削減され、インスタンス作成速度が向上します。詳細については、「イメージアクセラレーションの使用」をご参照ください。

ACK Knative の Activator コンポーネントは課金対象か

はい、課金対象です。Activator コンポーネントはデータプレーンで Pod として実行され、インスタンスリソースを消費します。

Knative Service のリスニングポートの設定方法

アプリケーションのリスニングポートは、Knative Service の containerPort と一致する必要があります。これはデフォルトで 8080 です。リスニングポートをカスタマイズするには、「カスタムリスニングポートの設定」をご参照ください。