Docker може да бъде инсталиран на най-често използваните операционни платформи. CoreOS има предварително инсталиран Docker и е проектиран специално за изпълнение на Docker контейнери. Docker за AWS предоставя готов режим на Docker рояк, при който клъстер от възли, наречен рояк, предоставя разпределена платформа за изпълнение на приложения за контейнери на Docker.
Проблем: Всички гореспоменати Docker платформи са само различни типове инсталации на Docker и изискват Docker контейнерите да се изпълняват и управляват от командния ред.
Решение: AmazonECS (Услуга за еластични контейнери ) е управлявана услуга за Docker контейнери с вградена поддръжка за мащабиране, балансиране на натоварването, работа в мрежа, съхранение, регистриране и други задачи за управление на Docker контейнери. Amazon ECS поддържа два типа стартиране:EC2 и Fargate.
С типа на стартиране EC2 екземплярите на EC2 започват да изпълняват Docker контейнери. Типът за стартиране на Fargate, който беше представен наскоро (ноември 2017 г.), хоства задачи, които капсулират Docker контейнери. Задачите са директно достъпни за потребителя чрез Еластичен мрежов интерфейс (ENI ). Екземплярите EC2, на които е предоставен Fargate, не са изложени на потребителя и не са пряко достъпни.
В тази глава ще научим за следното:Какво представлява Amazon Fargate
- Предимства на Fargate Amazon ECS обекти
- Изчислителни ресурси в Amazon ECS Fargate
- Какво е новото в режима на стартиране на Amazon Fargate?
Какво е Amazon Fargate
Amazon Fargate е нов тип стартиране за Amazon ECS и Amazon EKS (Elastic Kubernetes Service )-управлявани услуги за оркестрация за Docker контейнери на AWS. С типа на стартиране на Fargate инфраструктурата е напълно осигурена от Fargate. Той е без сървър и никакви EC2 екземпляри не са изложени на потребителя. Docker контейнерите се дефинират като дефиниции на контейнери в дефиниция на задача. Услуга изпълнява дефиницията на задача, за да изпълнява една или повече задачи. Всяка задача е свързана с ENI. Ако автоматичното присвояване на публичен IP на ниво задача е разрешено, публичен IP, на който външен клиент може да има достъп до задача, автоматично се присвоява на задача. Задачите комуникират помежду си през частен IP.
Предимства на Fargate
Предимствата на ECS са следните:
- Управлявана услуга за контейнерни приложения, която не изисква много въвеждане на потребителя за стартиране на приложения на Docker
- Микроуслуги, състоящи се от множество приложения, изпълнявани в изолирани контейнери Автоматично мащабиране на задачите въз основа на натоварването на приложението
- Интегрира се с други услуги на AWS, включително IAM, CloudWatch Logs, Elastic Load Balancing, CloudFormation шаблони, EBS Volumes, Batch, ECR и CloudTrail logs
- Виртуален частен облак (VPC ) без ресурси, споделени с други потребители Осигурява поддръжка за стартиране на CodePipeline с ECS като платформа за внедряване
- Поддържа най-новата версия на Docker 17.0
Fargate предоставя следните допълнителни предимства:
- С тип стартиране на Fargate потребителят не създава или управлява никакви EC2 екземпляри, тъй като никой не е изложен в клъстера.
- Задачите са директно изложени на потребителя чрез ENI.
- Основната инфраструктура се предоставя от Fargate. EC2 екземпляри не трябва да се управляват с типа на стартиране Fargate.
- CodePipeline поддържа Fargate като платформа за внедряване.
- Микроуслугите, базирани на дефиниции на контейнери, капсулирани в дефиниция на задача, са изрично свързани и не трябва да се свързват с никакви допълнителни опции, като връзки.
- Журналите на CloudWatch може да се конфигурират автоматично.
Amazon ECS обекти
Обектите на Amazon ECS с Fargate са същите като при стартиращия тип EC2. ECS клъстерът е най-външното капсулиране и се състои от една или повече услуги. Един клъстер може да бъде разпределен в множество зони за наличност. Услугата е реализация на дефиниция на задача и изпълнява една или повече задачи. Дефиницията на задача може да има една или повече ревизии на задача. Ревизията на задачата е отделна дефиниция на задача с набор от задачи и услуга, свързана с нея. Един екземпляр на Fargate е свързан с набор от задачи в услуга. Дефиницията на задача се състои от нула или повече дефиниции на контейнери. Обикновено дефиниция на задача ще бъде свързана с една или повече дефиниции на контейнери, а дефиниция на задача, която не се състои от дефиниция на контейнер, няма да изпълнява никакви контейнери на задачи. Диаграма на ECS обекти е показана, както следва:
Дефиниция на задача е шаблон на приложение и описва един или повече контейнери. Докато някои атрибути или настройки се конфигурират на ниво задача, повечето от тях се конфигурират на ниво контейнер. Множество ревизии могат да бъдат свързани с дефиниция на задача.
АУслуга изпълнява дефиниция на задача и дефинира желан брой задачи, които да се изпълняват за дефиниране на задача. Допълнителни функции като автоматично мащабиране и балансиране на натоварването се конфигурират в услугата.
Клъстер в ECS услуга е групиране на една или повече контейнерни услуги. Името на клъстер трябва да е уникално в рамките на акаунта. Клъстер, наречен по подразбиране, се предоставя по подразбиране.
Изчислителни ресурси в Amazon ECS Fargate
Размер на задачата се състои от памет за задачи (GB) и ЦП за задачи (vCPU) . Въпреки че е задължителен за типа стартиране EC2, размерът на задачата се изисква при типа на стартиране Fargate. Паметта на ниво контейнер на Docker и настройките на процесора могат да бъдат дефинирани по избор, но се отменят от настройките на нивото на дефиниране на задача. Поддържат се само специфични комбинации от памет на задачите и CPU за задачи и съветникът на ECS показва със съобщение поддържаната стойност (или диапазон от стойности) за избрана стойност. Като пример, валидният диапазон на процесора за 1 GB памет е от 0,25 vCPU до 0,5 vCPU. Общите ресурси (памет или CPU), конфигурирани на ниво контейнер, не трябва да надвишават настройките за ресурс на ниво задача. Като пример, ако дефиницията на задача се състои от два контейнера (MySQL и WordPress) с ограничение на паметта от 128 MB за всеки контейнер, паметта на ниво задача трябва да бъде най-малко 256 MB. Също така, общата памет на ниво контейнер не трябва да надвишава 256 MB. По същия начин за процесора. Две ограничения на паметта могат да бъдат дефинирани на ниво контейнер:Меко ограничение и Твърдо ограничение . Мекото ограничение съответства на memoryReservation атрибут на ниво задача, а ограничението Hard съответства на паметта атрибут на ниво задача. Сумата от резервациите на паметта на контейнера (Меки ограничения) не трябва да надвишава паметта на задачите. Твърдият лимит за всеки контейнер не трябва да надвишава паметта, конфигурирана на ниво задача. По подразбиране за контейнер трябва да бъдат посочени минимум 4 GB.
Примерен размер на задачата е показан на следващата екранна снимка, на която паметта за задачи (памет атрибут) е настроен на 0,5 GB (512 GB) и задачния процесор е настроен на 0,25 vCPU . На ниво контейнер, както е конфигурирано в двете дефиниции на контейнера, резервацията на паметта е 128 MB за всеки контейнер, което прави общото резервиране на памет от 256 MB в рамките на 512 GB разпределени на ниво задача. Размерът на задачата се разпределя на задача, независимо дали се използва или не. По същия начин, броят на CPU единици конфигуриран за всеки контейнер е 10 , което прави общите CPU единици 20 за контейнери в CPU модулите, 25 се разпределят на ниво задача. Вижте следната екранна снимка:
Конфигуриране и разпределение на размера на задачата за контейнери
Какво е новото в режима на стартиране на Amazon Fargate?
В допълнение към и едновременно с предимствата на Fargate, обсъдени по-рано, Fargate поддържа следните нови функции:
- Режим на работа в мрежа, awsvpc , е единственият поддържан режим
- Съпоставянията на портовете на хоста не са валидни с мрежов режим на стартиране на Fargate (awsvpc ), а хост портовете, на които е изложено приложение, са същите като портовете на контейнера
- ecsTaskExecutionRole е добавен за типа стартиране на Fargate, за да позволи изтегляне на изображения на Docker и изпращане на регистрационни файлове към CloudWatch Logs
- Само awslogs конфигурация на журнала и awslogs регистрационните драйвери се поддържат с CloudWatch Logs
- Поставянето на задачи не се поддържа, тъй като не са предоставени екземпляри на ECS, които да дефинират ограничения за разположение за
- Поддържат се само изображения на Docker в Docker Hub и Amazon ECR Привилегированите контейнери на Windows не се поддържат за типа стартиране на Fargate Хост устройствата не могат да бъдат изложени на контейнер
- хост и sourcePath параметрите за томове не се поддържат с типа на стартиране на Fargate
Резюме
В тази уводна глава обсъдихме ползите от използването на типа стартиране на Fargate, как се разпределят и конфигурират изчислителните ресурси с типа на стартиране на Fargate, как обектите на ECS с Fargate са същите като при типа на стартиране EC2 и новите функции в Фаргейт. В следващата глава ще обсъдим работата в мрежа, както се използва с Fargate.
Предишният материал е откъс от Ръководство за бързо начало на Amazon Fargate , от Deepak Vohra, публикуван от Pact Publishing. |
Тази статия беше предоставена. ©Developer.com. Всички права запазени