コンテンツへスキップ

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で署名されています。

  1. cosignjqをインストールします。

  2. マニフェストからイメージを抽出し、署名を検証します。

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をインストールするには

  1. 次のコマンドを実行して、必要なカスタムリソース定義(CRD)をインストールします

    kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-crds.yaml
    
  2. 次のコマンドを実行して、Eventingのコアコンポーネントをインストールします

    kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-core.yaml
    

    情報

    Knative EventingのYAMLファイルの詳細については、YAMLファイルの説明表を参照してください。

インストールを検証する

成功

すべてのコンポーネントのSTATUSRunningまたは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ネームスペースが使用されます。

  1. 次のコマンドを実行して、Kafkaコントローラーをインストールします

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
    
  2. 次のコマンドを実行して、KafkaChannelデータプレーンをインストールします

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-channel.yaml
    
  3. 以前のバージョンからアップグレードする場合は、次のコマンドを実行します

    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
    
  1. Kubernetes用のNATS Streamingをインストールする.

  2. 次のコマンドを実行して、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ネームスペースが使用されます。

  1. 次のコマンドを実行して、Kafkaコントローラーをインストールします

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
    
  2. 次のコマンドを実行して、Kafkaブローカーデータプレーンをインストールします

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-broker.yaml
    
  3. 以前のバージョンからアップグレードする場合は、次のコマンドを実行します

    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-channelkafka-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を使用するには、このトピックで前述したように、クラスターにインストールされていることを確認してください。

詳細については、GitHubのRabbitMQブローカーを参照してください。

オプションのEventing拡張機能をインストールする

次のタブを展開すると、各Eventing拡張機能をインストールするための手順が表示されます。

  1. 次のコマンドを実行して、Kafkaコントローラーをインストールします

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
    
  2. 次のコマンドを実行して、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 ソースのサンプルをお試しください。

  1. Apache Kafka ソースをインストールするには、次のコマンドを実行します。

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-source.yaml
    
  2. 以前のバージョンからアップグレードする場合は、次のコマンドを実行します

    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 のソースとバインディングのサンプルをお試しください。

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