Въведение в Архитектурата на роя Докер
Docker Swarm е инструмент за групиране и оркестрация на контейнери, който е вграден в Docker Engine за разпределената система, която включва стотици контейнери. Задачите Docker Node, Docker Services и Docker са ключови компоненти на Docker swarm архитектурата.
- Докер възел: Това е екземплярът на Docker Engine, включен в роя Докер, има два вида:
- Мениджърска възел: Отговаря за всички задачи за оркестрация и управление на контейнери, необходими за поддържане на системата в желаното състояние, като поддържане на състоянието на клъстера, планиране на услугите и обслужване на крайните точки на HTTP режим на рояка.
- Docker Service: Определението на задачата трябва да бъде изпълнено.
Типична докерска ройна архитектура
По-долу са точките за типичната архитектура от роя на докерите:
- Node е ключовият член на архитектурата на докер роя, архитектурата на роя може да има повече от един мениджър възли, водени от един мениджър възел, избран с помощта на алгоритъма Raft, мениджърският възел може да работи и като работен възел, но може да бъде конфигуриран да работи като мениджър възел също.
- Възлите на мениджъра използват алгоритма на консенсус Raft за вътрешно управление на състоянието на клъстера. Това е за да се гарантира, че всички възли на мениджър, които планират и контролират задачи в клъстера, поддържат / съхраняват последователно състояние.
- Роякът е група от Docker двигатели или възли, където ние разполагаме нашите услуги. В ранния етап Докер излезе със система за управление на клъстери с комуникационен протокол, известен като Beam. По-късно те добавиха още API и го преименуваха на рояк. Роя от първо поколение се нарича „рояк v1“.
Работен поток на Докер рояк
Работният процес на докерския рой се състои в разбирането на това как възлите и услугите работят в архитектурата на докер роя:
Стъпка 1: Първата стъпка е да се създаде набор от докер-машина, който ще действа като възли в докерския рояк , един от тези възли ще бъде мениджърът, а останалите възли ще действат като работни възли. За да създадете машина за докер, използвайте командата в Windows, стартирайте докер терминала.
docker-machine create –driver hyperv manager1
- Където 'manager1' е името на докер-машината, за да се изброят машините и съответно се изпълнява.
docker-machine ls
docker-machine ip manager1
Стъпка 2: Втората стъпка е да създадете работни машини, използвайте командата по-долу, за да създадете колкото работни машини искате, тук нека създадем 3 работници.
docker-machine create –driver hyperv worker1
docker-machine create –driver hyperv worker2
docker-machine create –driver hyperv worker3
- Можем да се свържем с мениджъра или работника с помощта на командата по-долу, която ще ви отведе вътре в машината.
docker-machine ssh manager1/worker1
Стъпка 3: Стъпка 3 е да инициализираме роя на докерите, трябва да изпълним тази команда на машината, която искаме да работим като мениджър, така правим node manager, можем да добавим и още мениджъри.
docker-machine ssh manager1
docker swarm init –advertise-and Manager1 IP
Стъпка 4: Стъпка четвърта е да се присъедините към работните възли, за да роя, да получите командата да се присъедините към възел като работник, използвайки командата по-долу на машината на мениджър и изпълнете командата, която сте получили на работната машина, която искате да направите работник.
Docker swarm join-token worker1
- За да проверите дали работникът е присъединен към рояк или не отидете на машината на мениджър и изпълнете командата, той ще посочи добавената машина на работника с данни за мениджъра.
docker-machine ls
Стъпка 5: Стъпка пета е да стартирате стандартните команди на докер на мениджъра.
docker info (fetches details about docker swarm)
docker swarm (commands that can run on docker swarm such as join, leave, update, init and unlock etc)
Стъпка 6: Стъпка шеста е да стартираме контейнерите за докер на докер рояк, можем да създадем всяка услуга и това са реплики. Отидете на ub.docker.com, влезте и отидете да разгледате депозитарите, можем да видим различни изображения, които са двигатели, например nginx (работи на уеб сървър) създава услуга и репликата се използва команда по-долу на мениджъра.
docker service create –replicas 3 -p 80:80 –name sample nginx
- Където 'sample' е името на услугата и 80 е портът, който се излага, за да се провери състоянието на услугата, изпълнена под командата на възела на мениджъра.
docker service ls
docker service ps sample
Проверете услугата, работеща на всички възли, а също и браузъра, като предоставите IP за всички възли.
Стъпка 7: Стъпка 7, сега можем да видим действителното използване на докер рояк, където мащабираме услугата нагоре и надолу. За мащабиране на услуга изпълнете командата по-долу на мениджър машина
docker service scale sample=4
- Горната команда ще направи извадката на услугата да работи на 4 възли, въпреки че всички възли са заети, тя ще създаде друга услуга на мениджър или работник. По подобен начин можем да намалим мащаба на услугата.
docker service scale sample=2
- Можем също така да проверим възела, за да получим подробности като колко и коя услуга работи на възел, като изпълним командите по-долу на възела на мениджъра
docker node inspect worker1/manager1
docker node inspect self
Стъпка 8: Стъпка осма е да актуализираме услугата, когато услугата работи на няколко машини и ако искаме да актуализираме услугата, тя е много и проста, например, ако искаме да актуализираме версията на услугата nginx.
docker service update –image nginx:1.14.0 sample
Стъпка 9: Изключване / спиране / премахване.
- За да изключите всеки конкретен възел, използвайте командата по-долу, която променя състоянието на възела на "източване".
docker node update –availability drain worker1
- За да премахнете услугата от всички машини.
docker service rm sample
- За да напуснеш роя, което променя състоянието на „надолу“.
docker swarm leave
- За да спрете машина (Стартирайте от докер терминала, а не в мениджъра или работната машина).
docker-machine stop worker1
docker-machine rm worker1
Предимства на Docker Swarm Architecture
По-долу са показаните предимствата на Docker Swarm Architecture:
- Децентрализиран дизайн: можем да управляваме ройни клъстери чрез команда на роя, Той дава един p (мехлем за достъп за изграждане на цял рой.
- Много е проста в сравнение с Kubernetes.
- Висока наличност: Сред възлите, които се предлагат в роя, ако master не успее, друг възел на работника ще поеме допълнителна такса.
- Желано състояние Примирение: Мениджърът на роя проследява състоянието на клъстера, така че желаното и действителното състояние да е винаги едно и също.
- Когато посочим над мрежа за свързване с вашите услуги, мениджърът на рояка назначава адреси на контейнера в мрежата с наслагване, след като създадем / актуализираме контейнерите
- Подвижни актуализации: Актуализациите на услугите могат да се извършват постепенно, мениджърът на роя ви позволява да укажете закъснението между всяка актуализация без никакъв престой.
заключение
Докер роякът е прост инструмент на мястото на големи инструменти, които изпълняват задачата, Докер с рояк осигурява оркестрация, от която се нуждаем, лесно е да настроим и изпратим местния с докер двигател, който ние така или иначе ще инсталираме и използваме.
Препоръчителни статии
Това е ръководство за Docker Swarm Architecture. Тук обсъждаме как възлите и услугите работят в архитектурата на докер роя с техните предимства. Можете също да прегледате и другите ни свързани статии, за да научите повече -
- Докерска архитектура
- Какво е Докер рояк?
- Роял приложения за разузнаване
- Помага ли технологията за роене да помага на Agile Teams да растат?