Kubernetes:替换 mod_cluster 用于后端服务(反向代理)

Kubernetes: Replace mod_cluster for back end services (reverse proxy)

我正在将我当前的服务迁移到 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 并创建了一个解析到后端 Pod 的 Kubernetes 服务 myservice 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/

非常感谢任何帮助

解决此问题的最简单方法...满足所有 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/