docker - 为什么开源无服务器框架(如 OpenWhisk)需要编排器(如 Kubernetes)

标签 docker kubernetes serverless openwhisk openfaas

我目前正在研究像 AWS 这样的私有(private)云,并且我正在使用 AWS lambda 进行无服务器。这就像框架一样非常酷,这就是我进行一些研究以寻找开源替代品的原因。我提出了一些名称:OpenWhisk、OpenFaas。
这些框架使用 Docker 来监督执行代码的容器。
我对这些技术很陌生,所以我在某些方面仍然感到困惑。

这是我的观点:我不明白这些框架是否需要与像 Kubernetes 这样的 orchestartor 一起使用。如果是,它如何与协调器一起工作?

如果您有一些信息、链接或文档,那就太好了!

非常感谢你。

最佳答案

OpenWhisk 实际上绕过 k8s 来调度运行用户功能的容器(在 OpenWhisk 中称为操作)。函数容器完全由调用者管理,调用者是 OpenWhisk 为处理函数而定制的编排器。

OpenWhisk 系统组件由 Kubernetes 管理。但是 Kubernetes 本身对于短命的函数容器来说通常太慢了,并且可能需要很多秒才能启动一个。对于可能执行几毫秒的函数来说,这是一个非启动器。 Kube 的设计初衷并不是为了高速处理数以万计的容器。

您可能还想看看 Knative,它相对较新,但与 Kubernetes 非常接近。

这里有 3 篇文章可能对您有所帮助:

  • 调用者在 OpenWhisk 中的作用:https://link.medium.com/MrhGj6RVrVhttps://link.medium.com/pifBTkQVrV
  • 无服务器合约提供了一些上下文来理解底层平台对用户功能的性能影响:https://link.medium.com/2EMzs0FVrV

  • 最后,值得注意的是,OpenWhisk 可以部署在裸机和虚拟机以及 Mesos DC/OS 或 Docker Compose 上,为您提供大量自定义部署选项。

    关于docker - 为什么开源无服务器框架(如 OpenWhisk)需要编排器(如 Kubernetes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55414633/

    相关文章:

    docker - Heroku 环境变量 $DATABASE_URL 和 $PORT 未在 dyno 中显示(heroku ps :exec)

    docker - SSH key 不断从 Google Compute Engine VM 中删除

    postgresql - 许多 Postgres 进程可以使用相同的数据目录运行吗?

    spring-boot - 带有两个jar文件的Docker容器,按需运行而不是作为入口点

    kubernetes - haproxy 作为 kube-apiserver 的负载均衡器

    Azure kubernetes - 安全 pod 访问资源

    node.js - 拒绝访问异常 : User is not authorized to perform dynamodb BatchWriteItem on resource: table

    http - 如何在 Serverless Lambda 中声明一个可选的 get 参数?

    javascript - AWS 无服务器端点问题

    nginx - 使用 Nginx 在 Docker 容器中部署带有路由器的 Angular2