无服务器计算环境OPENFAAS搭建

准备

  • 创建角色和授权
kubectl create clusterrolebinding "cluster-admin-faas" \
  --clusterrole=cluster-admin \
  --user="cluster-admin-faas"
  • 分别为FAAS核心服务和函数创建名字空间
kubectl apply -f https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml
  • 创建凭证
# generate a random password
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"
  • 在本地helm仓库增加openfaas
helm repo add openfaas https://openfaas.github.io/faas-netes/
"openfaas" has been added to your repositories

开始安装

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

默认通过NodePorts方式访问openfaas控制台

kubectl -n openfaas get svc -o wide |grep external
gateway-external   NodePort    10.105.222.28    <none>        8080:31112/TCP   91m   app=gateway

export OPENFAAS_URL=http://<pod-node-ip>:31112
curl OPENFAAS_URL
USERNAME=$(kubectl get secrets basic-auth -n openfaas -o yaml | grep basic-auth-user)
PASSWD=$(kubectl get secrets basic-auth -n openfaas -o yaml | grep basic-auth-password)
PASSWD=$(echo '$PASSWD' | base64 --decode)

验证安装结果

  • 通过浏览器访问openfaas
curl http://<pod-node-ip>:31112

输入上面的用户名和密码进入openfaas控制台

  • 安装openfaas客户端
curl -sSL https://cli.openfaas.com | sh
echo -n $PASSWORD | faas-cli login -g $OPENFAAS_URL -u admin --password-stdin

Removing the OpenFaaS

All control plane components can be cleaned up with helm:

helm delete --purge openfaas
kubectl delete namespace/openfaas
kubectl delete namespace/openfaas-fn
Avatar
Wu Bigo

多年的公有云,混合云,PAAS,服务网格建设经验.管理超过50P的数据仓库和基于HADOOP生态的大数据分析平台

comments powered by Disqus