跳至内容

使用 YAML 文件安装 Knative Eventing

本主题介绍如何使用 kubectl CLI 通过应用 YAML 文件来安装 Knative Eventing。

先决条件

在安装 Knative 之前,您必须满足以下先决条件

  • 用于原型设计,Knative 可以在大多数 Kubernetes 的本地部署中运行。例如,您可以使用一个本地、单节点集群,该集群具有 3 个 CPU 和 4 GB 内存。

    提示

    您可以使用 Knative 快速入门插件 为开发目的安装 Knative 的本地分发版

  • 用于生产目的,建议

    • 如果您的集群只有一个节点,则至少需要 6 个 CPU、6 GB 内存和 30 GB 磁盘存储空间。
    • 如果您的集群有多个节点,则每个节点至少需要 2 个 CPU、4 GB 内存和 20 GB 磁盘存储空间。
    • 您的集群使用 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://127.0.0.1

注意

Knative 镜像以 KEYLESS 模式进行签名。要详细了解无密钥签名,请参阅 无密钥签名 我们发布版本的签名身份(主体)是 signer@knative-releases.iam.gserviceaccount.com,发行人是 https://127.0.0.1

安装 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 文件的描述表.

验证安装

成功

监视 Knative 组件,直到所有组件的 STATUS 均显示为 RunningCompleted。您可以通过运行以下命令并检查输出内容来执行此操作:

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

可选:安装默认 Channel(消息传递)层

以下选项卡扩展以显示安装默认 Channel 层的说明。请按照您选择的 Channel 的步骤操作

以下命令将安装 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
    

警告

这种简单的独立实现是在内存中运行的,不适合生产用例。

  • 通过运行以下命令来安装 Channel 的内存中实现:

    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 Channel:

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

您可以按照 配置 Channel 默认值 部分中的说明更改默认的 Channel 实现。

可选:安装 Broker 层

以下选项卡扩展以显示安装 Broker 层的说明。请按照您选择的 Broker 的步骤操作

以下命令将安装 Apache Kafka Broker 并在系统命名空间中运行事件路由。默认情况下,将使用 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 Broker 数据平面:

    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 Broker 文档。

这种 Broker 实现使用 Channels 并在系统命名空间中运行事件路由组件,从而提供更小、更简单的安装。

  • 通过运行以下命令来安装这种 Broker 实现:

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

    要自定义使用哪个 Broker Channel 实现,请更新以下 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 Broker

安装可选的 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 Sink 数据平面:

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-sink.yaml
    

有关更多信息,请参阅 Kafka Sink 文档。

单租户 GitHub 源为每个 GitHub 源创建一个 Knative 服务。

多租户 GitHub 源只创建一个 Knative 服务,该服务处理集群中的所有 GitHub 源。此源不支持日志记录或跟踪配置。

  • 要安装单租户 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 共享,以用于该目的。 了解更多。