Google cloud platform 未找到GKE入口的404

Google cloud platform 未找到GKE入口的404,google-cloud-platform,google-kubernetes-engine,kubernetes-ingress,Google Cloud Platform,Google Kubernetes Engine,Kubernetes Ingress,我正在使用GKECluster`中的ingres功能进行尝试。以下是我遵循的步骤 1. Create deployment with below command kubectl create deployment hello --image=gcr.io/google-samples/hello-app:2.0 2. Exposed the deployment of type NodePort kubectl expose deployment hello -

我正在使用
GKE
Cluster`中的
ingres
功能进行尝试。以下是我遵循的步骤

  1. Create deployment with below command

     kubectl create deployment hello --image=gcr.io/google-samples/hello-app:2.0

  2. Exposed the deployment of type NodePort

     kubectl expose deployment hello --port=8080 --type=NodePort

  3. my ingress manifests is as follows

 apiVersion: networking.k8s.io/v1beta1
 kind: Ingress
 metadata:
   name: basic-ingress
   annotations:
      kubernetes.io/ingress.class: gce 
 spec:
   rules:      
   - http:
       paths:
       - path: /
       backend:
         serviceName: hello
         servicePort: 8080              

$ kubectl get services
  NAME         TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)            AGE
  hello       NodePort        10.0.41.132     <None>      8080:30820/TCP       113m

$ kubectl get ingress
  NAME            HOSTS      ADDRESS        PORTS    AGE
  basic-ingress    *       35.X.X.X        80      26m
1。使用以下命令创建部署
kubectl创建部署hello--image=gcr.io/google samples/hello应用程序:2.0
2.公开了NodePort类型的部署
kubectl公开部署hello--port=8080--type=NodePort
3.我的入口清单如下
apiVersion:networking.k8s.io/v1beta1
种类:入口
元数据:
名称:基本入口
注释:
kubernetes.io/ingress.class:gce
规格:
规则:
-http:
路径:
-路径:/
后端:
你好
服务端口:8080
$kubectl获得服务
名称类型CLUSTER-IP外部IP端口年龄
你好节点端口10.0.41.132 8080:30820/TCP 113m
$kubectl进入
名称主机地址端口年龄
基本入口*35.X.X.X 80 26m
但是当我使用curl访问外部IP时,它抛出404notfound

从GKE控制台可以看到以下错误

我想我在
ingres
定义中遗漏了一些东西。请指导修复此问题

图像定义取自本指南

我尝试从头开始创建相同的入口(无群集、无入口服务、无服务),并且我能够创建它并成功执行卷曲,步骤如下:

1.-创建集群(细节无关紧要,只需根据需要创建)

2.-连接到集群并安装kubectl->sudo apt get install kubectl

3.-kubectl创建部署hello--image=gcr.io/google samples/hello应用程序:2.0

4.-kubectl公开部署hello--port=8080--type=NodePort

5.-根据以下内容创建入口(无注释)

apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:基本入口 规格: 后端: 服务名称:web 服务端口:8080

6.-检查你的入口kubectl获得入口基本入口

@cloudshell:$kubectl获取入口基本入口 名称主机地址端口年龄 基本入口*130.211.xx.xxx 80 5m46s

7.-当我完成卷曲时,现在正在工作:

@云壳:$curl 你好,世界! 版本:2.0.0 主机名:hello-86dbf5b7c6-f7qgl

您使用的是,这是创建入口服务的另一种方式,但更高级一点。我的建议是首先尽可能简单地创建它


请以这种方式尝试并让我知道。

相同的
YAML
定义在
SharedVPC中对我来说是失败的。添加以下防火墙规则后,此问题得到解决

  gcloud compute firewall-rules create k8s-fw-l7--60cada75751e6d79 --network <SharedVPC> --description "GCE L7 firewall rule" --allow tcp:30000-32767 --source-ranges 130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16 --target-tags gke-privatetestgkecluster-cf899a18-node --project <Project> 
gcloud compute防火墙规则创建k8s-fw-l7--60cada75751e6d79--网络--description“GCE l7防火墙规则”--允许tcp:30000-32767--源范围130.211.0.0/22209.85.152.0/22209.85.204.0/22,35.191.0.0/16--目标标记gke-privatetestgkecluster-cf899a18-node--项目

请您使用-path:/*而不是-path://并给出一个tryTried.。但仍然是相同的请尝试这一个,谢谢您指出这一点。它帮助我验证了基于GCE的注释谢谢。它的工作$curl你好,世界!版本:2.0.0主机名:hello-86dbf5b7c6-9M4BN尝试使用GCE入口进行相同操作为什么在基于SharedVPC的GKE群集上不起作用?