使用集群或命名空间默认值创建 Channel¶
开发人员可以通过创建 Channel 对象实例来创建任何支持的实现类型的 Channel。
要创建 Channel
-
使用以下模板创建 Channel 对象 的 YAML 文件
其中apiVersion: messaging.knative.dev/v1 kind: Channel metadata: name: <example-channel> namespace: <namespace>
<example-channel>
是要创建的 Channel 的名称。<namespace>
是目标命名空间的名称。
-
通过运行以下命令应用 YAML 文件
其中kubectl apply -f <filename>.yaml
<filename>
是您在上一步骤中创建的文件的名称。
如果您在 default
命名空间中创建此对象,根据 Channel 类型和默认值 中的默认 ConfigMap 示例,它是一个 InMemoryChannel Channel 实现。
创建 Channel 对象后,一个变更接收 Webhook 会根据默认 Channel 实现设置 spec.channelTemplate
。
apiVersion: messaging.knative.dev/v1
kind: Channel
metadata:
name: <example-channel>
namespace: <namespace>
spec:
channelTemplate:
apiVersion: messaging.knative.dev/v1
kind: <channel-template-kind>
<example-channel>
是要创建的 Channel 的名称。<namespace>
是目标命名空间的名称。<channel-template-kind>
是 Channel 的类型,例如 InMemoryChannel 或 KafkaChannel,基于默认 ConfigMap。请参见 Channel 类型和默认值 中的示例。
注意
spec.channelTemplate
属性在创建后无法更改,因为它是由默认 Channel 机制设置的,而不是用户设置的。
Channel 控制器根据 spec.channelTemplate
创建一个支持 Channel 实例。
使用此机制时,将创建两个对象:一个通用 Channel 对象和一个 InMemoryChannel 对象。通用对象通过将订阅复制到 InMemoryChannel 对象,并将状态设置为 InMemoryChannel 对象的状态,充当 InMemoryChannel 对象的代理。
注意
仅当最初创建 Channel 或 Sequence 时,Webhook 才会应用默认值。如果默认设置发生更改,新默认值将仅应用于新创建的 Channel、Broker 或 Sequence。现有资源不会自动更新以使用新配置。