在树莓派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函数来展示成果

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

Have Fun