Custom Resource Definition (CRD) — это способ расширить Kubernetes, добавляя новые типы объектов в кластер, которых нет в стандартной поставке. Это позволяет создавать и управлять своими собственными ресурсами, используя стандартные API Kubernetes, kubectl и другие инструменты.
CRD определяют схему для нового типа ресурса. После создания CRD можно создавать экземпляры этого ресурса, похожие на стандартные объекты, такие как Deployment или Service.
Ключевые аспекты CRD:
- Расширяемость API: CRD расширяют Kubernetes API, позволяя работать с пользовательскими объектами так же, как и со встроенными.
- Объекты как код: Пользовательские ресурсы описываются в виде манифестов YAML/JSON, что соответствует принципам инфраструктуры как кода.
- Консистентность: CRD обеспечивают консистентный способ определения и управления пользовательскими ресурсами в кластере.
- Использование операторов: CRD часто используются в связке с Kubernetes Operators, которые реализуют логику управления для пользовательских ресурсов. Оператор "знает", как реагировать на создание, обновление или удаление экземпляров CRD, автоматизируя выполнение задач.
Пример определения CRD (частично):
yaml
Custom Resource Definition (CRD) — это способ расширить Kubernetes, добавляя новые типы объектов в кластер, которых нет в стандартной поставке. Это позволяет создавать и управлять своими собственными ресурсами, используя стандартные API Kubernetes, kubectl и другие инструменты.
CRD определяют схему для нового типа ресурса. После создания CRD можно создавать экземпляры этого ресурса, похожие на стандартные объекты, такие как Deployment или Service.
Ключевые аспекты CRD:
- Расширяемость API: CRD расширяют Kubernetes API, позволяя работать с пользовательскими объектами так же, как и со встроенными.
- Объекты как код: Пользовательские ресурсы описываются в виде манифестов YAML/JSON, что соответствует принципам инфраструктуры как кода.
- Консистентность: CRD обеспечивают консистентный способ определения и управления пользовательскими ресурсами в кластере.
- Использование операторов: CRD часто используются в связке с Kubernetes Operators, которые реализуют логику управления для пользовательских ресурсов. Оператор "знает", как реагировать на создание, обновление или удаление экземпляров CRD, автоматизируя выполнение задач.
Пример определения CRD (частично):
yaml