方法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完成