OpenFaaS 离线安装

以下是为生产环境设计的 ​​OpenFaaS 离线安装操作手册​​,请根据实际环境调整路径和配置:


一、离线环境准备工作

1.1 在外网环境下载所需资源

通过这个命令查看当前的这个版本

[zyp@aliyun ~]$ helm search repo openfaas
NAME CHART VERSION APP VERSION DESCRIPTION
openfaas/openfaas 14.2.104 OpenFaaS - Serverless Functions Made Simple
openfaas/cron-connector 0.6.12 Trigger OpenFaaS Functions with cron schedules
openfaas/federated-gateway 0.1.0 Federated Gateway for OpenFaaS service providers
openfaas/kafka-connector 0.7.12 Connect OpenFaaS functions to Kafka topics
openfaas/mqtt-connector 0.4.7 Connect OpenFaaS functions to MQTT topics
openfaas/nats-connector 0.3.2 Trigger OpenFaaS Functions from NATS Pub/Sub
openfaas/postgres-connector 0.1.2 Trigger OpenFaaS functions from PostgreSQL
openfaas/pro-builder 0.4.16 Build OpenFaaS functions via a REST API
openfaas/probuilder 0.2.0 Build OpenFaaS functions via a REST API
openfaas/queue-worker 0.2.13 Dedicated queue-worker for OpenFaaS using JetSt...
openfaas/rabbitmq-connector 0.0.4 Invoke OpenFaaS functions from RabbitMQ messages.
openfaas/sns-connector 0.1.3 Invoke functions from an AWS SNS messages.
openfaas/sqs-connector 0.2.7 Connect OpenFaaS functions to SQS topics

# 创建资源目录
mkdir -p openfaas-offline/{charts,images,yaml}
# 下载 Helm Chart
helm repo add openfaas https://openfaas.github.io/faas-netes/
helm pull openfaas/openfaas --version=10.0.10 -d openfaas-offline/charts/
# 下载 namespaces.yml wget https://raw.githubusercontent.com/openfaas/faas-netes/master/namespaces.yml -P openfaas-offline/yaml/
# 获取镜像列表(根据实际版本调整)
helm template openfaas-offline/charts/openfaas-*.tgz | grep "image:" | awk '{print $2}' | sort -u > openfaas-offline/images/image-list.txt
# 下载所有依赖镜像
while read img; do docker pull $img docker save $img > openfaas-offline/images/$(echo $img | tr '/' '_' | tr ':' '_').tar done < openfaas-offline/images/image-list.txt
 

1.2 传输资源到内网环境

将整个 openfaas-offline 目录通过以下方式传输到生产环境:

 
tar czvf openfaas-offline.tar.gz openfaas-offline # 使用U盘/内部文件服务器/跳板机等方式传输
 
 

二、内网环境部署步骤

2.1 加载镜像到本地仓库

 
# 解压资源
tar xzvf openfaas-offline.tar.gz
# 加载所有镜像 find openfaas-offline/images -name "*.tar" -exec docker load -i {} \;
# 如果使用私有仓库(如Harbor),推送到私有仓库
while read img; do new_img="your-registry.com/${img}" docker tag $img $new_img docker push $new_img done < openfaas-offline/images/image-list.txt
 
 

2.2 配置本地 Helm 仓库

 
# 创建本地 Helm 仓库 mkdir -p /opt/helm-repo cp openfaas-offline/charts/*.tgz /opt/helm-repo/ # 生成索引 helm repo index /opt/helm-repo/ # 添加本地仓库 helm repo add local-openfaas file:///opt/helm-repo
 
 

三、离线安装 OpenFaaS

3.1 修改后的安装脚本 (install-offline.sh)

 
bash
复制
#!/bin/bash
echo "开始离线安装 OpenFaaS"
# 创建命名空间
kubectl apply -f ./namespaces.yml
# 生成随机密码
PASSWORD=$(head -c 12 /dev/urandom | shasum| cut -d' ' -f1)

# 创建认证
Secret kubectl -n openfaas create secret generic basic-auth \
--from-literal=basic-auth-user=admin \
--from-literal=basic-auth-password="$PASSWORD"

# Helm 安装命令(关键修改点)
helm upgrade --install openfaas local-openfaas/openfaas \
--namespace openfaas \
--set basic_auth=true \
--set functionNamespace=openfaas-fn \
--set serviceType=LoadBalancer \
--set gateway.image=your-registry.com/openfaas/gateway:0.26.3 \ # 根据实际镜像地址修改
--set queueWorker.image=your-registry.com/openfaas/queue-worker:0.13.0 \
--wait
echo "安装完成!访问地址:http://$(kubectl get svc -n openfaas openfaas-gateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')"
 
 

3.2 执行安装

 
 
# 授权脚本
chmod +x install-offline.sh
# 运行安装
./install-offline.sh
 
 

四、验证安装

 
# 检查 Pod 状态
kubectl get pods -n openfaas
# 查看服务暴露 IP
kubectl get svc -n openfaas openfaas-gateway
# 测试访问
curl -u admin:$PASSWORD http://<GATEWAY_IP>:8080/system/functions
 
 

五、注意事项

  1. ​​镜像地址替换​​:如果使用了私有仓库,需要修改所有 --set image=... 参数指向私有仓库地址
  2. ​​版本一致性​​:确保下载的 Helm Chart 版本与镜像版本匹配
  3. ​​存储卷配置​​:生产环境建议添加持久化存储(添加 --set persistence.enabled=true
  4. ​​网络策略​​:若使用 NodePort 代替 LoadBalancer,修改 --set serviceType=NodePort
  5. ​​安全加固​​:建议在离线环境配置 TLS 证书

六、附录:离线环境所需最小资源清单

组件示例版本用途
openfaas/gateway 0.26.3 API 网关
openfaas/queue-worker 0.13.0 异步任务处理
prom/alertmanager v0.23.0 告警组件(可选)
nats-streaming 0.24.3 消息队列
faas-netes 10.0.10 Helm Chart 包

根据实际环境需求调整上述版本参数。

posted @ 2025-06-24 15:02  dididi崩了  阅读(36)  评论(0)    收藏  举报