В разделе elasticsearch
у вас есть команда оболочки на sleep
.И после этого никогда не запускались экземпляры эластичного поиска.
command: ["/bin/sh", "-ec","sleep 1000"]
Итак, похоже, что в контейнере не работает эластичный поиск, и поэтому connection refused
происходит.
Чтобы исправить:
Избавьтесь от command:
от elasticsearch
и es02
, таким образом, будет использоваться значение по умолчанию command
.
Примечание:
Теперь, когда запустится эластичный поиск, вы столкнетесь с двумя ошибками (описанными ниже) с этим compam yaml в kubernetes.Они не связаны с этим постом, но я постараюсь дать вам направление, где искать.
ERROR: [2] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Здесь
- вам необходимо обновить хост-систему для
vm.max_map_count
.Выполните в виртуальной коробке minikube minikube ssh
и запустите sudo -s sysctl -w vm.max_map_count=262144
, чтобы изменить количество_карт ядра ядра.Это будет работать, потому что докер / контейнер не обеспечивает изоляцию на уровне ядра .
Для мини-куба,
minikube ssh 'sudo -s sysctl -w vm.max_map_count=262144'
ulimit недоступен в
kompose
.
Смотрите проблему здесь .Так что либо вы должны избавиться от обоих
bootstrap.memory_lock=true
из
environment:
разделов, либо вам может потребоваться обновить образ докера.Этот вопрос уже задается
здесь в stackoverflow.
Итак, улучшенный компонент yaml (хорошо работает на мини-кубах):
version: '3'
services:
webapp:
build:
context: ../../../
dockerfile: config/docker/dev/Dockerfile-dev
container_name: myWebApp-dev
command: ["/bin/sh", "-ec","sleep 1000"]
image: 'localhost:5002/webapp:1'
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
- ELASTICSEARCH_HOST=elasticsearch
labels:
kompose.image-pull-policy: 'IfNotPresent'
kompose.service.type: nodeport
ports:
- "4000:4000"
- "3000:3000"
depends_on:
- elasticsearch
links:
- elasticsearch
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
container_name: elasticsearch
environment:
- node.name=elasticsearch
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=elasticsearch,es02
- cluster.name=docker-cluster
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=elasticsearch
- cluster.initial_master_nodes=elasticsearch,es02
- cluster.name=docker-cluster
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- esdata02:/usr/share/elasticsearch/data
Однако я бы предложилследовать эластичному поиску официальный документ вместо использования compose для установки эластичного поиска в kubernetes.