首页 > 解决方案 > 如何使用 yml 文件在 K8S(Minikube)上公开一个简单的 rabbitmq 部署?

问题描述

我正在尝试公开我的 RabbitMQ 部署并在我的浏览器上访问它。对于部署,我创建了以下 yml:

apiVersion: apps/v1
kind: Deployment
metadata: 
    name: blur-rabbitmq
    labels:
        app: blur-rabbitmq
spec:
    replicas: 1
    selector:
        matchLabels:
            app: blur-rabbitmq
    template:
        metadata:
            labels:
                app: blur-rabbitmq
        spec:
            containers:
            - name: blur-rabbitmq
              image: rabbitmq:3-management
              ports:
              - containerPort: 15672    

对于以下服务:

apiVersion: v1
kind: Service
metadata:
  name: blur-service
  labels:
    app: blur-rabbitmq
spec:
  selector:
    app: blur-rabbitmq
  type: NodePort
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 15672

创建部署和服务后,我希望在 localhost:8080 上访问 RabbitMQ 的主页,但它无法正常工作。我错过了什么?任何想法?

标签: kubernetesrabbitmqminikube

解决方案


您需要通过端口将本地端口转发到集群,kubectl port-forward或者您需要创建一个Ingress对象以将公共 IP 映射到集群内的服务端点。

基本上,集群有自己的内部网络,你需要指示 Kubernetes “打一个洞”,让你从外部访问该网络内的服务端点。


推荐阅读