Сервис недоступен в Kubernetes - PullRequest
       24

Сервис недоступен в Kubernetes

0 голосов
/ 03 августа 2020

Для моего исследовательского проекта мне нужно развернуть Graylog в нашей инфраструктуре Kubernetes. Graylog использует MongoDB, который развернут в том же кластере.

kubectl describe svc -n mongodb

Name:              mongodb
Namespace:         mongodb
Labels:            app=mongodb
Annotations:       Selector:  app=mongodb
Type:              ClusterIP
IP:                10.109.195.209
Port:              27017  27017/TCP
TargetPort:        27017/TCP
Endpoints:         10.244.2.21:27017
Session Affinity:  None
Events:            <none>

Я использую приведенный ниже сценарий развертывания для развертывания Graylog:

apiVersion: v1
kind: Service
metadata:
  name: graylog3
spec:
  type: NodePort
  selector:
    app: graylog-deploy
  ports:
  - name: "9000"
    port: 9000
    targetPort: 9000
    nodePort: 30003
  - name: "12201"
    port: 12201
    targetPort: 12201
    nodePort: 30004
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: graylog-deploy
  labels:
    app: graylog-deploy
spec:
  replicas: 1
  selector:
      matchLabels:
        name: graylog-deploy

  template:
    metadata:
      labels:
        name: graylog-deploy
        app: graylog-deploy
    spec:
      containers:
      - name: graylog3
        image: graylog/graylog:3.0
        env:
        - name: GRAYLOG_PASSWORD_SECRET
          value: g0ABP9MJnWCjWtBX9JHFgjKAmD3wGXP3E0JQNOKlquDHnCn5689QAF8rRL66HacXLPA6fvwMY8BZoVVw0JqHnSAZorDDOdCk
        - name: GRAYLOG_ROOT_PASSWORD_SHA2
          value: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
        - name: GRAYLOG_HTTP_EXTERNAL_URI
          value: http://Master_IP:30003/ 
        - name: GRAYLOG_ELASTICSEARCH_HOSTS
          value: http://elasticsearch:9200
        - name: GRAYLOG_MONGODB_URI
          value: mongodb://mongodb:27017/graylog
        ports:
        - containerPort: 9000
        - containerPort: 12201

Graylog выдает исключение:

Вызвано: java. net .UnknownHostException: mongodb

Но при развертывании с использованием IP-адреса MongoDB он работает успешно.

Я новичок в Kubernetes и не знаю, что я здесь делаю не так.

Спасибо.

1 Ответ

1 голос
/ 03 августа 2020

Поскольку ваш mongodb работает в другом пространстве имен, называемом mongodb, вам необходимо предоставить полное доменное имя для службы в этом пространстве имен. Ваш серый журнал находится в пространстве имен по умолчанию. Итак, чтобы получить доступ к службе mongodb в пространстве имен mongodb, измените свой yaml, как показано ниже

- name: GRAYLOG_MONGODB_URI
  value: mongodb://mongodb.mongodb:27017/graylog

Здесь - ссылка, которая может предоставить больше информации.

...