Когда возможностей Kubernetes недостаточно. Делаем свой DNS-сервер для Kubernetes в связке с CoreDNS

Инфраструктура и эксплуатация

Проектирование информационных систем
Инфраструктура как сервис (IaaS), платформы как сервис (PaaS)
GO
DevOps / Кубер
Инфраструктура
Сеть

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

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

Доклад будет полезен, если вы захотите глубже разобраться с K8s DNS API и внутренним устройством CoreDNS, а также понять, как расширить его возможности и изменить логику генерации DNS-имен, да еще и сделать вокруг этого решения свой оператор. Много Go в связке с K8s и инфраструктурой вокруг него.

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

Доклад будет интересен SRE, DevOps-специалистам, а так же Go-разработчикам, которые хотят разобраться во внутренностях работы DNS в Kubernetes.

Тезисы

Мы в Т-Банке строим ML-платформу на базе Kubernetes. Однако пользователи не имеют прямого доступа к самому оркестратору; для них все взаимодействие с платформой скрыто за API. Однажды нам понадобилось предоставить возможность делать сетевые запросы между задачами на платформе, и мы столкнулись с тем, что механизмы Kubernetes не подходят для наших целей.

В докладе я расскажу о том, как мы разработали свой формат DNS-имен в Kubernetes, который обратно совместим для пользователей платформы и скрывает все внутренние изменения.

Тимлид команды ML Core Developer Experience, отвечает за Managed JupyterLab и DevExp в ML-платформе Т-Банка. До Т-Банка работал в Lamoda в команде маркетинговых инструментов и внутреннего Golang-туллинга.

Увлекается веб-разработкой на Golang и Python, интересуется другими языками. Изучает и применяет различные архитектурные паттерны. Любит писать понятный код, который решает задачу, или не писать его вообще.

Ведет телеграм-канал t.me/one_engineer_notes

Видео