我想在不执行curl命令的情况下第一次访问浏览器,请注意-初始命令(如导出IP地址和config-map命令)成功执行。
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: helloworld-go # The name of the app
namespace: default # The namespace the app will use
spec:
runLatest:
configuration:
revisionTemplate:
spec:
container:
image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
value: "Go Sample v1"
我没有收到任何错误。我的期望是,当我使用浏览器请求URL时,pod希望自动创建。
答案 0 :(得分:0)
使用Knative时,建议您将所有请求都通过Ingress网关进行路由,因此,请确保使用Knative提供的其他功能,例如自动缩放(如果将pod缩小为0)
下面的Kubernetes服务用作收集运行Pod的所有端点的一种机制。如果没有正在运行的Pod,则无法扩展,并且在没有后端的情况下将返回默认响应。
您遇到的问题就是这个,使用Kubernetes Service时没有Pod运行。您需要使用Ingress网关。为此,请执行以下命令以获取其IP:
kubectl get svc -n istio-system \
-l app=istio-ingressgateway \
-o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}'
并在浏览器中使用此IP。您将面临的直接问题是入口网关基于标头路由,而您缺少标头。因此,请安装chrome扩展程序,以便在请求中添加标头(我使用ModHeader)。
在chrome扩展程序中添加标题(在本例中为“ Host:helloworld.default.example.com”)之后,打开IP,即使它掉线了,也可以到达您的Pod。