中文 | English
FogCloud 是一个一站式云原生物联网平台。
- 安装 kubernetes 1.19+
- 安装并设置 kubectl 1.19+
- 安装 helm 3+
helm repo add fogcloud-charts https://fogcloud-io.github.io/fogcloud-charts
helm repo update
helm pull fogcloud-charts/fogcloud --untar
helm pull fogcloud-charts/fission-all --untar
运行后在当前目录会生成fogcloud-charts文件夹
- 拷贝fogcloud-charts目录的values.yaml文件,并命名为myvalues.yaml
- 编辑myvalues.yaml文件,参考配置说明
- 安装fission
helm install fission ./fission-all -n fission
- 安装emqx-operator
helm upgrade --install emqx-operator ./operator/emqx-operator -n emqx-operator --create-namespace
- 安装fogcloud-charts
export NAMESPACE_NAME=fogcloud
export RELEASE_NAME=fogcloud
kubectl create namespace ${NAMESPACE_NAME}
kubectl apply -f ./fogcloud/operator/rabbitmq-cluster-operator.yaml
helm install -f myvalues.yaml ${RELEASE_NAME} -n ${NAMESPACE_NAME} ./fogcloud
- 升级fogcloud-charts
helm upgrade -f myvalues.yaml ${RELEASE_NAME} -n ${NAMESPACE_NAME} ./fogcloud
helm uninstall ${RELEASE_NAME} -n ${NAMESPACE_NAME}
helm uninstall fission -n fission
kubectl delete -f ./fogcloud/operator/rabbitmq-cluster-operator.yaml
helm uninstall emqx-operator -n emqx-operator
注意:默认启用了helm的资源保留,卸载时不会释放persistent volume资源;
配置项 | 说明 | 默认值 |
---|---|---|
environment |
配置文件的环境 | production |
imagePullPolicy |
镜像拉取策略 | Always |
k8sApiServer |
k8s server api地址,用来创建k8s StatefulSet资源;可以通过kubectl config view 获取 |
https://localhost:6443 |
fissionEnabled |
是否启用了云函数功能 | false |
cloudGatewayEnabled |
是否启用云网关功能 | true |
tdengineEnabled |
是否启用tdengine历史数据存储功能 | true |
telemetryEnabled |
是否启用遥测功能 | true |
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 |
是否启用ingress tls | false |
expose.tls.cert.api.certSource |
api服务证书的来源:file , auto 或none ;1)file :使用证书文件,直接将*.key和*.crt文件放入fogcloud-charts/config/cert/api目录下;2)auto :使用cert-manager生成免费证书,需要保证设置的域名可用;3)none :不为服务入口配置证书 |
none |
expose.tls.cert.api.secretName |
api服务所用证书对应的k8s secret资源名 | fogcloud-api |
expose.tls.cert.api.dnsName |
当expose.tls.cert.api.certSource =auto 时,用于cert-manage生成x509证书 |
fogcloud-api |
expose.tls.cert.webAdmin.certSource |
web服务证书的来源:file , auto 或none ;1)file :使用证书文件,直接将*.key和*.crt文件放入fogcloud-charts/config/cert/api目录下;2)auto :使用cert-manager生成免费证书,需要保证设置的域名可用;3)none :不为服务入口配置证书 |
none |
expose.tls.cert.webAdmin.secretName |
web服务所用证书对应的k8s secret资源名 | fogcloud-web |
expose.tls.cert.webAdmin.dnsName |
当expose.tls.cert.webAdmin.certSource =auto 时,用于cert-manage生成x509证书 |
fogcloud-api |
expose.Ingress |
expose.type 设置为Ingress时才需要设置 |
|
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 |
secret | ||
secret.imageCredentials |
配置私有镜像仓库源 | |
secret.imageCredentials[].registry |
私有镜像仓库地址 | "" |
secret.imageCredentials[].name |
k8s dockerconfigjson secret名称 | "" |
secret.imageCredentials[].username |
私有镜像仓库用户名 | "" |
secret.imageCredentials[].password |
私有镜像仓库密码 | "" |
storageClassName |
local-path |
|
fogcloud | fogcloud-core服务相关配置 | |
fogcloud.config |
fogcloud-core配置设置,参考configs/fogcloud-core/fogcloud.example.yaml 配置文件 |
{} |
fogcloud.restartPolicy |
pod重启策略:Always |
Always |
fogcloud.image |
镜像地址 | ghcr.io/fogcloud-io/fogcloud |
fogcloud.imageTag |
镜像版本 | v4.13.0 |
fogcloud.replicas |
deployment复制节点数量 | 3 |
fogcloud.strategy.type |
应用更新策略:RollingUpdate ,Recreate ;1)RollingUpdate 滚动更新;2)Recreate 重启更新 |
RollingUpdate |
fogcloud.strategy.rollingUpdate.maxSurge |
应用更新时最大新版本pod新增数量比例 | 50% |
fogcloud.strategy.rollingUpdate.maxUnavailable |
应用更新时的最大不可用pod数量 | 0 |
fogcloudWeb | fogcloud-web服务相关配置 | |
fogcloudWeb.restartPolicy |
pod重启策略:Always |
Always |
fogcloudWeb.image |
镜像地址 | ghcr.io/fogcloud-io/fogcloud |
fogcloudWeb.imageTag |
镜像版本 | v4.13.0 |
fogcloudWeb.replicas |
deployment复制节点数量 | 3 |
fogcloudWeb.envVars |
fogcloud-web环境变量 | [{"name":"MAP_CONFIG","value": "china"},{"name":"DEPLOYMENT_CONFIG", "value":"public"},{"name":"GATEWAY_CLOUD_STATUS","value":"true"},{"name":"GLOB_APPLIANCE_STATUS","value":"true"},{"name":"GLOB_TOPIC_PREFIX","value":"fogcloud"}] |
fogcloudWeb.strategy.type |
应用更新策略:RollingUpdate ,Recreate ;1)RollingUpdate 滚动更新;2)Recreate 重启更新 |
RollingUpdate |
fogcloudWeb.strategy.rollingUpdate.maxSurge |
应用更新时最大新版本pod新增数量比例 | 50% |
fogcloudWeb.strategy.rollingUpdate.maxUnavailable |
应用更新时的最大不可用pod数量 | 0 |
faasbuilder | ||
faasbuilder.config |
faasbuilder相关配置,参考configs/faasbuilder/faasbuilder.yaml 配置文件 |
{} |
faasbuilder.createKubeconfigWithFile |
使用文件创建kubeconfig 对象,用于创建云函数;若启用可将kubeconfig文件放到fogcloud/configs/kubeconfig 目录下,并删除该目录的kubeconfig-demo文件 |
false |
mqttBroker | ||
mqttBroker.type |
mqtt-broker创建方式:internal ,external ;1)internal :使用helm自动创建;2)external :使用外部的mqtt-broker |
internal |
mqttBroker.internal.type |
mqtt-broker类型选择,默认emqx ,不建议修改 |
emqx |
mqttBroker.internal.image |
mqtt-broker镜像 | emqx/emqx |
mqttBroker.internal.imageTag |
mqtt-broker镜像版本 | 4.2.8 |
mqttBroker.internal.persistence |
||
mqttBroker.internal.persistence.pvcExisted |
是否使用已存在的pvc | false |
mqttBroker.internal.persistence.pvc |
pvc名称 | emqx-pvc |
mqttBroker.internal.persistence.storageClassName |
pvc绑定的stogrageClassName |
local-path |
mqttBroker.internal.nodeSelector.enabled |
是否启用pod节点选择 | false |
mqttBroker.internal.nodeSelector.key |
k8s节点名 | |
mqttBroker.internal.tls.enabled |
mqtt应用是否启用tls | |
mqttBroker.internal.tls.createWithCertFile |
是否使用证书文件创建mqtt应用的sercret对象,启用mqttBroker.internal.tls时有效;若为true,可将*.crt(证书), *.key(密钥)文件放到fogcloud-charts/configs/cert/mqtt目录下 | |
rabbitmq | ||
rabbitmq.type |
rabbitmq创建方式:internal ,external ;1)internal :使用helm自动创建;2)external :使用外部的rabbitmq |
internal |
rabbitmq.internal.tls.enabled |
rabbitmq是否启用tls | |
rabbitmq.internal.tls.createWithCertFile |
是否使用证书文件创建rabbitmq的sercret对象,启用rabbitmq.tls时有效;若为true,可将*.crt(证书), *.key(密钥)文件放到fogcloud/configs/cert/amqp 目录下,并删除该目录下的示例tls.key ,tls.crt 文件 |
|
postgres | ||
postgres.type |
如果使用外部的postgres ,设置为external |
internal |
mongodb | ||
mongodb.type |
如果使用外部的mongodb ,设置为external |
internal |
redis | ||
redis.type |
如果使用外部的redis ,设置为external |
internal |
etcd | ||
etcd.type |
如果使用外部的etcd ,设置为external |
internal |
minio | ||
minio.type |
如果使用外部的minio ,设置为external |
internal |