如何在Knative Trigger中指定订阅者的HTTPS协议?
Knative Trigger指定HTTPS协议调用订阅服务解决方案
核心结论
可以配置让Knative Broker通过HTTPS发送事件到你的自定义服务,有两种实用实现方式:
方法一:直接指定HTTPS完整URI
修改Trigger的subscriber部分,将uri替换为完整的HTTPS地址,Broker就会直接使用HTTPS协议请求你的服务。
修改后的Trigger配置:
apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: my-trigger namespace: my-ns spec: broker: my-broker filter: attributes: type: dev.knative.sources.ping subscriber: ref: apiVersion: v1 kind: Service namespace: event-handler-ns name: event-handler-service uri: https://event-handler-service.event-handler-ns.svc.cluster.local/handle/event
方法二:给服务添加协议注解
在你的event-handler-service资源上添加Knative专属注解,强制指定服务的默认通信协议为HTTPS,Broker会自动识别并切换为HTTPS调用。
修改后的Service配置:
kind: Service apiVersion: v1 metadata: name: event-handler-service namespace: event-handler-ns annotations: protocol.serving.knative.dev: "https" spec: selector: app: event-handler ports: - protocol: TCP port: 443 targetPort: 8443
错误原因说明
日志中的Post "http://...": EOF错误,是因为Broker默认用HTTP协议请求了你的服务的443端口(HTTPS专属端口),服务收到非法的HTTP请求后直接关闭连接,导致客户端收到EOF错误。
内容的提问来源于stack exchange,提问作者Bram Meerten
相关产品推荐
相关产品推荐

