OpenFaaS — это платформа с открытым исходным кодом для запуска функций (FaaS) поверх Kubernetes. Она упрощает деплой небольших единиц кода, которые выполняются по запросу или событию.
В основе OpenFaaS лежит модель Function as a Service (FaaS), при которой вы пишете функцию и оборачиваете ее в Docker-образ. OpenFaaS отвечает за масштабирование, сетевые вызовы и управление жизненным циклом.
Для взаимодействия используется удобный веб-интерфейс и CLI-утилита faas-cli. Функции можно писать на популярных языках — Python, Node.js, Go и других — с помощью готовых шаблонов.
Полная документация по OpenFaaS Kubernetes доступна на официальном сайте дополнения.
Установка плагина
Для установки OpenFaaS Kubernetes откройте раздел «Дополнения» в панели управления кластером. Найдите «OpenFaaS Kubernetes» в списке и нажмите на него.

В открывшемся окне можно изменить параметры установки. Найдите секцию ingress и включите ее — установите enabled: true, а также укажите свой домен в параметре host. Это упростит доступ к дашборду и позволит использовать faas-cli.
Если вы включаете ingress, можно отключить exposeServices, который используется по умолчанию.

После указания параметров нажмите кнопку «Установить» и дождитесь завершения установки.
Чтобы убедиться, что все работает, проверьте состояние подов в неймспейсе openfaas-fn:
Пример вывода:
Если все поды в статусе Running — установка прошла успешно.
Установка CLI
Для работы с OpenFaaS из консоли потребуется утилита faas-cli. С ее помощью можно создавать функции, собирать и отправлять образы, деплоить их в кластер, вызывать функции и просматривать их статус.
Утилита доступна для Linux, macOS и Windows. Для ее установки выполните следующие команды:
После установки убедитесь, что все работает корректно:
Пример использования
Рассмотрим пример использования OpenFaaS. Развернем плагин, привяжем домен для удобного доступа к дашборду и обращения к OpenFaaS через CLI, установим функцию из встроенного стора и создадим собственную функцию с деплоем через Docker Hub.
Предварительные требования:
- Домен или поддомен, по которому будет доступен OpenFaaS;
- установленное дополнение Nginx Ingress;
- аккаунт в Docker Hub (для кастомных функций);
- установленная утилита faas-cli;
- установленный Docker.
Перейдите к установке плагина OpenFaaS в панели управления. В разделе «Конфигурация» найдите секцию ingress и включите ее, изменив enabled: false на enabled: true. Также задайте значение host, указав домен, по которому будет доступен дашборд. Запустите установку плагина.
Теперь необходимо создать балансировщик нагрузки. Создайте манифест loadbalancer.yaml:
Примените манифест:
После создания балансировщика, привяжите A-запись к домену. Если домен размещен на наших NS-серверах — просто выберите созданный балансировщик, при настройке А-записи домена. Если используется сторонний DNS, получите IP-адрес балансировщика и добавьте запись вручную:
IP будет в колонке EXTERNAL-IP.
Перейдите по домену, указанному при установке. Откроется окно базовой авторизации.
- Логин:
admin - Пароль: можно получить командой:
После входа откроется главный экран дашборда.

Перейдем к использованию функций. Установим функцию из встроенного стора OpenFaaS.
Сначала авторизуйтесь через CLI. Это позволит выполнять команды, связанные с управлением функциями:
Где:
- домен — адрес, указанный при установке OpenFaaS;
- admin — имя пользователя по умолчанию;
- пароль — пароль можно получить при выполнении команды:
Теперь установим функцию figlet, которая преобразует текст в ASCII-арт:
Убедитесь, что функция установилась:
В списке появится функция figlet со статусом Ready.
Вызовите функцию с передачей строки на вход:
В ответ вы получите ASCII-арт с переданным текстом.

Теперь рассмотрим деплой кастомной функции. Выберите шаблон:
Создайте новую функцию на базе нужного шаблона, например python3-http:
Будут созданы:
hello-k8s/handler.py— код функции;stack.yaml— манифест функции.
Перед сборкой отредактируйте файл stack.yaml, указав путь до образа в Docker Hub. Например:
В поле image укажите имя пользователя Docker Hub и название образа. Обратите внимание, что в OpenFaaS Community Edition разрешена работа только с публичными образами.
Соберите образ:
После сборки образа опубликуйте его в Docker Hub:
И наконец, задеплойте функцию в кластер:
После выполнения команды появится ссылка, по которой доступна функция.

Перейдите по ссылке — вы увидите результат выполнения — сообщение «Hello from OpenFaaS!».