Ingress Rewrite在GKE,HAProxy控制器中不起作用

时间:2019-11-25 14:30:36

标签: google-kubernetes-engine haproxy kubernetes-ingress

我有一个具有多个API的应用,这些API定义为: - /创建用户 -/ DeleteUser -/ UpdateUser 该API接受JSON数据作为请求中的输入正文。

我已经在GKE中部署了应用程序HAProxy Ingress Controller。我想使用入口重写执行以下操作。但不确定要执行什么。

用户将使用URL请求: http:/// user-reg / create-user / CreateUser / http:/// user-reg / delete-user / DeleteUser /

以上请求将被重写,并会打入应用程序API(/ CreateUser或/ DeleteUser等)

我在下面尝试过,但是没有用。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: fanout-ingress-haproxy
  namespace: xyz-product
  labels:                     # Labels that will be applied to this resource
    app: prod-user-reg-app
  annotations:
    haproxy.org/forwarded-for: "enabled"
    haproxy.org/load-balance: "roundrobin"
    haproxy.org/ingress.class: "haproxy"
    kubernetes.io/ingress.global-static-ip-name: prod-reg-static-ip  #Defined in GCP platform. A Static IP needs to be created in the GCP.
    haproxy.ingress.kubernetes.io/rewrite-target: /$3
spec:
  rules:
#   - host: demo.apps.myproduct.com
   - http:
      paths:
      - path: /user-reg/create-user(/|$)(.*)
        backend:
          serviceName: prod-user-reg-create-app
          servicePort: 8081

当我尝试应用Ingress时,发生以下错误:

Ingress Error

为什么会产生此错误?怎么解决?如果我想实现上述目标,重写规则将是什么?

另一方面,我正在使用静态IP通过loadbalancer访问该应用程序。静态IP连接到负载均衡器。如果您在Ingress yaml文件中看到我已禁用主机名。如果启用了主机名,则不要从我的桌面PostMan应用程序中请求该应用程序,并收到504错误。我什至尝试在GCP Cloud DNS中添加主机名,但还是没有运气。

Cloud DNS

如何在Ingress YAML中使用主机名?如何使用台式机PostMan应用程序通过Internet向应用程序发送请求?

先谢谢了。 -Suvendu

0 个答案:

没有答案