Kubernetes サービス¶
このガイドでは、Knative Serving の実行時にアクティブになるKubernetes Servicesについて説明します。
始める前に¶
- このガイドでは、Knative Serving をインストール済みであることを前提としています。
-
クラスターに適切なコンポーネントがあることを確認してください。クラスターにインストールされているサービスを表示するには、次のコマンドを使用します。
$ kubectl get services -n knative-serving
これにより、次のような出力が返されます。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE activator-service ClusterIP 10.96.61.11 <none> 80/TCP,81/TCP,9090/TCP 1h autoscaler ClusterIP 10.104.217.223 <none> 8080/TCP,9090/TCP 1h controller ClusterIP 10.101.39.220 <none> 9090/TCP 1h webhook ClusterIP 10.107.144.50 <none> 443/TCP 1h
-
クラスター内のデプロイメントを表示するには、次のコマンドを使用します。
$ kubectl get deployments -n knative-serving
これにより、次のような出力が返されます。
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE activator 1 1 1 1 1h autoscaler 1 1 1 1 1h controller 1 1 1 1 1h net-certmanager-controller 1 1 1 1 1h net-istio-controller 1 1 1 1 1h webhook 1 1 1 1 1h
これらのサービスとデプロイメントは、インストール中に serving.yaml
ファイルによってインストールされます。次のセクションでは、それらの機能について説明します。
コンポーネント¶
サービス: activator¶
アクティベーターは、非アクティブなリビジョンに対するリクエストを受信およびバッファリングし、オートスケーラーにメトリクスを報告する役割を担います。また、報告されたメトリクスに基づいてオートスケーラーがリビジョンをスケーリングした後、リビジョンへのリクエストを再試行します。
サービス: autoscaler¶
オートスケーラーはリクエストメトリクスを受信し、トラフィックの負荷を処理するために必要なポッドの数を調整します。
サービス: controller¶
コントローラーサービスは、すべての公開 Knative オブジェクトとオートスケーリング CRD を調整します。ユーザーが Knative サービスを Kubernetes API に適用すると、構成とルートが作成されます。これにより、構成がリビジョンに、リビジョンがデプロイメントと Knative Pod Autoscalers (KPA) に変換されます。
サービス: webhook¶
webhook は、すべての Kubernetes API 呼び出しとすべての CRD の挿入および更新をインターセプトします。デフォルト値を設定し、一貫性のない無効なオブジェクトを拒否し、Kubernetes API 呼び出しを検証および変更します。
デプロイメント: net-certmanager-controller¶
certmanager は、クラスターの Ingress を cert-manager オブジェクトに調整します。
デプロイメント: net-istio-controller¶
net-istio-controller デプロイメントは、クラスターの Ingress をIstio 仮想サービスに調整します。
次へ¶
- Knative Serving に関連するサービスとデプロイメントの詳細については、仕様リポジトリを参照してください。
- Knative Serving の概要については、Knative Serving の概要を参照してください。
- 実践的なチュートリアルについては、Knative Serving コードサンプルを参照してください。