YAMLファイルを使用したKnative Eventingのインストール¶
このトピックでは、kubectl
CLIを使用してYAMLファイルを適用することで、Knative Eventingをインストールする方法について説明します。
前提条件¶
Knativeをインストールする前に、以下の前提条件を満たす必要があります。
-
プロトタイプ作成の場合、KnativeはほとんどのKubernetesのローカルデプロイで動作します。たとえば、3つのCPUと4GBのメモリを持つローカルの1ノードクラスターを使用できます。
ヒント
Knativeクイックスタートプラグインを使用して、開発用にKnativeのローカルディストリビューションをインストールできます。
-
本番環境の場合、以下のことを推奨します。
- クラスターにノードが1つしかない場合は、少なくとも6つのCPU、6GBのメモリ、および30GBのディスクストレージが必要です。
- クラスターに複数のノードがある場合は、各ノードに少なくとも2つのCPU、4GBのメモリ、および20GBのディスクストレージが必要です。
- Kubernetes v1.28以降を使用するクラスターが必要です。
kubectl
CLIをインストールしている必要があります。- Kubernetesクラスターはインターネットにアクセスできる必要があります。これは、Kubernetesがイメージをフェッチできる必要があるためです。プライベートレジストリからプルするには、プライベートコンテナレジストリからのイメージのデプロイを参照してください。
注意
ここに示されたシステム要件は推奨事項にすぎません。インストールに必要な要件は、ネットワーキングレイヤーなどのオプションコンポーネントを使用するかどうかによって異なる場合があります。
イメージ署名の検証¶
1.9以降のKnativeリリースは、cosignで署名されています。
curl -sSL https://github.com/knative/serving/releases/download/knative-v1.16.0/serving-core.yaml \
| grep 'gcr.io/' | awk '{print $2}' | sort | uniq \
| xargs -n 1 \
cosign verify -o text \
--certificate-identity=signer@knative-releases.iam.gserviceaccount.com \
--certificate-oidc-issuer=https://#
注
KnativeイメージはKEYLESS
モードで署名されています。キーレス署名の詳細については、キーレス署名を参照してください。当社のリリースにおける署名ID(サブジェクト)はsigner@knative-releases.iam.gserviceaccount.com
であり、発行者はhttps://#
です。
Knative Eventingのインストール¶
Knative Eventingをインストールするには
-
次のコマンドを実行して、必要なカスタムリソース定義(CRD)をインストールします
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-crds.yaml
-
次のコマンドを実行して、Eventingのコアコンポーネントをインストールします
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-core.yaml
情報
Knative EventingのYAMLファイルの詳細については、YAMLファイルの説明表を参照してください。
インストールを検証する¶
成功
すべてのコンポーネントのSTATUS
がRunning
またはCompleted
になるまで、Knativeコンポーネントを監視します。次のコマンドを実行して出力を確認することで、これを行うことができます
kubectl get pods -n knative-eventing
出力例
NAME READY STATUS RESTARTS AGE
eventing-controller-7995d654c7-qg895 1/1 Running 0 2m18s
eventing-webhook-fff97b47c-8hmt8 1/1 Running 0 2m17s
オプション: デフォルトチャネル(メッセージング)レイヤーをインストールする¶
次のタブを展開すると、デフォルトのチャネルレイヤーをインストールするための手順が表示されます。選択したチャネルの手順に従ってください
次のコマンドは、KafkaChannelをインストールし、システムネームスペースでイベントルーティングを実行します。デフォルトでは、knative-eventing
ネームスペースが使用されます。
-
次のコマンドを実行して、Kafkaコントローラーをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
次のコマンドを実行して、KafkaChannelデータプレーンをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-channel.yaml
-
以前のバージョンからアップグレードする場合は、次のコマンドを実行します
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-post-install.yaml
警告
このシンプルなスタンドアロン実装はインメモリで実行され、本番環境での使用には適していません。
-
次のコマンドを実行して、チャネルのインメモリ実装をインストールします
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/in-memory-channel.yaml
-
次のコマンドを実行して、NATS Streamingチャネルをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-natss/releases/download/knative-v1.16.0/eventing-natss.yaml
チャネルのデフォルト設定セクションで説明されている手順に従うことで、デフォルトのチャネル実装を変更できます。
オプション: ブローカーレイヤーをインストールする¶
次のタブを展開すると、ブローカーレイヤーをインストールするための手順が表示されます。選択したブローカーの手順に従ってください
次のコマンドは、Apache Kafkaブローカーをインストールし、システムネームスペースでイベントルーティングを実行します。デフォルトでは、knative-eventing
ネームスペースが使用されます。
-
次のコマンドを実行して、Kafkaコントローラーをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
次のコマンドを実行して、Kafkaブローカーデータプレーンをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-broker.yaml
-
以前のバージョンからアップグレードする場合は、次のコマンドを実行します
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-post-install.yaml
詳細については、Kafkaブローカーのドキュメントを参照してください。
このブローカーの実装ではチャネルを使用し、より小さくシンプルなインストールを実現するために、システムネームスペースでイベントルーティングコンポーネントを実行します。
-
次のコマンドを実行して、このブローカーの実装をインストールします
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/mt-channel-broker.yaml
どのブローカーチャネル実装を使用するかをカスタマイズするには、次のConfigMapを更新して、どの構成をどのネームスペースに使用するかを指定します
apiVersion: v1 kind: ConfigMap metadata: name: config-br-defaults namespace: knative-eventing data: default-br-config: | # This is the cluster-wide default broker channel. clusterDefault: brokerClass: MTChannelBasedBroker apiVersion: v1 kind: ConfigMap name: imc-channel namespace: knative-eventing # This allows you to specify different defaults per-namespace, # in this case the "some-namespace" namespace will use the Kafka # channel ConfigMap by default (only for example, you will need # to install kafka also to make use of this). namespaceDefaults: some-namespace: brokerClass: MTChannelBasedBroker apiVersion: v1 kind: ConfigMap name: kafka-channel namespace: knative-eventing
参照される
imc-channel
とkafka-channel
のConfigMapの例は次のようになります。apiVersion: v1 kind: ConfigMap metadata: name: imc-channel namespace: knative-eventing data: channel-template-spec: | apiVersion: messaging.knative.dev/v1 kind: InMemoryChannel --- apiVersion: v1 kind: ConfigMap metadata: name: kafka-channel namespace: knative-eventing data: channel-template-spec: | apiVersion: messaging.knative.dev/v1alpha1 kind: KafkaChannel spec: numPartitions: 3 replicationFactor: 1
警告
KafkaChannelを使用するには、このトピックで前述したように、クラスターにインストールされていることを確認してください。
- RabbitMQ Knative Eventing Broker READMEの手順に従って、RabbitMQブローカーをインストールします。
詳細については、GitHubのRabbitMQブローカーを参照してください。
オプションのEventing拡張機能をインストールする¶
次のタブを展開すると、各Eventing拡張機能をインストールするための手順が表示されます。
-
次のコマンドを実行して、Kafkaコントローラーをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
次のコマンドを実行して、Kafkaシンクデータプレーンをインストールします
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-sink.yaml
詳細については、Kafkaシンクのドキュメントを参照してください。
シングルテナントのGitHubソースは、GitHubソースごとに1つのKnativeサービスを作成します。
マルチテナントの GitHub ソースは、クラスタ内のすべての GitHub ソースを処理する 1 つの Knative Service のみを作成します。このソースは、ロギングまたはトレース構成をサポートしていません。
-
シングルテナントの GitHub ソースをインストールするには、次のコマンドを実行します。
kubectl apply -f https://github.com/knative-extensions/eventing-github/releases/download/knative-v1.16.0/github.yaml
-
マルチテナントの GitHub ソースをインストールするには、次のコマンドを実行します。
kubectl apply -f https://github.com/knative-extensions/eventing-github/releases/download/knative-v1.16.0/mt-github.yaml
詳細については、GitHub ソースのサンプルをお試しください。
-
Apache Kafka ソースをインストールするには、次のコマンドを実行します。
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-source.yaml
-
以前のバージョンからアップグレードする場合は、次のコマンドを実行します
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-post-install.yaml
詳細については、Apache Kafka ソースのサンプルをお試しください。
-
Apache CouchDB ソースをインストールするには、次のコマンドを実行します。
kubectl apply -f https://github.com/knative-extensions/eventing-couchdb/releases/latest/download/couchdb.yaml
詳細については、Apache CouchDB ソースのドキュメントをご覧ください。
-
VMware のソースとバインディングをインストールするには、次のコマンドを実行します。
kubectl apply -f https://github.com/vmware-tanzu/sources-for-knative/releases/latest/download/release.yaml
詳細については、VMware のソースとバインディングのサンプルをお試しください。