Skip to content

fogcloud-io/fogcloud-charts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fogcloud-charts

standard-readme compliant standard-readme compliant

中文 | English

FogCloud 是一个一站式云原生物联网平台。

安装前准备

获取chart

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文件夹

安装chart

  1. 拷贝fogcloud-charts目录的values.yaml文件,并命名为myvalues.yaml
  2. 编辑myvalues.yaml文件,参考配置说明
  3. 安装fission
helm install fission ./fission-all -n fission
  1. 安装emqx-operator
helm upgrade --install emqx-operator ./operator/emqx-operator -n emqx-operator --create-namespace
  1. 安装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
  1. 升级fogcloud-charts
helm upgrade -f myvalues.yaml ${RELEASE_NAME} -n ${NAMESPACE_NAME} ./fogcloud 

卸载chart

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 如何暴露服务:IngressClusterIPNodePortLoadBalancer,其他值将被忽略,服务的创建将被跳过。 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, autonone;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, autonone;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 流量策略:ClusterLocal;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 流量策略:ClusterLocal;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 应用更新策略:RollingUpdateRecreate;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 应用更新策略:RollingUpdateRecreate;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创建方式:internalexternal;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创建方式:internalexternal;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

使用许可

Apache 2.0 License.