我正在将我当前的服务迁移到Kubernetes。目前通过mod_cluster解决后端服务。 mod集群管理器在httpd上运行,mod_cluster客户端在启动时使用httpd / mod_cluster manager自动注册其Web上下文
user-->ingress-rule--> httpd [running mod_cluster manager]--> Jboss[mod_cluster clients]
我通过以下入口规则解析我的用户界面
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: httpd
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
rules:
- host: myk8s.myath.myserv.com
http:
paths:
- path: /
backend:
serviceName: httpd
servicePort: 443
tls:
- hosts:
- myk8s.myath.myserv.com
这很好用,解析用户界面,可以登录并解析所有静态内容等。
Mod群集公开myservice
等服务。我禁用了mod_cluster并创建了一个Kubernetes服务myservice
,该服务解析为后端Pod认为Ingress规则将获得httpd的请求,然后httpd将能够通过Kubernetes解析后端服务但我得到404s因为我无法解决myservice
服务可以通过反向代理规则解决,如下所示,但这不是首选解决方案
# Redirect to myjbossserv
ProxyPass /myservice/services/command/ http://myjbossserv:8080/myservice/services/command/ <-----myjbossserv is a service registered in kubernetes
ProxyPassReverse /myservice/services/command/ http://myjbossserv:8080/myservice/services/command/
任何帮助非常感谢
答案 0 :(得分:0)
解决此问题的最简单方法是:满足所有HA和健壮性用例的是使用反向代理规则。有多种配置方式,例如在映像生成时或通过配置映射...
# Redirect to myjbossserv
ProxyPass /myservice/services/command/ http://myjbossserv:8080/myservice/services/command/ <-----myjbossserv is a service registered in kubernetes
ProxyPassReverse /myservice/services/command/ http://myjbossserv:8080/myservice/services/command/