За последние несколько лет появились контейнеры для обеспечения эффективного способа надежного хранения и доставки приложений в различных вычислительных средах. Контейнером платформы приложения и ее зависимостей можно устранить различия в распределении ОС и базовой инфраструктуре.
Сеть стала критическим элементом в экосистеме контейнеров, обеспечивая связь между контейнерами, работающими на одном и том же хосте, а также на разных хостах, говорит Майкл Летурно, ИТ-архитектор в Liberty Mutual Insurance. «Помещение приложения в контейнер автоматически приводит к необходимости сетевого подключения для этого контейнера», — говорит Летурно, основной задачей которого является создание и эксплуатация контейнерной платформы Liberty Mutual.
Содержание статьи
Эволюция виртуализации
Контейнерные сети — это часть эволюции технологий виртуализации систем хранения, вычислений и сетей, которая началась более десяти лет назад с виртуализации ПК / машины. «Ранее было признано, что виртуализация физической машины имеет все преимущества, связанные с затратами, скоростью и простотой разработки», — говорит Томас Надо, технический директор по виртуализации сетевых функций в поставщике программного обеспечения с открытым исходным кодом и дочерней компании IBM Red Hat.
При виртуализации аппаратные ресурсы распределяются между виртуальными машинами, каждая из которых включает в себя как приложение, так и полный экземпляр операционной системы. Физический сервер, на котором запущены три виртуальные машины, например, будет содержать гипервизор, сопровождаемый тремя отдельными операционными системами, работающими поверх. С другой стороны, серверу, поддерживающему три контейнерных приложения, требуется только одна операционная система, причем каждый контейнер совместно использует ядро операционной системы со своими дополнительными контейнерами.
Хотя виртуальная машина с собственной операционной системой может занимать несколько гигабайт дискового пространства, размер контейнера может составлять всего десятки мегабайт. Таким образом, на одном сервере может размещаться намного больше контейнеров, чем на виртуальных машинах, что значительно повышает эффективность центра обработки данных, сокращая при этом расходы на оборудование, обслуживание, электроэнергию и другие.
Следование правильному подходу к работе в контейнерах имеет решающее значение для долгосрочного успеха.
Выбор правильного подхода к работе в сети контейнеров во многом зависит от потребностей приложений, типа развертывания, использования оркестраторов и типа базовой ОС. , «Самая популярная контейнерная технология сегодня основана на Docker и Kubernetes, которые имеют подключаемые сетевые подсистемы, использующие драйверы», — объясняет Джон Морелло, вице-президент по управлению продуктами, безопасности контейнеров и серверов в поставщике технологий кибербезопасности Palo Alto Networks. «Исходя из вашей сети и типа развертывания, вы выбрали бы наиболее подходящий драйвер для вашей среды для обработки связи контейнер-контейнер или контейнер-хост».
«Сетевое решение должно соответствовать «Потребности предприятия, масштабирование до потенциально большого количества контейнеров, а также управление эфемерными контейнерами», — объясняет Летурно.
Процесс определения начальных требований, определения вариантов, отвечающих этим требованиям, и тогда внедрение решения может быть столь же важным, как выбор правильного агента для обеспечения и балансировки нагрузки контейнеров. «В современном мире переход на оркестратор из Кубернетеса — это довольно безопасное решение», — говорит Летурно. «Вопрос о том, что использовать в качестве сетевого уровня, является более нюансированным разговором и определяется не только масштабом, но и необходимыми функциями».
При переходе на контейнеры главная цель — создать распределенную архитектуру, состоящую из микросервисов, которые представляют собой приложения, структурированные как наборы слабо связанных сервисов, говорит Крис Мейер, старший архитектор интеграции для BlueCat Networks, IP-адрес -управление, DNS и DHCP-сервис провайдер. «Используя микросервисы, можно получить более отказоустойчивое и простое в обновлении приложение, разбитое на части», — говорит он.
Именно здесь сеть играет важную роль. «Традиционно каждый контейнер должен был бы соединяться вместе, как если бы это было обычное сетевое устройство, связываясь по сети и оплачивая расходы, связанные с необходимостью покинуть интерфейс и вернуться обратно», — говорит Мейер.
Такой подход создает дополнительные сложности, такие как необходимость беспокоиться о проблемах, создаваемых брандмауэрами. «Используя новейшие технологии контейнерных сетей, можно связать контейнеры таким образом, чтобы они работали на одном интерфейсе», — говорит он. «Это огромное преимущество, потому что не только все компоненты вашей архитектуры могут легко и быстро общаться друг с другом, но и могут быть распределены по разным машинам в разных центрах обработки данных».
Некоторые распространенные сетевые опции контейнеров на выбор можно выбрать bridge, overlay, host и Macvlan, как описано в статье InfoWorld Сердара Йегулалпа:
Мостовые сети включают контейнеры, работающие на один и тот же хост для связи друг с другом, но IP-адреса, назначенные каждому контейнеру, недоступны извне хоста. Новый экземпляр Docker поставляется с мостовой сетью по умолчанию, и все вновь запускаемые контейнеры автоматически подключаются к нему. стандартные настройки по умолчанию потребуют тонкой настройки в производственном процессе. Например, настраиваемые мосты включают функции, которые не являются автоматическими в режиме по умолчанию, включая разрешение DNS, возможность добавлять и удалять контейнеры из настраиваемого моста, пока они работают. unning; и возможность совместного использования переменных среды между контейнерами.
Оверлейные сети предназначены для контейнеров, работающих на разных хостах, например, в рое Docker. В оверлейной сети контейнеры между хостами могут автоматически находить друг друга и обмениваться данными посредством туннелирования сетевых подсетей от одного хоста к другому; предприятию не нужно устанавливать это для каждого отдельного участвующего контейнера. В производственных системах обычно требуется создание настраиваемой оверлейной сети.
В хост-сети сетевой драйвер хоста позволяет контейнерам запускать свои сетевые стеки рядом со стеком на хосте. Веб-сервер на порте 80 в сетевом контейнере доступен через порт 80 на самом хосте. Скорость — самое привлекательное в хост-сети, но она достигается ценой гибкости: если вы сопоставите порт 80 с контейнером, никакой другой контейнер не сможет использовать его на этом хосте.
A Сеть Macvlan для приложений, которые работают непосредственно с базовой физической сетью, таких как приложения для мониторинга сетевого трафика. Драйвер macvlan не только назначает IP-адрес контейнеру, но и физический MAC-адрес. Macvlan обычно зарезервирован для приложений, которые не работают, если они не используют физический сетевой адрес.
Возможность подключения — не единственное соображение. Различные режимы контейнерных сетей поддерживают различные сетевые возможности. Например, в мостовой сети используется трансляция сетевых адресов (NAT), что приводит к снижению производительности. Хост-сеть устраняет необходимость в NAT, но создает потенциальные конфликты портов. Другие функции, которые различаются в разных сетевых подходах, включают управление IP-адресами (IPAM), IPv6, балансировку нагрузки и качество обслуживания.
Кроме того, предприятиям приходится сталкиваться с различиями в способах работы контейнеров, оркестраторов и плагины управляют сетью. Например, Docker и Kubernetes имеют разные модели распределения сетевых ресурсов и управления ими. Контейнеры сетевого интерфейса (CNI) на основе Kubernetes, которые работают с сетевыми элементами управления Docker, могут помочь преодолеть разрыв. Плагины CNI предназначены для связывания времени выполнения контейнера с десятками различных реализаций контейнерной сети.
Начало работы с сетями контейнеров
Учитывая масштаб, до которого функционирующая контейнерная экосистема может в конечном итоге вырасти, важно подготовиться к технологии, разработав подробную сетевую стратегию. «Разрастание контейнерных экосистем без плана, вероятно, вызовет головные боли у сетевых администраторов», — говорит Летурно. Неправильно сконфигурированные решения для управления контейнером могут, например, привести к инцидентам отказа в обслуживании в вышестоящих сервисах.
Подобно тому, как когда бизнес начинает расти и становится необходимой стратегия для его корпоративной сети, то же самое относится и к растущей контейнерной среде. Например, если используется решение оркестрации на основе Kubernetes, существует множество реализаций CNI на выбор, говорит Летурно. «Каждая реализация имеет разные функциональные возможности и аспекты, которые делают ее привлекательной для разных вариантов использования».
По мере того, как предприятия переходят от собственных центров обработки данных к облачным провайдерам, они должны определять и оценивать свои сетевые архитектуры и цели модернизации, даже если переход на контейнерные технологии в настоящее время не рассматривается. «Интеграция сети облачного провайдера с сетью центра обработки данных может создать сетевые сложности для будущего использования контейнерных решений, управляемых облачным провайдером», — говорит Летурно.
Устаревшие сетевые проблемы
Принятие контейнера требует переосмысления всей сетевой архитектуры предприятия. «Нельзя углубляться в контейнерные сети, если предположить, что это будет то же самое, что и унаследованные сети, потому что тогда вы потеряете преимущества возможности соединять вашу архитектуру простым в обслуживании способом», — говорит Мейер.
Устаревшие сети, например, необходимо менять вручную при возникновении необходимости, такой как добавление нового сервера. Если изменение не подтверждено должным образом, вероятны сбои.
«Устаревшие конфигурации сети центров обработки данных были реализованы в виде статических конфигураций на физических устройствах, поэтому, если серверу нужно перемещаться, конфигурации нужно менять», — говорит Грег Кокс, старший архитектор по техническим вопросам поставщика услуг восстановления данных Sungard В КАЧЕСТВЕ. Подтверждение изменений потребовало от многих ИТ-отделов больших инвестиций в лаборатории, оснащенные дорогостоящим измерительным и контрольным оборудованием. По его словам, благодаря работе с контейнерами изменения и проверка становятся автоматизированным процессом.
Принятие стратегии контейнеризации и переход к идиоме, основанной на микросервисах, знаменует собой значительные изменения в традиционных операциях и практиках центров обработки данных. «Сетевые группы обычно знакомы с относительно статичной и неизменной инфраструктурой, запланированными подсетями и стандартными методами измерения емкости», — говорит Летурно. «Требования DHCP и DNS основаны на настольных компьютерах конечных пользователей, а системы спроектированы с учетом кэширования и статических ресурсов».
Контейнеризация эффективно отбрасывает эту почтенную рабочую нагрузку через дверь центра обработки данных. Он поясняет, что в контейнерной экосистеме изменения в конфигурации сети и местах обслуживания происходят регулярно, и нет непосредственного человеческого контроля над сетью. «Это выходит за рамки идеи« программно-определяемой »; это сеть, определяемая приложением, управляемая алгоритмом планировщика оркестровки».
Поскольку внедрение контейнерных технологий продолжает неуклонно расти, уничтожая проверенные временем технологии и практики, сетевым командам придется адаптироваться и развиваться. Поскольку работа с контейнерными сетями в основном контролируется программным обеспечением, ИТ-персоналу необходимо взять в свои руки все более устаревшие элементы управления и получить более глубокое понимание серверных систем и процессов. Контейнерные сети … когда общение вне одного сервера — это сетевой трафик из определенного контейнера, — объясняет Кокс. Сервер инкапсулирует трафик и отправляет его туда, куда ему нужно. — Это та инкапсуляция, которая позволяет совершенно новым сетевым архитектурам быть построенным, не затрагивая физические сети, в которых фактически существуют серверы », — говорит он.
Дальнейшее развитие устаревших сетей связано с тем, что контейнерные сети делают традиционные инструменты управления сетью и мониторинга устаревшими.« Видимость … будет ограничен, так как предыдущие инструменты, используемые для мониторинга производительности сети, вряд ли помогут командам ориентироваться в проблемах внутри контейнерной экосистемы », — говорит Летурно.
Проблемы сетевой безопасности
Сетевые контейнеры может повысить безопасность, но они также могут открыть дверь для новых опасностей. "С динамической природой контейнеров важно использовать средство безопасности, которое может автоматически изучает сетевое поведение … микросервисов и обеспечивает полное представление о них ", — говорит Морелло.
Контейнеры представляют собой огромное изменение в технологическом стеке и процессе жизненного цикла разработки программного обеспечения. Неудивительно, что перед предприятиями стоит задача не только обеспечить правильное функционирование систем, но и обеспечить их безопасность.
Контейнерные сети нарушают многие предположения, которые заставляют работать традиционные брандмауэры и средства контроля сетевой безопасности, говорит Рани Оснат, вице-президент по стратегии в компании Aqua Security, занимающейся технологиями безопасности контейнеров. Предприятиям нужен способ контролировать вход и выход; микросегментные контейнеры, чтобы приложения не мешали друг другу; и иметь брандмауэры, которые могут сопоставляться с подключением к контейнеру, а не с подключением к виртуальной машине, предотвращая потенциально опасный обход сети восток-запад, говорит Оснат.
Признавая растущую потребность в надежной защите, появляются различные проекты с целью сделать безопасность неотъемлемой частью технологии контейнерных сетей. «Например, проект Cillium обеспечивает низкоуровневую безопасность и видимость, используя пакетные фильтры Berkeley для внедрения политики безопасности в сетевой уровень», — говорит Летурно. Между тем Istio — это сервисная сетка, которая решает проблемы, присущие распределенной микросервисной архитектуре. «[It takes] некоторые из требований, предъявляемых к сервисам, сводят эту функциональность к сетевому уровню, где она, вероятно, принадлежит», — отмечает Летурно.
Хотя оба эти проекта являются относительно новыми, они предлагают вид расширения уровня безопасности непосредственно в сети, определяемый не сетевыми администраторами, работающими в отдельных командах, а группами, которые фактически создают службы и приложения. ,
В целом, пространство контейнерных сетей быстро развивается. «Все время появляются новые вещи, это интересное место для наблюдения за развитием», — говорит Мейер. «Новейшие и лучшие инструменты действительно помогают облегчить переход к этой новой парадигме и развернуть дальновидные предприятия с этой новой архитектурой».
Эта история, "Основные вещи, которые нужно знать о работе в контейнерах", была первоначально опубликована
Сетевой мир .