Как создать CRD в Kubernetes

Kak Sozdat Crd V Kubernetes



Давайте научимся создавать CRD в Kubernetes в этой статье. В этом руководстве мы расскажем, как создать CRD в Kubernetes, а затем создать контроллер Kubernetes, который будет использоваться для обработки запросов на создание экземпляра CRD. Мы будем демонстрировать каждый шаг с помощью примеров, чтобы помочь вам полностью понять работу по созданию CRD вместе с объектом контроллера для обработки CRD в Kubernetes. Итак, начнем!

Что такое CRD в Kubernetes?

CRD означает определение пользовательского ресурса, используемое для новых ресурсов без добавления другого сервера API. Чтобы работать с CRD, вам не нужно понимать агрегацию API. Это очень мощная функция, представленная в Kubernetes 1.7, которая поставляется с различными встроенными ресурсами и объектами API. Это позволяет вам определять пользовательские ресурсы со схемой и именем по вашему выбору.

CRD расширяют возможности API Kubernetes, превосходящие установку по умолчанию, за счет использования пользовательских определений ресурсов. Используя CRD, вы можете направить Kubernetes таким образом, чтобы он мог обрабатывать больше, чем просто контейнеры. Вы можете создать собственный ресурс по своему выбору и сделать его декларативным с помощью пользовательских контроллеров. Теперь давайте узнаем, как создать пользовательское определение ресурса, а затем спроектировать собственный контроллер для управления CRD. А затем как удалить CDR, чтобы увидеть его влияние на Kubernetes.







Предпосылка

Прежде чем мы перейдем к этапам создания и удаления CRD, давайте удостоверимся, что наша система соответствует всем требованиям предварительных условий.



  • Ubuntu 20.04 или любая другая последняя версия для работы в среде Linux/Unix.
  • Кубернет кластер.
  • Kubectl CLI для использования команд kubectl, связи кластера и управления средой разработки.
  • minikube или любая другая площадка Kubernetes для создания кластеров

Установите эти инструменты, если вы их еще не установили, прежде чем переходить к следующему разделу.



Теперь мы перейдем к пошаговому руководству по созданию CRD в Kubernetes.





Шаг № 1: Запустите Kubernetes

Для работы с CDR у вас должен быть кластер как минимум с двумя узлами Kubernetes, которые не работают как хосты уровня управления. Мы используем minikube для создания и использования кластера. Итак, используйте приведенную ниже команду для запуска миникуба:

> запустить миникуб

Когда вы выполните эту команду, вы получите результат, аналогичный приведенному ниже:



Шаг № 2: Откройте или создайте файл конфигурации

Теперь, когда наш мини-куб запущен и работает, давайте откроем файл конфигурации. Команда «nano» используется для открытия файлов конфигурации. Все, что вам нужно сделать, это указать имя файла рядом с командой nano, за которым следует расширение файла, и нажать клавишу ввода. Здесь у нас есть файл «red.yaml», который содержит детали конфигурации для создания CRD. Вот полная команда nano, которую вы можете использовать, чтобы открыть нужный файл:

> нано красный.yaml

Когда вы выполните эту команду, в вашем терминале откроется следующий файл:

Шаг № 3: Создайте ресурс конечной точки

Ресурсы конфигурации сохранены в файле red.yaml. Мы будем использовать это для создания новой конечной точки RESTful API с пространством имен. Kubectl предоставляет команду «применить» для создания конечной точки из файла конфигурации. Вот полная команда «применить», которая используется для создания нового RESTful API с пространством имен:

> применить кубектл -f красный.yaml

Конечная точка, созданная этой командой, будет использоваться для создания пользовательского объекта, который будет управлять CRD. Для ресурса с пространством имен будет сгенерирован следующий вывод:

Шаг № 4: Создайте пользовательский объект для управления CRD

CRD управляются пользовательскими объектами. Мы можем создать их после создания пользовательского определения ресурса. Пользовательские объекты содержат настраиваемые поля произвольного JSON. Чтобы создать пользовательский объект, нам снова понадобится файл конфигурации YAML. Используйте команду «nano», чтобы создать файл конфигурации YAML:

> нано ct.yaml

Сохраните необходимые поля с конкретными данными в файле YAML. Детали конфигурации примера показаны в образце ниже:

Теперь используйте тот же файл YAML для создания пользовательского объекта. Используйте команду «применить», чтобы создать пользовательский объект из указанного файла YAML. См. полную команду, приведенную ниже:

> применить кубектл -f ct.yaml

После успешного выполнения этой команды вы получите следующий вывод:

Шаг № 5: Управляйте CRD с помощью пользовательского объекта

Пользовательские объекты используются для управления CRD. Итак, давайте узнаем, как мы можем использовать недавно созданный пользовательский объект для управления уже созданным CRD. Здесь мы собираемся проверить детали, содержащие пользовательский объект, с помощью команды «получить». См. команду, приведенную во фрагменте кода ниже:

> kubectl получить crontab

Когда вы выполняете эту команду в терминале minikube, будет сгенерирован следующий вывод:

Если вы хотите проверить необработанные данные, содержащиеся в файле YAML, вы можете использовать эту команду:

> kubectl получить кт -The батат

Это покажет необработанные данные в файле YAML, как в примере, приведенном ниже:

Вот как мы можем создать CRD и пользовательский объект для управления и контроля созданного CRD. Теперь, если вы хотите удалить созданный CRD, вы можете выполнить процедуру, указанную ниже.

Как удалить CRD, созданные в Kubernetes?

Команды kubectl позволяют удалять CRD в Kubernetes. При попытке удалить CRD в Kubernetes связанные с ним пользовательские ресурсы также будут удалены. kubectl предоставляет команду «удалить» для удаления любого ресурса. Приведенная ниже команда используется для удаления CRD, который мы создали на шагах выше:

> кубектл удалить -f красный.yaml

После успешного выполнения этой команды вы получите следующий результат:

Теперь, когда CRD и связанные с ним пользовательские объекты удалены, вы получите сообщение об ошибке от сервера, если попытаетесь получить к нему доступ. См. приведенную ниже команду, в которой мы пытаемся получить доступ к RESTful API с пространством имен:

> kubeclt получить crontabs

Поскольку «crontabs» были удалены, сервер выдаст ошибку для этого действия. См. вывод этой команды, приведенный ниже:

Заключение

Эта статья была кратким обзором того, как создать собственное определение ресурса, как создать собственный объект для управления CRD и как удалить CRD из Kubernetes. С помощью примеров примеров мы продемонстрировали каждый шаг, чтобы помочь вам понять процесс легко и быстро.