0

我正在将我当前的服务迁移到 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/

非常感谢任何帮助

4

1 回答 1

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/
于 2019-01-06T23:45:55.100 回答