在树莓派k3s上安装openfaas

简介

之前我说过在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)

1
2
3
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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函数来展示成果

欢迎关注Bboysoul的博客www.bboy.app

Have Fun

欢迎关注我的其它发布渠道