Уголок разработчиков: 9 лучших проектов с открытым исходным кодом, созданных Kubernetes

Опубликовано: 3 Марта, 2023
Уголок разработчиков: 9 лучших проектов с открытым исходным кодом, созданных Kubernetes

Сегодня Kubernetes находится в центре контейнерной революции. То, что началось с Docker, вышло за рамки одной организации или инструмента. Контейнерное движение привело к консолидации всей ИТ-индустрии вокруг открытых стандартов, которые приносят пользу всем организациям, а не только нескольким влиятельным поставщикам. Это то, что представляет собой Kubernetes — мир доставки программного обеспечения, построенный на открытом фундаменте.

Однако эта открытость касается не только Kubernetes. Скорее, это проявляется во всех инструментах и решениях, построенных вокруг Kubernetes. Это возможно только благодаря преднамеренно открытой архитектуре, с которой был построен Kubernetes. Когда Google представил миру Kubernetes, в платформе было много зияющих пустот, которые нужно было заполнить. Хотя это было многообещающе, мало кто знал, будет ли вокруг него достаточная поддержка. Но ко всеобщему удивлению консенсус относительно Kubernetes был практически единодушным. Ключом к этому являются различные решения, появившиеся за последние несколько лет, и большинство из них с открытым исходным кодом. Вот ключевые проекты с открытым исходным кодом, созданные Kubernetes (в произвольном порядке).

Шлем

Helm — это менеджер пакетов для Kubernetes. Это помогает автоматизировать задачи ручной установки. В Helm есть функция Charts, которая представляет собой файл YAML, описывающий список ресурсов Kubernetes.

Помимо установки, это помогает упростить развертывание и сделать его более предсказуемым. Благодаря систематическому подходу к CI/CD Helm помогает оптимизировать конвейер доставки программного обеспечения. Он хорошо интегрируется с Kubernetes и является частью CNCF.

Платформа оператора

Операторская платформа, созданная CoreOS, которая теперь является частью Red Hat, обеспечивает абстракцию и простоту при создании собственных приложений Kubernetes. Оператор — это метод развертывания приложений в Kubernetes. В настоящее время при создании приложения в Kubernetes необходимо написать много низкоуровневых API и стандартного кода. Operator Framework стремится улучшить это, предоставляя SDK, который помогает управлять разработкой приложений и дальнейшим управлением всем жизненным циклом приложения.

gVisor

gVisor — один из немногих инструментов, предназначенных для защиты кластеров Kubernetes. В частности, он обрабатывает изоляцию контейнеров, что имеет решающее значение для безопасности. gVisor можно использовать для запуска приложений, которым вы не полностью доверяете, в изолированных контейнерах gVisor. Эти изолированные контейнеры достаточно изолированы от остальной системы и, таким образом, обеспечивают уровень защиты, если что-то пойдет не так с приложением. В прошлом существовали решения для машинной изоляции с виртуальными машинами и изоляции на основе правил с такими инструментами, как seccomp, SELinux и AppArmor. gVisor работает на уровне выше этих инструментов и улучшает обработку системных вызовов. Каждое приложение, работающее в gVisor, получает собственное ядро и отдельные ресурсы хоста. Таким образом, вы можете более смело запускать приложения в рабочей среде на начальном этапе.

Конечно, вам нужно больше, чем gVisor, чтобы по-настоящему защитить ваши приложения в Kubernetes. На самом деле вам понадобится целая стратегия управления рисками с открытым исходным кодом. Этот риск может исходить даже от плохого управления инструментами с открытым исходным кодом, что делает их уязвимыми. Такие инструменты, как Whitesource, являются ключом к обеспечению соответствия требованиям при использовании инструментов с открытым исходным кодом.

К тому, что

Изображение 410
Google

Istio — самый популярный на сегодняшний день сетевой инструмент контейнеров для Kubernetes. Он основан на модели «service mesh». Он использует вспомогательные агенты Envoy, которые действуют как сеть прокси-серверов и обеспечивают лучшую связь между различными службами микросервисного приложения. Istio обеспечивает балансировку нагрузки в сети. Он применяет политики, которые контролируют поток трафика и шифрование сетевых запросов. Еще до версии 1.0 Istio не поддерживает все оркестраторы контейнеров, такие как Mesos, но поддержка Kubernetes сильна. Принятие Istio было устойчивым в течение последнего года, и оно здесь, чтобы остаться.

