Eventstore не работает в Kubernetes (но работает в Docker) - PullRequest
1 голос
/ 29 октября 2019

Я хочу запустить Eventstore в узле Kubernetes. Я запускаю узел с minikube start, затем применяю этот файл yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: eventstore-deployment
spec:
  selector:
    matchLabels:
      app: eventstore
  replicas: 1
  template:
    metadata:
      labels:
        app: eventstore
    spec:
      containers:
      - name: eventstore
        image: eventstore/eventstore
        ports:
        - containerPort: 1113
          protocol: TCP
        - containerPort: 2113
          protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: eventstore
spec:
  selector:
    app: eventstore
  ports:
  - protocol: TCP
    port: 1113
    targetPort: 1113
---
apiVersion: v1
kind: Service
metadata:
  name: eventstore-dashboard
spec:
  selector:
    app: eventstore
  ports:
  - protocol: TCP
    port: 2113
    targetPort: 2113
    nodePort: 30113
  type: NodePort

развертывание, набор реплик и модуль запускаются, но ничего не происходит: Eventstore не печатает в журнал, яне могу открыть свою приборную панель. Также другие службы не могут подключиться к хранилищу событий: 1113 . Никаких ошибок и стручков не вылетает. Единственное, что я вижу в журналах: «В выбранном контейнере еще не зарегистрировано ни одного сообщения».

enter image description here enter image description here

IПробовал чистый ванильный узел minukube с разными драйверами vm, а также узел с настроенным Ambassador + Linkerd. Результаты одинаковы.

Но когда я запускаю Eventstore в Docker с этим файлом yaml через docker-compose

eventstore:
    image: eventstore/eventstore
    ports:
      - '1113:1113'
      - '2113:2113'

Все работает нормально: Eventstore выводит в журналы, другие службы могут подключаться кон и я можем открыть его приборную панель на порту 2113.

ОБНОВЛЕНИЕ: Хранилище событий начало работать примерно через 30-40 минут после развертывания. Я пробовал несколько раз, и пришлось ждать. Другие модули начинают работать практически сразу (через 30 секунд - 1 минута) после развертывания.

1 Ответ

1 голос
/ 31 октября 2019

Как подтвердил @ligowsky в разделе комментариев, проблема была вызвана производительностью виртуальной машины. Публикация этого как сообщества Wiki для лучшей видимости.

Minikube по умолчанию работает с 2 CPUs и 2048 Memory. Более подробную информацию можно найти здесь .

Вы можете изменить это, если у вашей виртуальной машины есть больше ресурсов.

- во время запуска Minikube

$ sudo minikube start --cpus 2 --memory 8192 --vm-driver=<driverType>

- при работе Minikube, однако, перезапуск minikube

$ minikube config set memory 4096
⚠️  These changes will take effect upon a minikube delete and then a minikube start

Больше команд можно найти в Документациях Minikube .

В моем случае, когда ресурсы Minikube составляли 4 ЦПУ и 8192 памяти, у меня не было проблем с eventstore.

Решение OP

OP используется Вид для запуска eventstore развертывания.

Kind - это инструмент для запуска локальных кластеров Kubernetes с использованием «узлов» контейнера Docker. Вид предназначен в первую очередь для тестирования Kubernetes 1.11 +

Kind документацию можно найти здесь .

...