跳到内容

使用集群或命名空间默认值创建 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 对象创建后,一个 mutating admission 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 的 kind,例如 InMemoryChannel 或 KafkaChannel,这取决于默认的 ConfigMap。请参阅 Channel 类型和默认值 中的示例。

注意

spec.channelTemplate 属性在创建后不能更改,因为它是由默认的 Channel 机制设置的,而不是由用户设置的。

Channel 控制器会根据 spec.channelTemplate 创建一个后备的 Channel 实例。

当使用此机制时,会创建两个对象;一个通用的 Channel 对象和一个 InMemoryChannel 对象。通用对象通过复制其到 Subscriptions 的订阅并将状态设置为 InMemoryChannel 对象的状态,充当 InMemoryChannel 对象的代理。

注意

默认值仅在 Channel 或 Sequence 首次创建时由 webhook 应用。如果默认设置发生更改,新的默认值将仅应用于新创建的 Channels、Brokers 或 Sequences。现有资源不会自动更新以使用新配置。

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。