问题标签 [openfaas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

kubernetes - 如何使用 vert.x eventbus 在 openfaas 函数之间进行通信

我在我的 openfaas 函数中使用 Vert.x,我想使用 vert.x 事件总线在它们之间进行通信,但我不确定如何在函数外部使用事件总线。它具有相同的功能。我没有找到任何有关此的文档或资源。目前我正在为 openfaas 函数使用 vertx java11 模板,但我也想为 ml 模型使用 python 版本,并希望使用事件总线在它们之间进行通信。在 openfaas 中可以吗?

0 投票
0 回答
31 浏览

bash - openFaas ffmpeg 视频处理在较大文件上返回 502 Bad gateway

我将一些ffmpeg视频处理功能包装为openfaas处理程序。

我所有的功能(bash 脚本)在本地都可以正常工作。

部署的功能适用于小视频文件(< 40MB),但不适用于较大的视频(测试 100MB 文件)

我使用 nginx 作为代理。

NGINX 配置:

功能视频预览/处理程序:

开放式faas yaml:

我成功地在本地测试了该功能:

部署的函数适用于小视频,但较大的视频返回 502 Bad gateway失败。

功能正在部署到具有2vCPU2G 内存的 DigitalOcean 虚拟服务器。

我的猜测是该函数正在使用 100% 的 CPU 资源并重新启动 docker 容器,导致 502 错误。

我怎样才能防止这种情况?

0 投票
1 回答
38 浏览

load-testing - 如何使用 OpenFaas 函数说明并发优势?

我正在试验 OpenFaas 并尝试评估让多个工作人员提供相同功能的性能优势(商店提供的默认 shasum 功能)。我有一个由三个“小”(1vcpu 2gb ram)一个“中”(1vcpu 4gb ram)和一个“大”(2vcpu 4gb ram)VM 组成的集群。调度由 Kubernetes 完成,中型和大型 VM 无需托管任何托管在小型 VM 上的功能。该hey工具用于执行多个调用,并且我通过 API 手动生成工作器(即额外的 pod、函数的实例)。组件的 8080 端口gateway被端口转发到 localhost ( kubectl port-forward -n openfaas svc/gateway 8080:8080 &),并且使用类似于以下的命令行进行函数的调用:

hey -n 50 -c 3 -m POST -D 50large.txt http://localhost:8080/function/shasum

或者

hey -n 20000 -c 600 -m POST -d test http://localhost:8080/function/shasum

(第一个测试一个 30Mb 文件的 50 个 shasum,另一个测试一个小请求的 600 个并发发布者,20000 次)。调用是从“大”虚拟机进行的,它不能托管任何功能 pod(封锁)。

有时,我注意到如果我调用具有大量并发请求或大文件输入的函数,网关无法转发这些请求并且端口转发被破坏(例如,当使用第一个命令时,将 -c 3 替换为-c 5,用于 5 个并发生产者)。

但是即使端口转发没有被破坏(即使用-c 3),我也会得到一些不容易解释的结果。考虑下面的执行日志,该案例连续使用三个工作人员(功能 pod),均匀分布在三个小型 VM 上:

而另一个执行日志,它只使用一个工作人员(一个函数 pod):

为什么使用多个功能 pod 只能取得稍微好一点的结果?任何人都可以提出一种方法来验证使用多个工人实际上比使用单个工人更好,使用这个或相关设置?

0 投票
0 回答
36 浏览

kubernetes - 所以我试图在基于arm架构的openfaas上部署一个功能,但我失败了。有人能告诉我如何解决吗?

我的kubernetes是基于arm的,用kubernetes1.22.4

我的 faas-cli 命令:

响应代码:

那么有人可以告诉我在openfaas中使用arm构建功能的正确方法,为什么会发生这种情况,我做错了什么吗?

0 投票
1 回答
41 浏览

gitlab - 我们可以检测并获取 gitlab CI/CD 中更改的特定目录吗?

我是一个初学者,学习 gitlab CI/CD 并做一些与之相关的项目。我在使用 OpenFaaS 构建大量函数时遇到问题。我想使用 CI/CD 自动构建有更新的函数,其余函数没有,但我不知道如何获取特定文件夹或目录的名称在我的源代码中更改以构建相应的功能。

所以我想知道我们是否有办法在 Gitlab CI/CD 中更改特定目录的名称?或者其他工具 CI/CD 可以做到这一点?

0 投票
1 回答
34 浏览

kubernetes - Kubernetes:每个副本一个节点

我在 Kubernetes 集群(在 OpenFaaS 上运行)上部署了一个 CPU 密集型无服务器功能。我想要实现的是,每当调用我的函数时,我的集群中都会启动一个新节点来执行该进程,因为在给定时间可能会执行多个进程。到目前为止,我已经创建了一个 HPA,设置为 CPU 利用率的 70%:

我还在部署中添加了一条podAntiAffinity规则,确保在给定节点上只部署一个副本:

部署还具有resource配置设置:

到目前为止,我能够启动新节点,并在每个节点上部署我的功能副本。期望的结果是每个节点执行彼此隔离的无服务器功能。例如:

相反,我看到的是Node 1使用 parameter 执行函数A,然后开始使用 parameter 执行函数B。CPU 利用率超过 70% 后,Node 2启动并开始多次执行我的函数,使用参数AB.

我想要的是仅使用参数执行我的函数,仅Node 1使用参数执行我的函数,等等。ANode 2B

有没有办法实现上述目标?

0 投票
0 回答
19 浏览

rancher - OpenFaas 和 K3s 更改访问 URL

我有一个有点简单而且愚蠢的问题,我目前无法解决或知道如何解决它。

小背景故事:我有一个带有独立 Rancher 和额外 4 个节点的 k3s 集群,以及作为存储提供者的 longhorn,它的工作就像一个魅力。现在我已经部署了 OpenFaas,它也可以按预期工作。

随着功能的增加,我正在考虑通过 URL 路径来区分它。我知道我可以为每个运行该函数的容器创建一个入口,但我使用的端点是 openfaas 外部网关,它按预期工作。

我可以通过 URL https://[DNS-URL]/function/foo 访问所有功能

有什么简单的方法可以创建一个像 https://DNS-URL/x/foo https://DNS-URL/y/foo 这样的 URL

Ingress 控制器目前是 Traefik,因为它随 k3s 和 Rancher 一起提供。

我还阅读了OpenFaaS 功能的 Post Change 端点。但我可能有点愚蠢或没有正确理解它。

如果有人能告诉我正确的道路,我会很高兴。

0 投票
1 回答
55 浏览

java - 当被 openfaas 服务调用时,连接到 Kafka 不起作用

不使用 openfaas,通过 Java 正常连接到 Kafka。(成功的)

当被 openfaas 服务调用时,连接到 Kafka 不起作用。

当运行一个由 openfaas 创建的作为服务的函数时,它无法连接到 Kafka。(Kafka 在 Docker 上运行