我有一个具有多个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时,发生以下错误:
为什么会产生此错误?怎么解决?如果我想实现上述目标,重写规则将是什么?
另一方面,我正在使用静态IP通过loadbalancer访问该应用程序。静态IP连接到负载均衡器。如果您在Ingress yaml文件中看到我已禁用主机名。如果启用了主机名,则不要从我的桌面PostMan应用程序中请求该应用程序,并收到504错误。我什至尝试在GCP Cloud DNS中添加主机名,但还是没有运气。
如何在Ingress YAML中使用主机名?如何使用台式机PostMan应用程序通过Internet向应用程序发送请求?
先谢谢了。 -Suvendu