# 系统部署

使用 helm 部署 FogEdge

# 1 配置要求

# 架构

  • x86_64
  • armhf
  • arm64/aarch64

# 操作系统

支持大多数现代 Linux 系统

# 硬件

spec

最低

CPU

1 核

RAM

1GB

# 镜像地址

registry.cn-shanghai.aliyuncs.com/fogcloud/fogcore:latest
registry.cn-shanghai.aliyuncs.com/fogcloud/fogagent:latest
registry.cn-shanghai.aliyuncs.com/fogcloud/fogevent:latest
registry.cn-shanghai.aliyuncs.com/fogcloud/mqtt-webhook

# 2 安装前准备

# 3 获取 chart

helm repo add fogedge-charts https://fogcloud-io.github.io/fogedge-charts
helm repo update
helm pull fogedge-charts/fogedge --untar

运行后在当前目录会生成fogedge-charts文件夹

# 4 安装

  1. 拷贝fogedge-charts目录的values.yaml文件,并命名为myvalues.yaml

  2. 编辑myvalues.yaml文件,参考配置说明

  3. 安装 fogedge-charts

export NAMESPACE_NAME=fogedge
export RELEASE_NAME=fogedge
kubectl create namespace ${NAMESPACE_NAME}
helm install -f myvalues.yaml ${RELEASE_NAME} -n ${NAMESPACE_NAME} ./fogedge
  1. 升级 fogedge-charts
helm upgrade -f myvalues.yaml ${RELEASE_NAME} -n ${NAMESPACE_NAME} ./fogedge

# 5 卸载

helm uninstall ${RELEASE_NAME} -n ${NAMESPACE_NAME}

注意:默认启用了 helm 的资源保留,卸载时不会释放 persistent volume 资源;

# 附录

# 安装参数说明

配置项

说明

默认值

imagePullPolicy

镜像拉取策略

Always

expose

expose.type

如何暴露服务:Ingress

ClusterIP

NodePort

LoadBalancer

,其他值将被忽略,服务的创建将被跳过。

ClusterIP

expose.insecureOSS

不安全的 oss 下载

true

expose.hosts.api

api 服务域名,用于前端服务访问后端 api

localhost

expose.hosts.mqtt

mqtt 服务域名,用于前端服务访问 mqtt-websocket 服务

localhost

expose.tls.enabled

是否启用 HTTP 接口 tls

false

expose.tls.cert.certSource

api 服务证书的来源:auto

manual

;1)auto

:生成自签名证书;2)manual

:手动设置证书

auto

expose.tls.cert.secretName

api 服务所用证书对应的 k8s secret 资源名

fogedge-tls

expose.tls.cert.dnsName

expose.tls.cert.certSource

=auto

时,用于生成 x509 证书

["fogcore", "mqtt-broker", "localhost"]

expose.tls.cert.ipTables

expose.tls.cert.certSource

=auto

时,用于生成 x509 证书

["127.0.0.1"]

expose.tls.cert.ca

expose.tls.cert.certSource

=manual

时可用,用于设置 ca 证书

expose.Ingress.className

ingress class 资源名

traefik

expose.Ingress.controller

ingress controller 类型

traefik.io/ingress-controller

expose.Ingress.annotations

ingress 注释,可以用来设置 ingress 部分参数

{}

expose.Ingress.hosts.webAdmin

web 服务域名,用于 ingress 路由

localhost

expose.Ingress.hosts.api

api 服务域名,用于 ingress 路由

localhost

expose.NodePort

expose.NodePort.externalTrafficPolicy

流量策略:Cluster

Local

;1)Cluster

:流量可以转发到其他 k8s 节点的 pod,2)Local

:流量只转发给本机的 pod

Local

expose.NodePort.ports.webAdmin.httpPort

web 服务的 NodePort 端口,可用于外网暴露 web 服务

8888

expose.NodePort.ports.api.httpPort

api 服务的 NodePort 端口,可用于外网暴露 api 服务

8000

expose.LoadBalancer

expose.LoadBalancer.externalTrafficPolicy

流量策略:Cluster

Local

;1)Cluster

:流量可以转发到其他 k8s 节点的 pod,2)Local

:流量只转发给本机的 pod

Local

expose.LoadBalancer.ports.webAdmin.healthCheckNodePort

健康检查端口,用于外部 slb 检测 web 服务是否正常运行

8880

expose.LoadBalancer.ports.api.healthCheckNodePort

健康检查端口,用于外部 slb 检测 api 服务是否正常运行

8880

imagePullSecrets

imagePullSecrets

配置私有镜像仓库源

imagePullSecrets[].registry

私有镜像仓库地址

""

imagePullSecrets[].name

k8s dockerconfigjson secret 名称

""

imagePullSecrets[].username

私有镜像仓库用户名

""

imagePullSecrets[].password

私有镜像仓库密码

""

storageClassName

local-path

fogcore

api 服务相关配置

fogcore.restartPolicy

pod 重启策略:Always

Always

fogcore.image

镜像地址

ghcr.io/fogcloud-io/fogcloud

fogcore.replicas

deployment 复制节点数量

1

fogcore.strategy.type

应用更新策略:RollingUpdate

Recreate

;1)RollingUpdate

滚动更新;2)Recreate

重启更新

RollingUpdate

fogcore.strategy.rollingUpdate.maxSurge

应用更新时最大新版本 pod 新增数量比例

25%

fogcore.strategy.rollingUpdate.maxUnavailable

应用更新时的最大不可用 pod 数量

25%

mqttBroker

mqttBroker.type

mqtt-broker 类型:nanomq

nanomq

mqttBroker.image

mqtt-broker 镜像

emqx/nanomq:0.18.2-slim

mqttBroker.persistence

mqttBroker.persistence.pvcExisted

是否使用已存在的 pvc

false

mqttBroker.persistence.pvc

pvc 名称

emqx-pvc

mqttBroker.persistence.storageClassName

pvc 绑定的stogrageClassName

local-path

mqttBroker.nodeSelector.enabled

是否启用 pod 节点选择

false

mqttBroker.nodeSelector.key

k8s 节点名

mqttBroker.tls.enabled

mqtt 应用是否启用 tls

mqttBroker.tls.createWithCertFile

是否使用证书文件创建 mqtt 应用的 sercret 对象,启用 mqttBroker.internal.tls 时有效;若为 true,可将.crt(证书), .key(密钥)文件放到 fogcloud-charts/configs/cert/mqtt 目录下

更新时间: 2024/7/31 14:20:29