Kubernetes Nginx Ingress RabbitMQ管理和Kibana

时间:2019-06-23 12:26:51

标签: nginx kubernetes rabbitmq kibana azure-aks

在AKS集群上,我有一个Nginx入口控制器,该控制器用于反向代理在AKS上运行的kibana服务。但是,我想通过入口Rabbitmq管理控制台添加另一个http服务。

我无法同时使用以下配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-aegis
  namespace: dev
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/rewrite-target: /    
spec:
  tls:
  - hosts:
    - dev.endpoint.net
    secretName: dev-secret   
  rules:
  - host: dev.endpoint.net
    http:
      paths:
      - path: /
        backend:
          serviceName: kibana-kibana
          servicePort: 5601
      - path: /rabbit
        backend:
          serviceName: rabbitmq
          servicePort: 15672

Kibana的根工作正常,但是RabbitMQ无法加载503以外的任何路径的/。如果RabbitMQ的路径为/,那么它可以正常工作,但Kibana将无法运行。

我认为这是因为它们在内部位于根aka localhost:15672上,因此它重定向到dev.endpoint.net上的/。

我如何从一个端点运行多个服务,例如Kibana和RabbitmQ?

3 个答案:

答案 0 :(得分:2)

您需要做的是将basePath的假名设置为/kibana

请参阅下面的网址

https://www.elastic.co/guide/en/kibana/current/settings.html

您希望将server.basePath配置为/kibana。然后,这将解决反向代理问题,您可以将MQ直接保留在根/

上。

您还可以在SERVER_BASEPATH窗格中设置kibana环境变量,它将自动从该变量中选择基本路径

答案 1 :(得分:0)

一个想法是做基于主机名的规则来切换后端。但是,这将需要通配符或SAN SSL证书。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-aegis
  namespace: dev
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/rewrite-target: /    
spec:
  tls:
  - hosts:
    - dev.endpoint.net
    - rabbit.endpoint.net
    secretName: dev-secret   
  rules:
  - host: dev.endpoint.net
    http:
      paths:
      - path: /
        backend:
          serviceName: kibana-kibana
          servicePort: 5601
  - host: rabbit.endpoint.net
    http:
      paths:
      - path: /
        backend:
          serviceName: rabbitmq

答案 2 :(得分:0)

对于通过入口的RabbitMQ管理UI,请在rabbitmq.conf文件中设置以下内容(您可以使用configmaps并将文件安装在pod内)

management.path_prefix = /兔子

在Ingress中设置以下内容:

...
   path: /rabbit(/|$)(.*)
...

请参阅:https://www.rabbitmq.com/management.html#path-prefix