Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем

Разработка операторов. Внутреннее устройство K8s controller-runtime

Превозмогание

GO
DevOps / Кубер

Доклад принят в программу конференции

Мнение Программного комитета о докладе

K8s сейчас — фактически стандарт выполнения приложений в современном мире. Но K8s тоже приходится тем или иным образом расширять, и тут нам на помощь приходят его операторы. В докладе будет рассмотрено множество тайных знаний, которые лучше узнать на конфе, а не когда они стукнут вас по лбу.

Целевая аудитория

Go-разработчики, заинтересованные в более тесной работе с K8s и/или написании собственных операторов.

Тезисы

Чаще всего мы, как Gо-разработчики, пишем всевозможные микросервисы. И уже давно все привыкли, что управляет ими некий монстр под названием Kubernetes. Он автоматически переподнимет наш упавший под, поможет скалировать сервис и многое другое. А что кубер не делает автоматически, то по старинке делается ручками.

Однако существуют операторы, которые позволяют автоматизировать буквально что угодно.

А что сегодня используется для написания операторов? В подавляющем большинстве случаев это будет kubebuilder или operator-sdk, и оба используют библиотеку kubernetes-sigs/controller-runtime как основу.

Доклад посвящен обзору внутреннего устройства библиотеки controller-runtime, пониманию тонкостей функционирования отдельных её частей и их влиянию на разработку Kubernetes-операторов. Знание внутренних механизмов позволит иначе взглянуть на вопросы оптимизации производительности и повышения надежности операторов, построенных на базе CR.

В рамках доклада расскажу про:
* компоненты controller-runtime — Manager, Controller, Reconciler, Client и другие, их связь и внутреннее устройство;
* жизненный цикл контроллера, механизм доставки уведомлений и др.;
* подводные камни и грабли, которые могут встретиться при разработке операторов, варианты их обхода и способы оптимизации.

Разработчик с более чем 10-летним опытом и разнообразной экспертизой. Последние 5 лет специализируется на Golang.

СберТех

СберТех — российский разработчик программного обеспечения для бизнеса и государства, основной поставщик решений для Сбера. Флагманское решение компании — цифровая облачная платформа Platform V для создания приложений любого масштаба и сложности и обеспечения технологической̆ независимости на уровне ПО.

Видео