масштабирование при помощи docker swarm

3.

4.


docker service update --force sleep-app
5.
Настройка количества реплик производится в файле конфигурации (свойство replicas)

Для проверки работоспособности сервиса используется свойство healthcheck, в которой указывается команда, которая определяет работоспособность


RPS 4 копий выше 1 копии примерно на 15%

Видно, что RPS стал сопоставим с запуском app с единственным экземпляром, в теории из-за overhead содержания нескольких реплик redis
Особенность реплицируемого сервиса redis заключается в том, что реплики работают по архитектуре master-slave, поэтому в docker-compose.yml необходимо отдельно настроить master экземпляр сервиса и отдельно slave экземпляры.

RPS в kubernetes кластере выше swarm кластера примерно на 6%
Запуск kubernetes кластера
Перед запуском кластера необходимо собрать image app и опубликовать его в локальном репозитории:
docker run -d -p 5000:5000 --name registry registry:2
docker build -t 127.0.0.1:5000/app .
docker push 127.0.0.1:5000/app
команда curl.exe http://localhost:5000/v2/_catalog должна вывести примерно: {"repositories":["app"]}
Запуск кластера:
kubectl apply -f redis-pvc.yaml
kubectl apply -f redis-master-deployment.yaml
kubectl apply -f redis-slave-deployment.yaml
kubectl create secret generic app-env-secret --from-env-file=backend/.env
kubectl apply -f app-deployment.yaml
kubectl create configmap nginx-config --from-file=nginx.conf
kubectl apply -f nginx-deployment.yaml
Остановка kubernetes кластера
kubectl delete -f nginx-deployment.yaml
kubectl delete -f app-deployment.yaml
kubectl delete -f redis-slave-deployment.yaml
kubectl delete -f redis-master-deployment.yaml
kubectl delete -f redis-pvc.yaml
Также остановите локальный репозиторий image:
docker kill registry
docker rm registry