CNCF спонсировал этот пост.
KRO-который мы пишут нижний регистр, как инструмент командной строки Linux и произносит «ворону», как птица-расширяет основные возможности Kubernetes, чтобы упростить управление взаимозависимыми ресурсами Kubernetes. AWS Open Soursed Kro в Kubecon North America в ноябре 2024 года.
Всего два месяца спустя KRO упаковал свои байты и перешел в дом, нейтральный, в качестве Google Cloud Platform (GCP), и Microsoft Azure присоединились к проекту. Это облачное сотрудничество сделало KRO первым проектом с открытым исходным кодом, где эти три основных облачных провайдера собрались вместе с самого начала.
Почему kro?
Kubernetes был расширяемым с версии 1.16, когда пользовательские определения ресурсов (CRDS) получили общую доступность (GA). В то время как вы можете написать любой пользовательский контроллер, в том числе причудливые, такие как заказ пиццы, команды часто разрабатывают контроллеры для практических потребностей: создание ресурсов Kubernetes в определенном порядке, передача значений между ресурсами и выполнение логических операций. Разработка таких контроллеров с нуля может быть сложной и трудоемкой, требующей глубокой экспертизы как в кодировании, так и в внутренних органах Kubernetes.
Именно здесь появляется KRO. KRO упрощает этот процесс, предоставляя основу на основе конфигурации, которая устраняет необходимость в пользовательском коде. Вместо каждой организации, создающей свои собственные контроллеры, KRO предлагает стандартизированный, но гибкий подход, который позволяет обмену решениями по всему сообществу. Его интуитивно понятный дизайн, основанный на простой схеме, общем языке выражения (CEL) и надежным управлением зависимостями, делает сложную ресурсную оркестровку доступной через простую конфигурацию.
Какие функции делают KRO простым в использовании?
Простая схема: KRO предоставляет простой и дружелюбный способ определения новой спецификации CRD. Под капотом KRO использует простое определение схемы для автоматического генерации схемы OpenAPIV3 и создания CRD Kubernetes. Это значительное улучшение, потому что простая схема намного проще читать и писать по сравнению с схемами OpenApiv3.
Выражения на основе CEL: KRO включает в себя CEL для определения логических операций — тот же язык выражения, который Kubernetes использует для веб -крючков — из -за его простоты и функций безопасности, таких как бюджетирование затрат на время выполнения и проверка типов. С CEL вы можете четко и кратко выражать условия и зависимости и перенести значения из одного ресурса к другому.
Управление зависимостями: KRO автоматически строит направленный ациклический график (DAG) для оркестренных ресурсов на основе указанных выражений CEL. Этот DAG определяет точный порядок, в котором ресурсы создаются и удаляются.
Эти функции делают KRO очень интуитивно понятным, простым в адаптации и естественным соответствием для тех, кто знаком с инфраструктурой в качестве инструментов кода (IAC).
Как KRO помогает управлять облачными ресурсами?
KRO работает с любым ресурсом Kubernetes и может быть установлен на любом кластере Kubernetes. KRO взаимодействует исключительно с API Kubernetes, что означает, что он не взаимодействует напрямую с какими -либо внешними API. Вместо этого он управляет и организует любые ресурсы, которые поддерживает ваш кластер. Например, если будет установлен оператор Prometheus, вы можете использовать KRO для упаковки Serviceemonitor Prometheus с вашим приложением.
Аналогичным образом, для предоставления облачных ресурсов ваш кластер должен включать инструменты, которые общаются с API облачных провайдеров, такими как контроллеры AWS для Kubernetes (ACK), конфигуратор конфигурации GCP (KCC) или оператор сервиса Azure (ASO). Использование ResourceGroupDefinition (RGD) — Основная концепция KRO для группировки связанных ресурсов — вы можете упаковать приложения, их зависимости облачных ресурсов, необходимые разрешения и другие необходимые пользовательские ресурсы Kubernetes в единую, развертываемую единицу.
KRO Workflow
KRO может превратить Kubernetes в централизованную облачную платформу
Организации часто пытаются управлять несколькими фрагментированными платформами, где каждая команда опирается на несколько разрозненных инструментов для управления такими вещами, как инфраструктура, приложения и базы данных. Разработчики, развертывающие приложения в Kubernetes, должны переключаться между несколькими интерфейсами — один для развертывания в Kubernetes, другой для запроса ресурсов облачной инфраструктуры, настройки баз данных и хранилища блока предоставления. Между тем, команды платформы — обычно состоящие из сетевых, баз данных и инфраструктурных групп — каждая из них поддерживает свои собственные трубопроводы IAC.
У этих трубопроводов не хватает стандартного способа сойти друг с другом; Вывод одного часто не плавно не интегрируется в другой. Хуже того, они не легко связаны с инструментами, используемыми для развертывания дополнений в Kubernetes, создавая дальнейшую неэффективность. Команда платформы данных создает свои отдельные инструменты, часто с перекрывающимися функциями, но редко интегрируется.
Усыновление Kubernetes продемонстрировало свою способность служить основой для централизованных операций платформы. KRO расширяет возможности Foundation Kubernetes, предоставляя конкретные механизмы для стандартизации управления ресурсами в командах разработки, платформы и платформы данных. Благодаря своему подходу на основе конфигурации к определению пользовательских API, KRO позволяет организациям создавать стандартизированные, многократно используемые компоненты, которые предоставляют следующие преимущества:
Увеличенная скорость разработчика: Команды платформы могут упаковать приложения и их зависимости облачных ресурсов в развертываемое подразделение, внедряя организационные практики и обеспечивая неявное центральное управление. Эта абстракция уменьшает сложность, позволяя разработчикам сосредоточиться на предоставлении функций, а не на устранении неполадок в трубопроводах инфраструктуры.
Улучшенное управление флотом: KRO упрощает создание новых кластеров, позволяя вашему бизнесу расширяться до новых регионов, масштабировать емкость по требованию и раскрывать изолированные среды для конкретных рабочих нагрузок. Упаковывая все необходимые ресурсы Kubernetes в RGD и создавая DAG, KRO обеспечивает надлежащий заказ на создание. Это также позволяет операторам платформы применять изменения по всему парку, что позволяет легко обновлять компоненты для требований соответствия.
Упрощенные данные и управление инфраструктурой MLOPS: Инженеры платформы данных могут упаковать все необходимые компоненты в RGD, включая облачные ресурсы, такие как узлы графических процессоров, сеть и хранение, а также объекты Kubernetes, такие как StorageClasses, PersistentVolumeclaims, услуги и вход. Это упрощает процесс развертывания, что позволяет ученым -моделям легко запускать модели, не беспокоясь о настройке инфраструктуры. Например, этот пример LLM демонстрирует, как определить и организовать необходимую инфраструктуру с использованием KRO.
С помощью KRO Kubernetes может стать слоем платформы, что обеспечивает согласованность на то, как приложения, инфраструктура и облачные ресурсы управляются равномерно.
Заключение
Запуск KRO отмечает веху в облачных нативных вычислениях, объединении AWS, GCP и Azure для борьбы с управлением ресурсами Kubernetes. Это сотрудничество создает основу для стандартизации кросс-облака, принося пользу всей экосистеме.
Присоединяйтесь к этому преобразующему путешествию: изучите KRO в вашей среде разработки, свяжитесь с нашим сообществом GitHub и внесите вклад в проблемы или запросы. Будь то строительные платформы, приложения или управление данными и операциями машинного обучения, ваши взносы могут формировать будущее оркестровки ресурсов Kubernetes и доступной, стандартизированной и эффективной разработки нативного облака.
Чтобы узнать больше о Kubernetes и Облачной нативной экосистеме, присоединяйтесь к нам в Kubecon + CloudNativecon Europe в Лондоне 1-4 апреля. Если вы посещаете Kubecon Eu 2025, встретитесь с нами на стенде AWS S300, чтобы увидеть демонстрации на KRO.
Ислам Махгуб, старший архитектор решений, AWS, также внес свой вклад в эту статью.
Облачный фонд Cloud Computing Foundation (CNCF) проводит критические компоненты глобальной технологической инфраструктуры, включая Kubernetes, Prometheus и Angoy. CNCF является нейтральным домом для сотрудничества, объединяющий ведущих разработчиков отрасли, конечных пользователей и поставщиков. Узнайте больше последних из CNCF Trending Stories YouTube.com/ThenewStack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Кристина увлечена всеми вещами Kubernetes и любит объяснять сложные понятия в простых, четких терминах. Узнайте больше от Кристины Андоной Петро Кашликов специализируется на облачных архитектурах и активно вносит вклад в сообщество с открытым исходным кодом посредством технических семинаров и отраслевых мероприятий. Подробнее от Петро Кашликова