简介
之前我说过在swarm上安装过openfaas,现在树莓派安装上了k3s,所以openfaas也要换地方了,在kubernetes上安装openfaas有三种方式
- 使用k3sup安装
- helm部署
- kubectl 上手动使用yaml文件部署
我使用的是yaml文件部署
部署openfaas
首先clone openfaas项目
git clone https://github.com/openfaas/faas-netes
cd faas-netes
创建openfaas的namespace
kubectl apply -f namespaces.yml
- openfaas 这个命名空间是openfaas的
- openfaas-fn 是openfass上运行的各种函数的
创建网关密码
PASSWORD=$(head -c 12 /dev/urandom | shasum| cut -d' ' -f1)
kubectl -n openfaas create secret generic basic-auth \
--from-literal=basic-auth-user=admin \
--from-literal=basic-auth-password="$PASSWORD"
最后部署openfaas
cd yaml_armhf
把上面这个目录里面的yaml文件全部部署了
一些小的修改
默认openfaas的gateway是使用nodeport形式去对外暴露端口的,为了达到入口统一,我决定写个ingress,让openfaas的gateway放上我们集群的traefik
修改我们刚才部署的其中一个yaml文件
kubectl delete -f gateway-external-svc.yml
vim gateway-external-svc.yml
apiVersion: v1
kind: Service
metadata:
labels:
app: openfaas
component: gateway
name: gateway-external
namespace: "openfaas"
spec:
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: gateway
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: openfaas
namespace: openfaas
name: openfaas-ingress
spec:
rules:
- host: openfaas.bboysoul.com
http:
paths:
- path: /
backend:
serviceName: gateway-external
servicePort: http
部署
kubectl apply -f gateway-external-svc.yml
之后就可以在traefik的界面上查看openfaas是否存在了
最后为了验证,你可以部署一个nodeinfo函数来展示成果
欢迎关注我的博客www.bboy.app
Have Fun