Kubernetes меняет способы управления микросервисами
![Kubernetes меняет способы управления микросервисами](/public/uploads/img/1/4/16/31563.png)
Микросервисная архитектура — это своего рода технология следующего поколения, которая, так сказать, действительно увеличивает разрыв между мальчиками и мужчинами (или девочками и женщинами). Что касается приложений, микросервисная архитектура — это то преимущество, которое вам нужно, чтобы оставаться актуальным в наше время, когда большие медленные обновления и небрежные исправления просто неприемлемы. Контейнеры — это, безусловно, первая приверженность микросервисной архитектуре, но они — только та часть брака, которую я делаю. Далее следует возможность управлять микросервисами в состоянии болезни и в состоянии здоровья, и именно здесь вы можете схитрить и позволить Kubernetes сделать большую часть тяжелой работы за вас.
Если контейнеры стоят на первом месте в вашем списке покупок, то Kubernetes определенно стоит на втором месте, и тот факт, что исходный код этого продукта открыт и он постоянно разрабатывается CNCF, означает, что многие люди, знающие, о чем говорят, думают, что эта технология просуществует еще долго. пока. Когда персональные компьютеры были чем-то новым, многие компании не решались вкладывать большие средства на случай, если завтра появится процессор, вдвое более быстрый. Это не относится к живой, дышащей сущности, такой как Kubernetes, которая постоянно обновляется с помощью самых разных гениев со всей планеты. Это определенно та технология, на которую вы хотите положиться, и, вероятно, поэтому все хотят на нее положиться.
Оркестрация контейнеров
Целью нового обновления Kubernetes 1.7 было показать нам, насколько универсальной и распространенной может быть эта технология. Экосистема инструментов и вспомогательного программного обеспечения, которое ее окружает, выросла в геометрической прогрессии, а инструменты, созданные вокруг Kubernetes, просто добавляют к и без того высокому уровню настраиваемости, который связан с ней. Теперь, хотя многие люди называют весь стек «контейнерами», Kubernetes четко различает контейнеры и хорошо управляемые контейнеры.
Docker определенно был программным обеспечением, которое положило начало эре контейнеров, но только когда люди начали использовать Kubernetes для управления своими контейнерами, мы действительно начали что-то делать. Kubernetes позволяет человеку управлять тысячами микросервисов, работающих в контейнерах, и делает это с помощью простого и удобного набора API.
Kubernetes также позволяет использовать обширную экосистему специализированных инструментов, которые были построены вокруг него, что, мягко говоря, является довольно огромным ресурсом. Тот факт, что это открытый исходный код и любимец CNCF, просто вишенка на торте, и большинство компаний просто исходят из того, что если это достаточно хорошо для Google и Netflix, то это достаточно хорошо и для них.
Неизведанная территория
![Изображение 14552](/public/uploads/img/1/2/46/14552.jpg)
Когда мы говорим о вещах, которые должны начать делаться по-другому в отношении микросервисной архитектуры, вам также нужно начать делать много вещей, которые вы даже не делали раньше. Когда тысячи микросервисов взаимодействуют друг с другом, необходимо выполнять кучу бэк-офисной работы, чтобы они оставались здоровыми и счастливыми. Kubernetes — это начало того, чтобы убедиться, что это происходит, предоставляя вам инструменты для управления микросервисами.
В игру вступают такие вещи, как обнаружение сервисов, балансировка нагрузки и сетевая безопасность на основе политик. Если все, что у вас есть, это контейнерный движок, вам определенно предстоит тяжелая поездка. Оркестрация — это больше, чем просто указание всем, что делать, и прежде чем мы рассмотрим некоторые специализированные инструменты в экосистеме, мы рассмотрим новую территорию, которую открыли оркестровка контейнеров и архитектура микросервисов.
Обнаружение службы
Микросервисы работают лучше всего, когда легко найти другие сервисы и их собственные зависимости, и именно здесь вы действительно начинаете ценить Kubernetes с его хорошо продуманной абстракцией сервисов. Чтобы использовать службу, вам необходимо динамически обнаруживать модули, реализующие ее, чтобы ее можно было вызвать. Это обнаружение службы, и Kubernetes делает все это за вас либо с помощью DNS-имен, либо с переменными среды, которые являются двумя способами обнаружения службы. Kubernetes по умолчанию использует DNS. Это делается с помощью DNS для преобразования имен служб в IP-адрес службы.
Балансировки нагрузки
Современные высокопроизводительные приложения и веб-сайты обслуживают тысячи и миллионы пользователей, требующих чего угодно, от игр до видео и чата. Балансировка нагрузки — это практика эффективного распределения входящего сетевого трафика по группе внутренних серверов для повышения общей производительности, и снова Kubernetes делает это эффективно. В Kubernetes есть два разных типа балансировщиков нагрузки. Один из них — внутренний тип, который распределяет нагрузку между контейнерами, а затем есть внешние балансировщики нагрузки, которые в основном используются в общедоступном облаке.
Безопасность сети на основе политик
В Kubernetes по умолчанию все модули могут взаимодействовать друг с другом, и это все равно что пытаться преподавать в шумном классе. Сетевая политика устанавливает набор основных правил в отношении того, кто с кем может общаться. Сетевая политика также определяет, как группам модулей разрешено взаимодействовать друг с другом и другими сетевыми конечными точками, а также изолирует модули, чтобы они отклоняли любые подключения, не разрешенные сетевой политикой. Поды по умолчанию неизолированы и принимают весь входящий трафик, поэтому, если вы хотите больше контролировать, кто может общаться с вашим контейнером, сетевая политика определенно должна быть в вашем списке вещей, которые нужно получить.
Преимуществом использования Kubernetes для управления микросервисами является множество инструментов экосистемы, к которым у вас есть доступ. Калико определенно делает жизнь намного проще.
Project Calico защищает сеть Kubernetes, создавая брандмауэр вокруг каждой рабочей нагрузки, поэтому злоумышленникам приходится иметь дело с гораздо большим количеством брандмауэров, а не всего с парой. Эти микробрандмауэры от Calico защищают каждую рабочую нагрузку по отдельности, поэтому при отказе одной службы не возникает эффекта домино. Каждая служба вполне способна работать сама по себе.
Calico можно интегрировать с сетевым проектом контейнеров CoreOS с открытым исходным кодом под названием Flannel, где название подразумевает, что он создает «ткань» подключения между вашими микросервисами. Микс получил название «Canal» и фактически представляет собой безопасность Calico и возможности подключения Flannel. Canal также является проектом с открытым исходным кодом и, по сути, представляет собой более полное решение, созданное за счет интеграции двух звездных инструментов.
Кое-что для всех, кому нужно управлять микросервисами
Прелесть технологий и современных приложений в том, что они почти как краска: если вам не нравится синий или желтый, вы можете смешать их и получить зеленый! Weave — это еще одна система безопасности на основе политик, о которой недавно говорили, и с учетом количества времени, усилий и денег, вложенных в сетевую безопасность на основе политик, можно с уверенностью сказать, что это лучший способ защитить микросервисы и управлять ими. приложения, использующие контейнеры.
Подобно Calico и Weave, вокруг Kubernetes появляется ряд действительно мощных инструментов и ресурсов, особенно в отношении сетей и безопасности. Некоторые из последних внедрений CNCF были связаны с сетевым взаимодействием для таких контейнеров, как Istio и Linkerd.
Kubernetes не только помогает людям управлять микросервисами, но и предоставляет всю экосистему инструментов и сервисов, которые упрощают управление микросервисами. Предприятие не может просить большего, и хотя Swarm не сильно отстает, Kubernetes делает это исключительно трудным делом.