通过kubernetes ingress暴露rabbitmq管理



我有一个kubernetes集群,部署了rabbitmq。我想以我可以在浏览器中访问的方式公开拉比管理UI。为此,我有一个部署、服务和入口文件:

apiVersion: apps/v1
kind: Deployment
metadata:
name: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- image: rabbitmq:3.8.9-management
name: rabbitmq
ports:
- containerPort: 5672
- containerPort: 15672
resources: {}
restartPolicy: Always

服务:

apiVersion: v1
kind: Service
metadata:
name: rabbitmq
spec:
ports:
- name: "5672"
port: 5672
targetPort: 5672
- name: "15672"
port: 15672
targetPort: 15672
selector:
app: rabbitmq

入口文件

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
spec:
rules: 
- http:
paths:
- path: /rabbitmq
pathType: Prefix
backend:
service:
name: rabbitmq
port:
number: 15672

当我键入http://localhost/rabbitmq在我的浏览器中,我得到了这个nginx错误:{错误:找不到对象

但当我进入其他吊舱时,我键入:curlhttp://rabbitmq:15672它得到了网站的回应。

我是kubernetes的新手,我还没有找到任何相关的解决方案来解决我的问题,如果有人能帮助我,我将不胜感激!!

感谢阅读。

尝试:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: nginx  # <-- assumed you only have 1 ingress-nginx
rules: 
- http:
paths:
- path: /rabbitmq(/|$)(.*)
...

http://localhost/rabbitmq的请求将被您的rabbitmq服务视为/

最新更新