Прометей

Prometheus — лучший инструмент мониторинга для Kubernetes. Он фокусируется на сборе и доставке потоковых метрик в реальном времени для анализа. При управлении Kubernetes вам нужен мониторинг в реальном времени, и Prometheus с этим справляется. Prometheus использует другой инструмент с открытым исходным кодом, Kibana, для визуализации, но сам он имеет мощные функции запросов, которые позволяют вам получить максимальную отдачу от ваших показателей мониторинга. Самым большим преимуществом Prometheus является то, что вы можете настроить оповещения в реальном времени на основе метрик. Эти оповещения могут быть доставлены по электронной почте или с помощью внешнего инструмента, такого как Pagerduty. Другие инструменты мониторинга включают Heapster и cAdvisor, но Prometheus пользуется наибольшей популярностью.

OpenTracing

Из-за сложности архитектуры микросервисов сетевое взаимодействие представляет собой серьезную проблему. Когда запросы проходят через сеть, они касаются нескольких служб. Возможность отслеживать сетевые запросы до мельчайших деталей является необходимостью для администраторов. Построенный с учетом модели микросервисов, OpenTracing обеспечивает глубокую видимость сетевых запросов, позволяя отслеживать полный путь от начала до конца, не обращая внимания на возникающие проблемы. Он обеспечивает визуальное представление того, сколько времени занимает каждый шаг, и в сочетании с метриками и журналами является мощным инструментом для отладки и обеспечения безопасности.

С

Командная строка — мощный инструмент, который часто недооценивают. Kops надеется изменить это, позволив разработчикам легко создавать кластеры Kubernetes и управлять ими на облачных платформах, таких как AWS, Google Cloud и Digital Ocean. Ожидается поддержка других поставщиков облачных услуг. Kops позволяет легко создавать кластеры из интерфейса командной строки с помощью простых команд, которые могут выполнять сложные задачи. Он делает это, абстрагируясь от сложностей и запекая строгие значения по умолчанию и легко настраиваемые шаблоны. Точно так же, как вы используете kubectl для запуска команд внутри кластеров, вы используете Kops для запуска команд в кластерах. Преимуществами, конечно же, являются автоматизированное и абстрагированное управление кластером и повышенная эффективность. Kops также интегрируется с шаблонами Terraform, что позволяет создавать кластеры K8s на облачных платформах.

Проект Калико Изображение 411

Уникальный инструмент Project Calico обеспечивает сетевую безопасность на основе политик. Calico использует гранулированный и распределенный подход к безопасности. В отличие от традиционных периферийных брандмауэров, которые когда-то оставляли уязвимой всю систему, Calico инкапсулирует каждую службу в системе с помощью микробрандмауэра.

gRPC

Другой сетевой инструмент, gRPC, обрабатывает удаленные вызовы процедур — это связь между клиентом и сервером, когда они расположены на разных хостах. gRPC специализируется на управлении балансировкой нагрузки для запросов в сети Kubernetes. Он включает правила маршрутизации запросов, чтобы система работала с максимальной нагрузкой и ни один узел не был перегружен. Он обрабатывает повторные попытки и тайм-ауты, таким образом гарантируя, что недолгие запросы засоряют системные ресурсы. Внедряя двунаправленную потоковую передачу запросов, gRPC обеспечивает связь между службами в режиме реального времени. Разобравшись с ключевыми проблемами связи, gRPC позволяет администраторам Kubernetes сосредоточиться на логике приложений и более важных задачах.

Дивный новый мир Kubernetes с открытым исходным кодом

По мере того, как вы движетесь к более ориентированному на Kubernetes стеку, возникают новые проблемы, и такими же должны быть и решения. Эти решения не исходят от крупных поставщиков, которые навязывают свое собственное видение того, каким должно быть будущее облачных вычислений. Скорее, они исходят от всего сообщества разработчиков, создающих решения проблем, с которыми они сталкиваются, и делятся ими с миром для дальнейшего улучшения и совершенствования. В этой новой экономике открытый исходный код — это не приемный ребенок или запоздалая мысль — это ключ ко всей загадке облачных вычислений. Будь то безопасность, сеть, мониторинг или лучшее управление, для этого есть инструмент с открытым исходным кодом. Итак, оставьте в стороне эти дорогие, проприетарные, заблокированные инструменты поставщиков и войдите в дивный новый мир инструментов Kubernetes с открытым исходным кодом.