Я создаю docker рой на 3 хостах для следующих сервисов: Grakn, Redis, Elasticsearch, MinIO и RabbitMQ.
Мои запросы:
- Может я использую один docker -compose.yml, чтобы все строилось на 3 хостах? Или нам нужно иметь файл 3 docker -compose.yml?
- Чтобы иметь HA, я также хочу построить еще 3 хоста, чтобы, скажем, если один хост (физический) выходит из строя, службы, которые работают на этом, будут переведены на другой, и обслуживание не будет прервано.
- Могу ли я использовать здесь стек docker, если да, то как?
services:
grakn:
image: graknlabs/grakn:1.7.2
ports:
- 48555:48555
volumes:
- grakndata:/grakn-core-all-linux/server/db
restart: always
redis:
image: redis:6.0.5
restart: always
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
volumes:
- esdata:/usr/share/elasticsearch/data
environment:
- discovery.type=single-node
restart: always
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
minio:
image: minio/minio:RELEASE.2020-05-16T01-33-21Z
volumes:
- s3data:/data
ports:
- "9000:9000"
environment:
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY}
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY}
command: server /data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: always
rabbitmq:
image: rabbitmq:3.8-management
environment:
- RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
restart: always