深入玩转 Openfaas 之安装部署

摘要

边缘计算中 k3s 提供了一种基础设施架构的可能,单纯的容器化或许远远不能够达到万物互联沟通有无的目的,随着云计算的发展步入应用深水区,更低的资源能耗,更便捷的访问请求,更加灵活的业务实现在边缘计算将会得到切实可行的验证;本文基于 Openfaas 的安装部署展开,通过逐步的拆解 openfaas 架构组件的作用进而更加全面的了解边缘计算的设计思想。

关键词: openfaas;  k3s; 边缘计算;

Openfaas 简介

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

  • 监督功能(watchdog)
    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这样的模板中快速创建新的函数。

安装部署

第一步: 创建 OpenFaaS 依赖的 namespace

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

第二步: 增加 OpenFaaS helm chart

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

第三步: OpenFaaS 部署拉起

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

备注:

functionNamespace 对应的应用部署的命名空间,规范限制的目的;

generateBasicAuth 开启权限认证,如果用户想要访问或者请求需要基于账户密码信息访问;

faasnetes.imagePullPolicy:  openfaas 部署时的镜像拉取规则,方便开发调试的前提下尽可能本地镜像优先的策略;

鉴权登陆

编辑 /root/.bashrc 设置系统环境变量:

# 设置系统环境变量
vi  /root/.bashrc

# 默认变量配置
export OPENFAAS_URL=192.168.139.139:31112/ 
export OPENFAAS_TEMPLATE_URL=https://gitee.com/vpc123/templates-cn.git
备注: OPENFAAS_URL 属于 openfaas 的网关地址,这也是会注入到应用服务内的;OPENFAAS_TEMPLATE_URL 这个是函数模板,可以自定义实现,因为网络的原因可以对模板进行改造开发;

获取 faas-cli 用于执行:

# openfaas 默认账户密码
user: admin
password: echo $(kubectl -n openfaas get secret basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode)

# download & login
curl https://cli.openfaas.com | sh
faas-cli login -u admin -p xxx

网关通过 nodeport 方式暴露 31112 端口进行服务访问:

常用指令

# 最新模板下载到本地
faas-cli template pull

# 查询 openfaas 的模板列表
faas-cli new --list

# 创建模板函数
# 执行以下命令即可创建函数,test是函数名,python是语言类型,vpc123是docker镜像名字的前缀
faas-cli new test --lang python -p vpc123

# 镜像构建
faas-cli build test.yaml

# 镜像推送
faas-cli push

# 应用部署
faas-cli deploy -f test.yaml

总结

桃之夭夭,灼灼其华;

posted @ 2023-02-04 15:00  流雨声  阅读(532)  评论(0编辑  收藏  举报