不能对带有GKE入口的Host标头使用curl

时间:2019-02-28 22:34:08

标签: google-kubernetes-engine kubernetes-ingress

我有一个在GKE群集上部署的网站,该网站发布在域example.com上,并通过IP为1.1.1.1的入口对象暴露于Internet。
我可以毫无问题地浏览到example.com,但我也希望在发布此命令时也能看到我的网站:
curl -verbose --header 'Host: example.com' 1.1.1.1
但是,我得到了Google的404页面。
为什么呢?
没有Cloud Armor或任何类型的防火墙。
入口配置如下:

kubectl describe ingresses.extensions wordpress-ingress -n examplens
Name:             wordpress-ingress
Namespace:        examplens
Address:          1.1.1.1
Default backend:  web-backend:80 (10.1.2.3:8080)
Rules:
  Host                   Path  Backends
  ----                   ----  --------
  example.com        
                         /*   wordpress-proxy:8081 (<none>)
Annotations:
  ingress.kubernetes.io/target-proxy:     k8s-tp-examplens-examplens-wordpress-ingress--0954ac07ad1bc6
  ingress.kubernetes.io/url-map:          k8s-um-examplens-examplens-wordpress-ingress--0954ac07ad1bc6
  ingress.kubernetes.io/backends:         {"k8s-be-31096--57aec84fb5d3ea3d":"HEALTHY","k8s-be-31366--57aec84fb5d3ea3d":"HEALTHY","k8s-be-31651--57aec84fb5d3ea3d":"HEALTHY","k8s-be-31864--57aec84fb5d3ea3d":"HEALTHY"}
  ingress.kubernetes.io/forwarding-rule:  k8s-fw-examplens-examplens-wordpress-ingress--ef63350eae86dd
Events:           <none>

1 个答案:

答案 0 :(得分:1)

山姆

问题似乎是URL映射中定义到您的后端的路径。尝试改用以下命令:

curl -verbose --header 'Host: example.com' http://1.1.1.1/