---
title: "Аддон OpenFaaS Kubernetes"
description: "Аддон OpenFaaS Kubernetes. Установка, настройка, примеры использования. Документация и инструкции по работе с облачными сервисами Timeweb Cloud."
---

# OpenFaaS Kubernetes

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

OpenFaaS — это платформа с открытым исходным кодом для запуска функций (FaaS) поверх Kubernetes. Она упрощает деплой небольших единиц кода, которые выполняются по запросу или событию.

В основе OpenFaaS лежит модель Function as a Service (FaaS), при которой вы пишете функцию и оборачиваете ее в Docker-образ. OpenFaaS отвечает за масштабирование, сетевые вызовы и управление жизненным циклом.

Для взаимодействия используется удобный веб-интерфейс и CLI-утилита faas-cli. Функции можно писать на популярных языках — Python, Node.js, Go и других — с помощью готовых шаблонов.

Полная документация по OpenFaaS Kubernetes доступна [на официальном сайте](https://docs.openfaas.com/) дополнения.

## Установка плагина

Для установки OpenFaaS Kubernetes откройте раздел «Дополнения» в панели управления кластером. Найдите «OpenFaaS Kubernetes» в списке и нажмите на него.

![Scr 20250709 Mlfn](https://content.timeweb.com/assets/8ef2cb18-a5b5-4097-a429-0663b7542e61.png?width=1726&height=1576)

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

Если вы включаете `ingress`, можно отключить `exposeServices`, который используется по умолчанию.

![Scr 20250709 Mlof](https://content.timeweb.com/assets/8d82de72-256d-482f-b4f9-9d7507db3044.png?width=1540&height=1552)

После указания параметров нажмите кнопку «Установить» и дождитесь завершения установки.

Чтобы убедиться, что все работает, проверьте состояние подов в неймспейсе `openfaas-fn`:

```shell
kubectl get pods -n openfaas-fn
```

Пример вывода:

```shell
NAME                            READY   STATUS    RESTARTS      AGE
alertmanager-57767d864c-hdqdn   1/1     Running   0             19h
gateway-5f9c4b5754-ksr6x        2/2     Running   1 (19h ago)   19h
nats-6ddf479847-dxr2g           1/1     Running   0             19h
prometheus-6cbd946f66-wqdf8     1/1     Running   0             19h
queue-worker-57c7479989-bw282   1/1     Running   0             19h
```

Если все поды в статусе Running — установка прошла успешно.

## Установка CLI

Для работы с OpenFaaS из консоли потребуется утилита `faas-cli`. С ее помощью можно создавать функции, собирать и отправлять образы, деплоить их в кластер, вызывать функции и просматривать их статус.

Утилита доступна для Linux, macOS и Windows. Для ее установки выполните следующие команды:

Linux

```shell
curl -sSL https://cli.openfaas.com | sh
```

MacOS

```shell
curl -sSL https://cli.openfaas.com | sh
```

Или через Homebrew:

```shell
brew install faas-cli
```

Windows (PowerShell)

```shell
$version = (Invoke-WebRequest "https://api.github.com/repos/openfaas/faas-cli/releases/latest" | ConvertFrom-Json)[0].tag_name
(New-Object System.Net.WebClient).DownloadFile("https://github.com/openfaas/faas-cli/releases/download/$version/faas-cli.exe", "faas-cli.exe")
```

После установки убедитесь, что все работает корректно:

```shell
faas-cli version
```

## Пример использования

Рассмотрим пример использования OpenFaaS. Развернем плагин, привяжем домен для удобного доступа к дашборду и обращения к OpenFaaS через CLI, установим функцию из встроенного стора и создадим собственную функцию с деплоем через Docker Hub.

Предварительные требования:

-   Домен или поддомен, по которому будет доступен OpenFaaS;
-   установленное дополнение Nginx Ingress;
-   аккаунт в Docker Hub (для кастомных функций);
-   установленная утилита faas-cli;
-   установленный Docker.

Перейдите к установке плагина OpenFaaS в панели управления. В разделе «Конфигурация» найдите секцию `ingress` и включите ее, изменив `enabled: false` на `enabled: true`. Также задайте значение `host`, указав домен, по которому будет доступен дашборд. Запустите установку плагина.

Теперь необходимо создать балансировщик нагрузки. Создайте манифест `loadbalancer.yaml`:

```yaml
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx-lb
  namespace: ingress-nginx
spec:
  selector:
    app.kubernetes.io/name: ingress-nginx
  type: LoadBalancer
  ports:
    - name: http
      port: 80
      targetPort: 80
      appProtocol: k8s.timeweb.cloud/proto-http
    - name: https
      port: 443
      targetPort: 443
      appProtocol: k8s.timeweb.cloud/proto-https
```

Примените манифест:

```shell
kubectl apply -f loadbalancer.yaml
```

После создания балансировщика, привяжите A-запись к домену. Если домен размещен на наших NS-серверах — просто выберите созданный балансировщик, при настройке А-записи домена. Если используется сторонний DNS, получите IP-адрес балансировщика и добавьте запись вручную:

```shell
kubectl get svc --all-namespaces --field-selector spec.type=LoadBalancer
```

IP будет в колонке `EXTERNAL-IP`.

Перейдите по домену, указанному при установке. Откроется окно базовой авторизации.

-   Логин: `admin`
-   Пароль: можно получить командой:

```shell
kubectl -n openfaas-fn get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode
```

После входа откроется главный экран дашборда.

![Scr 20250709 Nvkl](https://content.timeweb.com/assets/e036c968-493b-4791-ab5a-c7966782647e.png?width=2894&height=848)

_Главный экран интерфейса [OpenFaaS](https://www.openfaas.com/)_

Перейдем к использованию функций. Установим функцию из встроенного стора OpenFaaS.

Сначала авторизуйтесь через CLI. Это позволит выполнять команды, связанные с управлением функциями:

```shell
faas-cli login \
  --gateway http://<домен> \
  --username admin \
  --password <пароль>
```

Где:

-   домен — адрес, указанный при установке OpenFaaS;
-   admin — имя пользователя по умолчанию;
-   пароль — пароль можно получить при выполнении команды:

```shell
kubectl -n openfaas-fn get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode
```

Теперь установим функцию `figlet`, которая преобразует текст в ASCII-арт:

```shell
faas-cli store deploy figlet \
  --gateway http://<домен>
```

Убедитесь, что функция установилась:

```shell
faas-cli list \
  --gateway http://<домен>
```

В списке появится функция `figlet` со статусом `Ready`.

Вызовите функцию с передачей строки на вход:

```shell
echo "TimewebCloud" | faas-cli invoke figlet \
  --gateway http://<домен>
```

В ответ вы получите ASCII-арт с переданным текстом.

![Scr 20250709 Oezl](https://content.timeweb.com/assets/c1c3cd50-e3ef-43fc-856b-9bf97ebe88d3.png?width=1198&height=320)

Теперь рассмотрим деплой кастомной функции. Выберите шаблон:

```shell
faas-cli template store list
```

Создайте новую функцию на базе нужного шаблона, например `python3-http`:

```shell
faas-cli new hello-k8s --lang python3-http
```

Будут созданы:

-   `hello-k8s/handler.py` — код функции;
-   `stack.yaml` — манифест функции.

Перед сборкой отредактируйте файл `stack.yaml`, указав путь до образа в Docker Hub. Например:

```yaml
functions:
  hello-k8s:
    lang: python3-http
    handler: ./hello-k8s
    image: dockerhubuser/hello-k8s:latest
```

В поле image укажите имя пользователя Docker Hub и название образа. Обратите внимание, что в OpenFaaS Community Edition разрешена работа только с публичными образами.

Соберите образ:

```shell
faas-cli build -f stack.yaml
```

После сборки образа опубликуйте его в Docker Hub:

```shell
faas-cli push -f stack.yaml
```

И наконец, задеплойте функцию в кластер:

```shell
faas-cli deploy -f stack.yaml \
  --gateway http://<домен>
```

После выполнения команды появится ссылка, по которой доступна функция. 

![Scr 20250709 Ohdk](https://content.timeweb.com/assets/67ed7fe8-9a22-4515-aeb8-0e9f49c8a07e.png?width=1550&height=282)

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