docker - 无法从 kubernetes 集群访问rabbitmq仪表板

标签 docker kubernetes rabbitmq

kubernetes 集群运行在两个节点上。一位师傅,一位 worker …… weave net 是 pod 网络。

[root@irf-centos1 ~]# kubectl cluster-info
Kubernetes master is running at https://10.8.156.184:6443
KubeDNS is running at https://10.8.156.184:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

已将rabbit docker 镜像部署为kubernetes pod 中的容器。

[root@irf-centos1 ~]# kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
rabbitmq-86bd97fd9d-8h444   1/1     Running   0          51m
rabbitmq-86bd97fd9d-n2kgk   1/1     Running   0          51m

以下是服务和部署yaml文件

部署文件

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: rabbitmq
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: rabbitmqapp
    spec:
      containers:
        -
          image: "docker.io/rabbitmq:latest"
          imagePullPolicy: Always
          name: rabbitmq
          ports:
            -
              containerPort: 5672
              name: http-port
          volumeMounts:
            -
              mountPath: /var/rabbitmqapp_home
              name: rabbitmqapp-home
      volumes:
        -
          emptyDir: {}
          name: rabbitmqapp-home

服务文件

---
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  namespace: default
spec:
  ports:
    -
      port: 5672
      targetPort: 5672
      protocol: TCP
      nodePort: 31111
  selector:
    app: rabbitmqapp
  type: NodePort

这里是服务和部署详细信息

[root@irf-centos1 ~]# kubectl get deployments
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
rabbitmq   2/2     2            2           55m


[root@irf-centos1 ~]# kubectl get services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP          3d
rabbitmq     NodePort    10.98.204.64   <none>        5672:31111/TCP   55m

现在,当我尝试点击节点端口上的rabbitmq仪表板/UI时。无法访问

[root@irf-centos1 ~]# curl http://10.8.156.187:31111
curl: (56) Recv failure: Connection reset by peer
AMQP    [root@irf-centos1 ~]#

当我从网络浏览器点击相同的 URL 时,没有任何反应

请提出建议

注意:此集群是在 AZure VM 上使用 kubeadm 部署的。为了进行故障排除,我已经打开了这些虚拟机上的所有入站/出站端口,因此,这不应该是防火墙、端口阻塞问题。

编辑 1:

我按如下方式修改了服务文件并重新部署了它。公共(public)安全局

---
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  namespace: default
spec:
  ports:
    - name: ui
      protocol: TCP
      port: 15672
      targetPort: 15672
      nodePort: 31112
    - name: service
      port: 5672
      targetPort: 5672
      protocol: TCP
      nodePort: 31111
  selector:
    app: rabbitmq
  type: NodePort

仍然遇到同样的错误

[root@irf-centos1 ~]# curl -I http://guest:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7d1a08180e093d4c4d5345534c484b534c454a" rel="noreferrer noopener nofollow">[email protected]</a>:31111/api/users
curl: (56) Recv failure: Connection reset by peer
AMQP    [root@irf-centos1 ~]# curl -I http://guest:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8fe8faeafcfbcfbebfa1b7a1bebab9a1beb7b8" rel="noreferrer noopener nofollow">[email protected]</a>:31112/api/users
curl: (7) Failed connect to 10.8.156.187:31112; Connection refused

最佳答案

对于rabbitmq仪表板/UI,它运行在:15672

因此服务文件中的端口号应包含:15672

然后访问仪表板/UI 为应用程序创建用户。然后使用该用户curl

---
apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  namespace: default
spec:
  ports:
    -
      port: 5672
      targetPort: 5672
      protocol: TCP
      nodePort: 31111
    - 
      protocol: TCP
      port: 15672
      targetPort: 15672
      nodePort: 31112

  selector:
    app: rabbitmqapp
  type: NodePort

或者使用rabbitmq的默认用户名和密码guest:

curl -I http://guest:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3e594b5b4d4a7e0f0e1006100f0b08100f0609" rel="noreferrer noopener nofollow">[email protected]</a>:31112/api/users

部署文件添加containerPort:

      image: "docker.io/rabbitmq:latest"
      imagePullPolicy: Always
      name: rabbitmq
      ports:
        -
          containerPort: 5672
          name: http-port
          containerPort: 15672
          name: ui-port

关于docker - 无法从 kubernetes 集群访问rabbitmq仪表板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56233490/

相关文章:

java - Drools 5.1.1 意外的累积和收集行为

rabbitmq - 如何使用 CLI 删除单个队列中的所有消息?

python - 如何在 celery - rabbitmq 设置中设置消费者优先级?

typescript - XSym : not found while executing binary in Docker on Windows

docker - Docker无法调和Kubernetes插件组件的状态

docker - 启动 Docker 的问题 - 无法启动 LSB : Create lightweight, 可移植、自给自足的容器

wordpress - 如何将wordpress托管的现有网站迁移到GKE上的kubernetes?

docker - Docker端口检测

logging - Kubernetes pod 不记录日志,但容器正在记录到 Docker 守护进程

python - uwsgi master 优雅关机