跳到内容

Knative Eventing Sugar Controller

Knative Eventing Sugar Controller 会根据配置的标签,在集群或命名空间中生成或控制 eventing 资源。这使得集群管理员和开发人员可以专注于创建更少的资源,事件基础架构按需创建,并在不再需要时清理。

安装

Sugar Controller 默认是 disabled(禁用)的,可以通过配置 config-sugar ConfigMap 来启用。请参阅下面的简单示例和 配置 Sugar Controller 以获取更多详细信息。

自动创建 Broker

创建 Broker 的一种方法是使用默认设置手动将资源应用于集群

  1. 将以下 YAML 复制到一个文件中

    apiVersion: eventing.knative.dev/v1
    kind: Broker
    metadata:
      name: default
      namespace: default
    
  2. 通过运行命令应用 YAML 文件

    kubectl apply -f <filename>.yaml
    
    其中 <filename> 是您在上一步中创建的文件的名称。

在某些情况下,可能需要自动创建 Broker,例如在创建命名空间时或创建 Trigger 时。Sugar controller 启用了这些用例。sugar-config ConfigMap 的以下示例配置为所选命名空间和所有 Trigger 启用了 Sugar Controller。

apiVersion: v1
kind: ConfigMap
metadata:
name: config-sugar
namespace: knative-eventing
labels:
    eventing.knative.dev/release: devel
data:
  # Specify a label selector to selectively apply sugaring to certain namespaces
  namespace-selector: |
    matchExpressions:
    - key: "my.custom.injection.key"
      operator: "In"
      values: ["enabled"]
  # Use an empty object to enable for all triggers
  trigger-selector: |
    {}
  • 当创建带有标签 my.custom.injection.key: enabled 的命名空间时,Sugar controller 将在该命名空间中创建一个名为 "default" 的 Broker。
  • 当创建 Trigger 时,Sugar controller 将在 Trigger 的命名空间中创建一个名为 "default" 的 Broker。

当删除 Broker,但引用的标签选择器仍在被使用时,Sugar Controller 将自动重新创建默认的 Broker。

命名空间示例

在创建命名空间时创建 "default" Broker

  1. 将以下 YAML 复制到一个文件中

    apiVersion: v1
    kind: Namespace
    metadata:
      name: example
      labels:
        my.custom.injection.key: enabled
    
  2. 通过运行命令应用 YAML 文件

    kubectl apply -f <filename>.yaml
    
    其中 <filename> 是您在上一步中创建的文件的名称。

要在命名空间存在后自动创建 Broker,请标记该命名空间

kubectl label namespace default my.custom.injection.key=enabled

如果命名空间中已存在名为 "default" 的 Broker,Sugar Controller 将不执行任何操作。

Trigger 示例

在创建 Trigger 时,在其命名空间中创建一个 "default" Broker

kubectl apply -f - << EOF
apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: hello-sugar
  namespace: hello
spec:
  broker: default
  subscriber:
    ref:
      apiVersion: v1
      kind: Service
      name: event-display
EOF

这将创建一个名为 "default" 的 Broker 在 "hello" 命名空间中,并尝试将事件发送到 "event-display" 服务。

如果命名空间中已存在名为 "default" 的 Broker,Sugar Controller 将不执行任何操作,并且 Trigger 不会拥有现有的 Broker。

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