Несколько недель назад я принимал участие в собрании, посвященном Кубернетесу, когда один из участников сделал замечание, которое вызвало у меня глубокий резонанс
Привет, Орасио, эта вещь из Kubernetes довольно крутая, но мне бы очень хотелось увидеть платформу «Функции как услуга». Большинство моих приложений можно легко сделать с помощью базы данных и нескольких бессерверных функций!
Это был не первый раз, когда я получил этот вопрос.
Будучи, прежде всего, веб-разработчиком, я могу определенно иметь отношение. Kubernetes — замечательный продукт — вы можете одним щелчком мыши устанавливать сложные веб-архитектуры, но как насчет базы данных + модели некоторых функций?
Ну, вы также можете сделать это с Kubernetes!
В этом прелесть богатой экосистемы Kubernetes: вы можете найти проекты, предназначенные для самых разных вариантов использования, от игровых серверов с Agones до платформ FaaS.
Для этого есть карта Хелма!
Говоря «Вы можете сделать это с Kubernetes! »Это почти новое« Для этого есть приложение! », Но это не помогает многим людям, которые ищут решения. Поскольку этот вопрос поднимался несколько раз, мы решили подготовить небольшое руководство по развертыванию и использованию платформы FaaS на управляемых OVH Kubernetes.
Мы начали с тестирования нескольких платформ FaaS на наших Kubernetes. Нашей целью было найти следующее решение:
- Простота развертывания (в идеале с простой диаграммой Хелма)
- Управляется как пользовательским интерфейсом, так и интерфейсом командной строки, потому что разные клиенты имеют разные потребности
- Авто-масштабируемый, как в увеличенном, так и в уменьшенном смысле
- Поддерживается всеобъемлющей документацией
Мы протестировали множество платформ, таких как Kubeless, OpenWhisk, OpenFaaS и Fission, и я должен сказать, что все они работали довольно хорошо. В конце концов, тем, кто достиг лучших результатов с точки зрения наших целей, был OpenFaaS, поэтому мы решили использовать его в качестве ссылки для этого поста в блоге.
OpenFaaS — платформа FaaS, родная из Кубернетеса
OpenFaaS
OpenFaaS — это платформа с открытым исходным кодом для создания бессерверных функций с помощью Docker и Kubernetes. Проект уже зрелый, популярный и активный, с более чем 14 тысячами звезд на GitHub, сотнями участников и множеством пользователей (как корпоративных, так и частных).
OpenFaaS очень прост в развертывании, используя диаграмму Хелма (включая оператор для CRD, т.е. функции get kubectl). Он имеет как CLI, так и пользовательский интерфейс, эффективно управляет автоматическим масштабированием, и его документация действительно всеобъемлющая (с каналом Slack для обсуждения, как приятный бонус!).
Технически OpenFaaS состоит из нескольких функциональных блоков:
- Функция Watchdog. Крошечный HTTP-сервер golang, который превращает любой образ Docker в функцию без сервера
- Шлюз API, который обеспечивает внешний маршрут к функциям и собирает метрики
- Портал пользовательского интерфейса, который создает и вызывает функции
- CLI (по сути, клиент REST для шлюза API), который может развернуть любой контейнер как функцию
- Функции могут быть написаны на многих языках (хотя я в основном использовал JavaScript, Go и Python для целей тестирования), используя удобные шаблоны или простой Dockerfile.
Подробности настройки
www.ovh.com/fr/blog/deploying-a-faas-platform-on-ovh-managed-kubernetes-using-openfaas/