我已经设置了 Istio 的“入口网关”来监听 8080,并且在运行 Knative hello-world 时遇到了问题。有人这样设置 Knative 吗?
我希望互联网流量进入端口 8080 以显示 Knative hello world 的输出。
我已经设置了 Istio 的“入口网关”来监听 8080,并且在运行 Knative hello-world 时遇到了问题。有人这样设置 Knative 吗?
我希望互联网流量进入端口 8080 以显示 Knative hello world 的输出。
如果我理解这个问题,这类似于我在尝试在非标准端口上使用 Istio 入口网关配置 Knative 时遇到的问题。按照 Istio 集成的 Knative 说明,我应用了 Knative Istio 控制器(net-istio)。这包括networking.istio.io Gateway
选择istio: ingressgateway
指定端口 80 的选项。将此资源修改为正确的端口(问题中的 8080)应该可以解决问题。
如果您有一个现有的容器侦听端口 80 而不是$PORT
,您可以设置spec.template.spec.containers[0].ports[0].containerPort
以指示容器侦听的端口。
例如:
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Go Sample v1"
ports:
- containerPort: 80
Knative 会自动将$PORT
环境变量设置为请求的容器端口,因此设置 containerPort 应该适用于任何 Knative 示例。