You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Knative v1.4中能否直接向Broker发事件?发送404报错求助

解决Knative Broker接收CloudEvent时的404错误

核心问题分析

你遇到的404错误源于两个关键问题:

  • 直接访问broker-ingress服务的根路径(/)不符合Knative Broker的路由规则
  • 未确认目标Broker是否已创建(Knative Eventing默认不会自动生成Broker实例)

解决步骤

1. 确认并创建目标Broker

首先检查集群中是否存在可用的Broker:

kubectl get brokers -A

如果未找到目标Broker,以default命名空间下的default Broker为例,创建一个:

apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
  name: default
  namespace: default

执行创建命令:

kubectl apply -f <上述yaml文件路径>

等待Broker状态变为Ready:

kubectl get broker default -n default

2. 获取正确的Broker接收地址

Broker的合法接收地址格式为:
http://<broker-ingress服务IP>:80/<broker命名空间>/<broker名称>
以你提供的broker-ingress IP为例,默认Broker的地址是:
http://10.107.184.78/default/default

也可以通过命令直接获取Broker的官方Sink地址:

kubectl get broker default -n default -o jsonpath='{.status.address.url}'

3. 修改Demo代码中的目标地址

替换代码中sink和ContextWithTarget的地址为带Broker路径的正确地址:

// ip and port of broker-ingress + broker path
sink := "http://10.107.184.78/default/default"
// ...
// send event
ctx := cloudevents.ContextWithTarget(context.Background(), "http://10.107.184.78/default/default")

4. 验证发送结果

重新运行代码,若Broker状态正常,应能收到ACK响应。也可通过查看Broker日志确认事件是否被接收:

kubectl logs -n knative-eventing -l app=broker-ingress

内容的提问来源于stack exchange,提问作者Info-H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:07:16