Kubernetes 在GKE集群上创建基于路径的入口

Kubernetes 在GKE集群上创建基于路径的入口,kubernetes,google-kubernetes-engine,nginx-ingress,Kubernetes,Google Kubernetes Engine,Nginx Ingress,因此,我正在将我的裸机集群迁移到GKE的过程中,遇到了一个入口问题。在我的裸机集群上,我使用了工作正常的入口控制器。以下是特定部署的入口文件示例: apiVersion: extensions/v1beta1 kind: Ingress metadata: namespace: mynamespace name: app-ingress annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kuberne

因此,我正在将我的裸机集群迁移到GKE的过程中,遇到了一个入口问题。在我的裸机集群上,我使用了工作正常的入口控制器。以下是特定部署的入口文件示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: mynamespace
name: app-ingress
annotations: 
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: myhost
    http:
    paths:
    - path: /dev/appname(/|$)(.*)
        backend:
          serviceName: app
          servicePort: 80
基本上,当用户在
myhost/dev/appname
中键入时,
myhost
将解析为HAProxy服务器。然后,代理将请求路由到运行入口服务的节点端口

我尝试在我的GKE集群上做同样的事情,唯一的例外是GKE集群上的入口控制器按照

但是,如果尝试访问URL,则会出现
502
错误


TL;DR:正在寻找使用URL访问部署在GKE群集上的各种应用程序(部署)的最佳方式,如myhost/dev/firstapp和myhost/dev/secondapp等。

您可以使用Kong Ingress作为GKE上基于路径的入口的入口控制器。您可以从GCP Marketplace安装Kong Ingress。它易于集成,还支持各种用于身份验证、监视等的插件

您将从

中获得详细信息和安装说明,我将按照此在GKE上设置Nginx。入口如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /hello
        backend:
          serviceName: hello-app
          servicePort: 8080 
您应该能够从外部访问您的应用程序
http://external-ip-of-ingress-controller/hello


现在要调试502问题,请验证从Loadbalancer到您的应用程序的运行状况检查是否通过。

谢谢您的回复。3.我会按照导游的指示进行检查,并通知你。。我在前面看到了指南,这也是我没有这么做的唯一原因,因为它涉及Kubernetes入口控制器,而不是nginxinc的入口控制器。我也没有任何问题,我只是想看看是否可以在GKE上使用nginxinc,因为它在我的裸机集群上工作得非常好。但我会仔细阅读指南,并向您介绍最新情况。再次感谢本指南仅适用于Nginx入口控制器。。注释定义了如果您给出kubernetes.io/ingres.class:nginx它将使用nginx,如果您不给出任何东西,它将使用gke-ingres-controller,那么将使用什么入口控制器