跳至内容

使用集群或命名空间默认值创建 Channel

开发人员可以通过创建 Channel 对象实例来创建任何支持的实现类型的 Channel。

要创建 Channel

  1. 使用以下模板创建 Channel 对象 的 YAML 文件

    apiVersion: messaging.knative.dev/v1
    kind: Channel
    metadata:
      name: <example-channel>
      namespace: <namespace>
    
    其中

    • <example-channel> 是要创建的 Channel 的名称。
    • <namespace> 是目标命名空间的名称。
  2. 通过运行以下命令应用 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。现有资源不会自动更新以使用新配置。

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享以用于该目的。 了解更多。