我正在将我当前的服务迁移到 Kubernetes。目前后端服务通过 mod_cluster 解决。mod 集群管理器在 httpd 和 mod_cluster 客户端上运行,在启动时自动向 httpd/mod_cluster 管理器注册他们的 web 上下文
user-->ingress-rule--> httpd [running mod_cluster manager]--> Jboss[mod_cluster clients]
我通过以下入口规则解析我的 UI
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
这很好用,可以解析 UI,可以登录并解析所有静态内容等。
Mod 集群公开服务,例如myservice
. 我禁用了 mod_cluster 并创建了一个 Kubernetes 服务myservice
,该服务解析为后端 Pod,认为 Ingress 规则将获取到 httpd 的请求,然后 httpd 将能够通过 Kubernetes 解析后端服务,但我得到 404,因为我无法解决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/
非常感谢任何帮助