使用 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 进行签名。
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
-
通过运行以下命令来安装所需的自定义资源定义 (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 文件的描述表.
验证安装¶
成功
监视 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
可选:安装默认 Channel(消息传递)层¶
以下选项卡扩展以显示安装默认 Channel 层的说明。请按照您选择的 Channel 的步骤操作
以下命令将安装 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
警告
这种简单的独立实现是在内存中运行的,不适合生产用例。
-
通过运行以下命令来安装 Channel 的内存中实现:
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/in-memory-channel.yaml
-
通过运行以下命令来安装 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
命名空间。
-
通过运行以下命令来安装 Kafka 控制器:
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
通过运行以下命令来安装 Kafka Broker 数据平面:
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 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-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.16.0/eventing-kafka-controller.yaml
-
通过运行以下命令来安装 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 源示例
-
通过运行以下命令来安装 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 源和绑定示例。