基于 OpenFaaS 的 Kubernetes 无服务器函数
"OpenFaaS 社区版 (CE) 授权用于个人探索和爱好者使用。商业概念验证 (PoC) 有 60 天限制。商业和生产工作负载需要 OpenFaaS Standard 或 OpenFaaS for Enterprises。"
faas-netes 是一个 https://github.com/openfaas/faas-provider%EF%BC%8C%E5%AE%83%E4%B8%BA https://github.com/openfaas/faas 启用了 Kubernetes 支持。它是更大技术栈的一部分,为 Kubernetes 带来了与云无关的无服务器体验。本仓库托管该提供程序的社区版 (CE),OpenFaaS Standard 和 OpenFaaS for Enterprises 使用单独的代码库和许可。
现有的 REST API、CLI 和 UI 完全兼容。使用 OpenFaaS Standard/Enterprise 时,您可以选择 operator 模式,以便通过 kubectl 和 CustomResource 管理函数。
您可以将 OpenFaaS 部署到任何 Kubernetes 服务——无论是托管服务还是本地服务,包括 OpenShift。您将在文档中找到任何特定说明和其他链接。
https://github.com/openfaas/faas 是一个使用 Docker 和 Kubernetes 构建无服务器函数的框架,它对指标提供一流支持。任何进程都可以打包为函数,使您能够无需重复编写样板代码即可处理各种 Web 事件。
图示:OpenFaaS 概念架构
其他生态系统特性:
社区:
商业选项:
了解更多:OpenFaaS Standard 和 For Enterprises
本文档的其余部分专门介绍控制器的技术和操作信息。
faas-netes 提供两种模式,operator 模式支持生产环境使用。controller 模式是遗留模式,将在未来版本中移除。我们无法为使用 controller 模式的新客户提供支持,且其功能可能与 operator 模式不完全一致。
controller 模式是 OpenFaaS 社区版 (CE) 的唯一选项。
另见:如何以及为何应升级到函数自定义资源定义 (CRD)
faas-netes 可通过环境变量配置,但完整选项集请参见 helm 图表。
| 选项 | 用途 |
|---|---|
httpProbe | 布尔值 - 为函数就绪和存活检查使用 HTTP 探针类型。默认值:true |
write_timeout | 从函数写入响应体的 HTTP 超时时间(秒)。默认值:60s |
read_timeout | 从客户端调用者读取有效负载的 HTTP 超时时间(秒)。默认值:60s |
image_pull_policy | 已部署函数的镜像拉取策略(Always、IfNotPresent、Never)。默认值:Always |
gateway.resources | CPU/内存资源请求/限制(内存:120Mi,CPU:50m) |
faasnetes.resources | CPU/内存资源请求/限制(内存:120Mi,CPU:50m) |
operator.resources | CPU/内存资源请求/限制(内存:120Mi,CPU:50m) |
queueWorker.resources | CPU/内存资源请求/限制(内存:120Mi,CPU:50m) |
prometheus.resources | CPU/内存资源请求/限制(内存:512Mi) |
alertmanager.resources | CPU/内存资源请求/限制(内存:25Mi) |
nats.resources | CPU/内存资源请求/限制(内存:120Mi) |
basicAuthPlugin.resources | CPU/内存资源请求/限制(内存:50Mi,CPU:20m) |
函数的就绪检查假设您使用我们的函数监控程序(function watchdog),该程序会在容器内的默认 "tempdir" 中写入 .lock 文件。要查看实际效果,您可以使用 kubectl exec 删除运行中 Pod 内的 .lock 文件,函数将被重新调度。
默认情况下,所有 OpenFaaS 函数和服务都部署在 openfaas 和 openfaas-fn 命名空间中。要更改命名空间,请使用 helm 图表。
默认情况下,已部署的函数将使用 Always 的 imagePullPolicy,确保使用静态镜像标签的函数在更新时被刷新。
如果不需要此行为,OpenFaaS Pro 客户可以将 image_pull_policy 环境变量设置为其他值。IfNotPresent 在使用 minikube 本地开发时特别有用。在这种情况下,您可以将本地环境设置为使用 minikube 的 docker,以便 faas-cli build 直接构建到 minikube 的镜像存储中。在此工作流中无需执行 faas-cli push——使用 faas-cli build 然后 faas-cli deploy 即可。
[!NOTE] 当设置为
Never时,仅本地(或已拉取的)镜像可用。当设置为IfNotPresent时,使用静态镜像标签的函数部署可能不会更新。
faas-netes 维护者努力支持尽可能多的 Kubernetes 版本,目前兼容 Kubernetes 1.19 及更高版本。文档中也提供了 OpenShift 的相关说明。
您可以使用以下命令快速创建标准开发环境:
make start-kind
这将使用 https://github.com/kubernetes-sigs/kind 创建单节点集群,并通过 Helm 图表安装最新版本的 OpenFaaS。
有关工作流、流程和其他提示的更多详细信息,请查看 CONTRIBUTING.md 中的贡献者指南。
详见 LICENSE 文件。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务