使用 YAML 文件安装 Knative Eventing¶
本主题介绍如何通过应用 YAML 文件来安装 Knative Eventing。此安装需要以下先决条件
- CLI 工具已安装。
- 充足的硬件
单节点至少需要 6 个 CPU、6 GB 内存和 30 GB 磁盘存储。
多节点需要 2 个 CPU、4 GB 内存和 20 GB 磁盘存储。
- 现有 Kubernetes 正在运行受支持的版本。
有关其他 Knative 安装的信息,请参阅安装路线图。
安装 Knative Eventing 组件¶
安装 Knative Eventing 组件
-
通过运行以下命令安装所需的自定义资源定义 (CRD)
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.20.0/eventing-crds.yaml -
通过运行以下命令安装 Eventing 的核心组件
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.20.0/eventing-core.yaml信息
有关 Knative Eventing 中的 YAML 文件的信息,请参阅YAML 文件描述表。
验证安装¶
成功
监视 Knative 组件,直到所有组件的 STATUS 显示为 Running 或 Completed。您可以通过运行以下命令并检查输出来完成此操作
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
可选:安装默认通道(消息)层¶
以下选项卡展开以显示安装默认通道层的说明。按照您选择的通道的步骤进行操作
注意
使用 Kafka 通道需要访问 Apache Kafka 集群。例如,您可以按照 Strimzi 快速入门页面上的说明进行操作。
以下命令安装 KafkaChannel 并在系统命名空间中运行事件路由。默认使用 knative-eventing 命名空间。
-
通过运行以下命令安装 Kafka 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-controller.yaml -
通过运行以下命令安装 KafkaChannel 数据平面
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-channel.yaml -
如果您正在从以前的版本升级,请运行以下命令
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-post-install.yaml
警告
此简单的独立实现在内存中运行,不适用于生产用例。
-
通过运行以下命令安装通道的内存实现
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.20.0/in-memory-channel.yaml
-
通过运行以下命令安装 NATS Streaming Channel
kubectl apply -f https://github.com/knative-extensions/eventing-natss/releases/download/knative-v1.20.0/eventing-jsm.yaml
您可以通过遵循配置通道默认值部分中描述的说明来更改默认通道实现。
可选:安装 Broker 层¶
以下选项卡展开以显示安装 Broker 层的说明。按照您选择的 Broker 的步骤进行操作
注意
使用 Kafka Broker 需要访问 Apache Kafka 集群。例如,您可以按照 Strimzi 快速入门页面上的说明进行操作。
以下命令安装 Apache Kafka Broker 并在系统命名空间中运行事件路由。默认使用 knative-eventing 命名空间。
-
通过运行以下命令安装 Kafka 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-controller.yaml -
通过运行以下命令安装 Kafka Broker 数据平面
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-broker.yaml -
如果您正在从以前的版本升级,请运行以下命令
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-post-install.yaml
有关更多信息,请参阅Kafka Broker 文档。
此 Broker 实现使用通道并在系统命名空间中运行事件路由组件,提供了更小、更简单的安装。
-
通过运行以下命令安装此 Broker 实现
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.20.0/mt-channel-broker.yaml要自定义使用的 Broker 通道实现,请更新以下 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 Broker。
有关更多信息,请参阅 GitHub 中的RabbitMQ Broker。
安装可选的 Eventing 扩展¶
以下选项卡展开以显示安装每个 Eventing 扩展的说明。
-
通过运行以下命令安装 Kafka 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-controller.yaml -
通过运行以下命令安装 Kafka Sink 数据平面
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.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.20.0/github.yaml -
要安装多租户 GitHub 源,请运行以下命令
kubectl apply -f https://github.com/knative-extensions/eventing-github/releases/download/knative-v1.20.0/mt-github.yaml
要了解更多信息,请尝试GitHub 源示例
-
通过运行以下命令安装 Apache Kafka 源
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.0/eventing-kafka-source.yaml -
如果您正在从以前的版本升级,请运行以下命令
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.20.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 源和绑定示例。