Панель управления rabbitmq недоступна из кластера kubernetes - PullRequest
0 голосов
/ 21 мая 2019

кластер kubernetes работает на двух узлах. один мастер, один рабочий ... сеть переплетения - это сеть под.

[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'.

развернули образ док-станции кролика в качестве контейнера в модуле kubernetes.

[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 на порту узла. недоступно

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

когда я нажимаю на тот же URL из веб-браузера, ничего не происходит

пожалуйста, предложите

ПРИМЕЧАНИЕ. Этот кластер развернут с использованием kubeadm на виртуальных машинах AZure. В целях устранения неполадок я открыл все входящие / исходящие порты на этих виртуальных машинах, так что это не должно быть проблемой межсетевого экрана и блокировки портов.

Редактировать 1:

Я изменил служебный файл следующим образом и повторно развернул его. PSB

---
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:guest@10.8.156.187:31111/api/users
curl: (56) Recv failure: Connection reset by peer
AMQP    [root@irf-centos1 ~]# curl -I http://guest:guest@10.8.156.187:31112/api/users
curl: (7) Failed connect to 10.8.156.187:31112; Connection refused

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Для приборной панели rabbitmq / пользовательского интерфейса она работает: 15672

Таким образом, номер порта в сервисном файле должен быть включен: 15672

Затем доступ к приборной панели / пользовательскому интерфейсу создает пользователя для приложения. затем 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

Или используя имя пользователя и пароль по умолчанию guest из rabitmq:

curl -I http://guest:guest@10.8.156.187:31112/api/users

Файл развертывания добавить контейнерПорт:

      image: "docker.io/rabbitmq:latest"
      imagePullPolicy: Always
      name: rabbitmq
      ports:
        -
          containerPort: 5672
          name: http-port
          containerPort: 15672
          name: ui-port
0 голосов
/ 21 мая 2019

На самом деле использовался неправильный образ докера ... для rabbitmq dashbaord образ докера должен быть docker: management. я изменил это, и это сработало.

Вот обновленный файл yaml службы и развертывания:

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

файл службы yaml:

---
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...