我正在GKE中测试Knative,下面是我想要做的:

但是,我在"default-broker-filter“的日志中得到以下错误:
caller: "http/transport.go:508"
error: "Post http://helloworld-python.knative-samples.svc.cluster.local: dial tcp: lookup helloworld-python.knative-samples.svc.cluster.local on 10.0.0.10:53: no such host"
level: "warn"
logger: "fallback"
msg: "got an error from receiver fn" 我使用this official tutorial通过以下命令安装Knative:
kubectl apply --selector knative.dev/crd-install=true \
--filename https://github.com/knative/serving/releases/download/v0.12.0/serving.yaml \
--filename https://github.com/knative/eventing/releases/download/v0.12.0/eventing.yaml \
--filename https://github.com/knative/serving/releases/download/v0.12.0/monitoring.yaml
kubectl apply --filename https://github.com/knative/serving/releases/download/v0.12.0/serving.yaml \
--filename https://github.com/knative/eventing/releases/download/v0.12.0/eventing.yaml \
--filename https://github.com/knative/serving/releases/download/v0.12.0/monitoring.yaml以下是我用python安装触发器和服务hello world时使用的yaml模板:
# Namespace for sample application with eventing enabled
apiVersion: v1
kind: Namespace
metadata:
name: knative-samples
labels:
knative-eventing-injection: enabled
---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-python
namespace: knative-samples
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-python
env:
- name: TARGET
value: "Python Sample v1"
---
# Knative Eventing Trigger to trigger the helloworld-go service
apiVersion: eventing.knative.dev/v1alpha1
kind: Trigger
metadata:
name: my-service-trigger
namespace: knative-samples
spec:
broker: default
filter:
attributes:
type: dev.knative.samples.helloworld
subscriber:
ref:
apiVersion: serving.knative.dev/v1
kind: Service
name: helloworld-python然后我创建一个pod来执行我的curl命令:
kubectl --namespace knative-samples run curl --image=radial/busyboxplus:curl -it
curl -v "default-broker.knative-samples.svc.cluster.local" \
-X POST \
-H "Ce-Id: 536808d3-88be-4077-9d7a-a3f162705f79" \
-H "Ce-specversion: 0.3" \
-H "Ce-Type: dev.knative.samples.helloworld" \
-H "Ce-Source: dev.knative.samples/helloworldsource" \
-H "Content-Type: application/json" \
-d '{"msg":"Hello World from the curl pod."}'你能告诉我哪里出了问题吗?因为我整个周末都没有找到任何线索。
谢谢,
发布于 2020-02-27 22:54:37
您是否开启了集群本端网关?如果不是,那么这可能是它不工作的原因。有关详细信息,请访问以下链接:
发布于 2020-03-04 18:15:56
正如您在这里看到的,您的应用程序只接受GET请求- https://github.com/knative/docs/blob/master/docs/serving/samples/hello-world/helloworld-python/app.py
正如您在cloudevents规范- https://github.com/cloudevents/spec/blob/master/http-webhook.md#21-delivery-request中看到的那样
传递请求的
方法必须为POST。
您必须使用POST方法触发您的服务。
如果你想修复它,你有两个简单的选择:
(gcr.io/knative-releases/github.com/knative/eventing-sources/cmd/event_display)
event_display L7从@app.route('/')更改为@app.route('/', methods=['GET', 'POST'])
,您可以将服务图像更改为L7@app.route('/')
https://stackoverflow.com/questions/60251424
复制相似问题