K8s & K3s 集群中 OpenFaaS 部署手册

OpenFaaS 简介

OpenFaaS是一个构建无服务器功能的框架,它拥有对指标的第一个类支持。任何流程都可以打包为一个功能,使你能够使用一系列web事件,而无需重复的样板化编码,让无服务器函数变得简单;

1 技术亮点

image
  • ·通过UI入口和单击安装轻松使用

  • ·为Linux或Windows的任何语言编写函数,以docker/oci图像格式编写包

  • ·便携式——在现有的硬件或公共/私有云上运行——Kubernetes或Docker集群

  • ·用于模板和定义函数的YAML格式的CLI

  • ·Auto-scales随着需求的增加

2 OpenFaaS概述

image
  • 监督功能
    1 你可以通过添加函数看门狗 (一个小型的Golang HTTP服务)把任何一个Docker镜像变成无服务器函数。
    2 函数看门狗是允许HTTP请求通过STDIN转发到目标进程的入口点。响应会从你应用写入STDOUT返回给调用者。

  • 网关
    1 API网关为您的函数提供了一个外部路由,并通过Prometheus收集云的原生数据。
    2 您的API网关将根据需求来扩展功能,通过更改Docker Swarm或Kubernetes API中的服务副本数。
    3 UI允许您在浏览器中调用函数,并根据需要创建新的函数。

  • CLI
    Docker容器中的任何容器或流程都可以是FaaS中的一个无服务器功能。通过使用FaaS CLI,您可以部署您的函数,或者从诸如Node.js或Python这样的模板中快速创建新的函数。

3 函数 Demo

你可以通过 使用FaaS-CLI和其内置的模板创建新函数,也可以在Docker中使用Windows或Linux的二进制文件。

  • Python示例(handler.py)
import requests


def handle(req):
    r =  requests.get(req, timeout = 1)
    print(req +" => " + str(r.status_code)
)
  • Node.js示例(handler.js)
"use strict"


module.exports = (callback, context) => {
    callback(null, {"message": "You said: " + context})
}

OpenFaaS 部署

OpenFaaS 是一个使用 Docker 构建 Serverless 功能的框架,它拥有对指标的一级支持。任何流程都可以打包为一个函数,使你能够使用一系列 web 事件,而无需重复的样板化编码。


image

1 获取 OpenFaaS Charts 资源

下载 Kubernetes 的 OpenFaaS 驱动程序 faas-netes:

git clone https://github.com/openfaas/faas-netes && cd faas-netes
or 国内码云镜像:
git clone https://gitee.com/mirrors/faas-netes.git && cd faas-netes

2 创建 OpenFaaS 依赖的 namespace

kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml

3 增加 OpenFaaS helm chart

helm repo add openfaas https://openfaas.github.io/faas-netes/

4 OpenFaaS 部署拉起

helm repo update \
 && helm upgrade openfaas --install openfaas/openfaas \
    --namespace openfaas  \
    --set functionNamespace=openfaas-fn \
    --set generateBasicAuth=true

5 获取 password (账号: admin)

echo $(kubectl -n openfaas get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode)

// password
LnMqQfE5PVv

6 控制台登录

默认的提供 31112 端口,我们通命令 $(minikube ip) 获取内部 ip,通过 ip:31112 访问,输入账号和上面提供的密码:


image

Hello Function

下面开始写我们的第一个 serverless function。

1 安装 faas-cli

# 安装 faas-cli 来创建和发布一个 Function
curl -sL cli.openfaas.com | sudo sh
# mac 可以通过以下命令安装
brew install faas-cli

2 NodeJS 函数

cd /home/work/demo
faas-cli new hellofaas --lang node

整个项目结构如下:

.
├── handler.js
└── package.json

拓展阅读

无服务器(Serverless)架构的时候,到底是指什么呢?其实,无服务器架构并不是说不使用服务器了。恰恰相反,客户端-服务端模式仍然在其中发挥着重要的作用。
无服务器架构实际上指的是能够让开发者在不需要关心服务器上架、为操作系统打补丁、创建容器镜像这些工作的情况下,就能够完成编码、部署和创建应用这一整套流程的架构。

1 无服务器架构的三个重要意义

  • 一些缺乏开发经验的人员现在要参与到开发工作中来了。无服务器架构能够让他们尽量只学习必要的工作内容,把更多的时间放在更具创造性的开发工作中。
  • 开发者不再需要重复造轮子。运行和维护服务器、为操作系统打补丁、创建容器等这一系列工作,都可以由更专业的无服务器架构提供商来完成。
  • 最现实的一点是,如果不使用无服务器架构,那么在服务器管理方面,总需要有一个作最终决策的人。当服务器发生崩溃时,或是需要在服务器上执行某些操作时,总是需要这样一个统领全局的人来作出决策。因此最佳的方案是使用无服务器架构。

2 无服务器架构应用场景

无服务器架构是个好东西。但事实上,无服务器架构并不是万能的,在使用之前还需要考虑以下这些因素:

  • 成本
  • 使用范围
  • 时间
  • 控制方式
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,015评论 6 522
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,373评论 3 404
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,253评论 0 368
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,069评论 1 300
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,079评论 6 400
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,550评论 1 314
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,911评论 3 429
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,892评论 0 279
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,435评论 1 324
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,465评论 3 346
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,586评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,178评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,920评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,356评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,493评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,151评论 3 381
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,663评论 2 366

推荐阅读更多精彩内容