# Serverless 框架OpenFaas部署流程


方法1:

1.前置条件

1.安装kubernetes
2.安装kubectl

2.安装OpenFaas

git clone https://github.com/openfaas/faas-netes
cd faas-netes
kubectl apply -f ./namespaces.yml

3.验证是否成功创建openfass, openfaas-fn两个namespaces

[root@node1 home] kubectl get namespaces
NAME              STATUS   AGE
default           Active   26h
kube-node-lease   Active   26h
kube-public       Active   26h
kube-system       Active   26h
openfaas          Active   26h
openfaas-fn       Active   26h

4.给openfaas创建密码(必须)

kubectl -n openfaas create secret generic basic-auth \
--from-literal=basic-auth-user=admin \
--from-literal=basic-auth-password=admin

5.安装openfaas所有组件

git clone https://github.com/openfaas/faas-netes
cd faas-netes
kubectl apply -f ./yaml/

6.验证是否安装成功

root@node1 home]$ kubectl get pod -n openfaas
NAME                                READY   STATUS    RESTARTS   AGE
alertmanager-667c74c9c9-zsx66       1/1     Running   0          27h
basic-auth-plugin-76899dc95-78qjc   1/1     Running   0          27h
faas-idler-86b55ffcbf-k4xkd         1/1     Running   0          27h
gateway-8549c458c9-h6l6z            2/2     Running   1          27h
nats-6b6d549b56-rvgv4               1/1     Running   0          27h
prometheus-b4cbb9bdc-2q8dg          1/1     Running   0          27h
queue-worker-554946dc65-gsvcp       1/1     Running   0          27h

7.下载faas-cli工具

https://github.com/openfaas/faas-cli/releases
cp faas-cli /usr/local/bin

8.登录docker hub (如果是hub拉镜像必须登录成功)或者使用本地仓库(前提构建本地仓库)

docker login -u username -p password

9.准备测试函数

mkdir -p /home/functions
cd /home/functions
faas-cli new --lang python hello-python

10.修改生成的handler.py实现自己的处理逻辑

11.登录openfass

export OPENFAAS_URL=http://127.0.0.1:31112
echo -n $PASSWORD | faas-cli login --password-stdin  // admin admin

12.构建

faas-cli build -f ./hello-python.yml
# 如果超时, 尝试restart docker

13.上传Docker Hub(可选)

faas-cli push -f ./hello-python.yml

14.部署

faas-cli deploy -f ./hello-python.yml

方法2(helm方式):

1.安装helm

参考链接:https://blog.csdn.net/bbwangj/article/details/81087911

2.Kubernetes 创建两个命名空间一个用于OpenFaas核心服务,一个用于功能

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

3.验证是否创建成功

kubectl get namespace
NAME              STATUS   AGE
default           Active   149m
kube-node-lease   Active   149m
kube-public       Active   149m
kube-system       Active   149m
openfaas          Active   25m
openfaas-fn       Active   25m

4.添加OpenFaas源

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

5.创建密码(必须)

kubectl -n openfaas create secret generic basic-auth \
--from-literal=basic-auth-user=admin \
--from-literal=basic-auth-password=admin

6.部署OpenFaas

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

7.设置OPENFAAS_URL

export OPENFAAS_URL=http://127.0.0.1:31112

8.登录并检查是否连通

echo -n $PASSWORD | faas-cli login -g $OPENFAAS_URL -u admin -p admin

9.测试

mkdir -p /home/functions
cd /home/functions
faas-cli new --lang python3  hello-python  // 生成hello-python.yml和hello-python文件夹

10.编辑hello-python/handler.py,自定义函数

11.编辑hello-python.yml文件

version: 1.0
provider:
  name: openfaas
  gateway: http://127.0.0.1:31112  // OPENFAAS_URL
functions:
  hello-python:
    lang: python
    handler: ./hello-python
    image: 127.0.0.1:5000/v2/hello-python:latest //docker hub 地址或者本地仓库地址,这里用的本地仓库

12.编译,上传,部署

faas-cli build -f ./hello-python.yml
faas-cli push -f ./hello-python.yml
faas-cli deploy -f ./hello-python.yml
或者使用快捷命令完成上面三步
faas-cli up -f hello-python.yml

13.OK完成


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM