This repository is for Research Topic on High Availability and Fault Tolerance.
# | Component | Usage |
---|---|---|
1 | Load Agent | Record Resource Agent resource metrics and notify Recovery Agent if any resource agent crashed |
2 | Load Balancer | Customer facing application to redirect to resource agent based on Resource Awareness Routing Algorithm |
3 | Recovery Agent | Perform Resource Agent Eviction and Recovery once receive Load Agent recovery notification |
4 | Resource Agent | Sample Application to run a workload, with a embedded resource agent to connect to Load Agent for status update |
- Install Redis as caching server
- Install Elasticsearch as log collector
- Install Kibana as log viewer
- Create a docker network for communication between components
docker network create capstone --driver bridge
docker pull redis docker run --network capstone --name redis -p 6379:6379 redis docker run --network capstone --name redis-cli --rm -it redis redis-cli -h redis
- Elastic Search
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.3.1
docker run --name es01 --net capstone -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.3.1
- Kibana
docker pull docker.elastic.co/kibana/kibana:8.3.1
docker run --name kib-01 --net capstone -p 5601:5601 docker.elastic.co/kibana/kibana:8.3.1
- Reset Elastic user Password
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
- Generate Kibana Connection Node
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token --scope kibana