文章目录
-
-
- 原理
-
- 技术简介
- 架构
- 结构分析
- 性能
-
- 性能表现
-
- 环境
- 对象
- 数据
- 生态圈
- 高级用法
-
- YAML
- 命名空间
- 工作流
-
- 函数调用
- 多级页面
- 权限
-
- API网关
-
- 内置基本身份验证
- 其他
- secret
- 函数
- Openfaas Cloud
-
- 原理
- 特点
- 实践
-
- 安装使用说明
-
- 环境
-
- 安装docker
- 安装k8s
- openfaas
-
- 安装
- 使用
- 定时样例
- 总结
-
- 特点
- 思考
-
原理
技术简介
OpenFaaS是golang编写的一个使用Docker和Kubernetes构建的serveless框架
和Fnproject 有点像,只是 Openfaas 并不是直接抓取容器的标准输出,而是写一个 Function Watchdog 作为容器的启动进程,暴露 http 服务,用于和调度系统交互,然后直接调用进程运行 Function 获取输出。
Prometheus:监控系统报警框架
watchdog:https://news.ycombinator.com/item?id=15116834
Swarm:提供 Docker 容器集群服务
架构
当Gateway作为一个入口,当CLI或者web页面发来要部署或者调用一个函数的时候,Gateway会将请求转发给Provider,同时会将监控指标发给Prometheus。AlterManager会根据需求,调用API自动伸缩函数。
结构分析
- 基本的安全验证
- 和函数相关的代理转发
- 同步函数
- 列出函数
- 部署函数
- 删除函数
- 更新函数
- 同步函数
- 异步函数
- Prometheus的监控
- ui
- 自动伸缩
- 根据每秒请求数来做伸缩
- 最小/最大副本数 通过向函数添加标签, 可以在部署时设置最小 (初始) 和最大副本数。
- 通过内存和CPU的使用量。
性能
社区活跃度
Dec 18, 2016 – Dec 27, 2018
https://kenfdev.o6s.io/github-stats-page#/
1.社区活动
开发工作量平均每周大约5个commits
2.社区规模
github核心开发人员3名
3.社区表现
issues的平均close周期比较长
5.社区多样性
Pony factor:1
性能表现
环境
非生产环境
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 42
Model name: Intel Xeon E312xx (Sandy Bridge)
Stepping: 1
CPU MHz: 1999.999
BogoMIPS: 3999.99
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 4096K
NUMA node0 CPU(s): 0,1
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
对象
http://192.168.44.204:8080/function/figlet 0.016
http://192.168.44.204:8080/function/nodeinfo 0.2
http://192.168.44.204:8080/function/echoit 0.02
数据
单任务