部署和维护 / Helm 部署
本文档主要介绍如何通过 Helm 部署 DataFlux Func,Helm 目前只支持 GSE 版本,老版本可直接升级为 GSE 版本。
1. 系统及环境要求
安装 DataFlux Func 之前,请务必确认环境已经满足以下条件。
1.1 系统要求
运行 DataFlux Func 的集群需要满足以下条件:
- Kubernetes > 1.14
- Helm >= 3.0
- 网络带宽 >= 10Mbps
- 内存容量 >= 4GB
- CPU 核心数 >= 2
- 使用外部 MySQL 时,MySQL 版本必须为 5.7 以上,开启
innodb_large_prefix
参数,且数据库编码为utf8mb4
- 使用外部 Redis 时,Redis 版本必须为 5.0 以上,至少 1 GB 可用内存,非集群版
DataFlux Func 的存储尽量使用共享存储,hostPath 存在弊端
2. 命令行方式部署
2.1 获取集群存储类
执行命令:
Bash | |
---|---|
1 |
|
输出如下:
Text Only | |
---|---|
1 2 |
|
2.2 查看 Helm 版本
执行命令:
Bash | |
---|---|
1 |
|
2.3 执行安装
Bash | |
---|---|
1 2 3 |
|
{Release Name} 为 Helm 别名,{Namespace} 如果没有会被创建,{Storage Class} 为步骤一的存储类名称,{Host Name} 为 ingress 的域名,安装成功可以访问
Helm 部署默认会安装 MySQL 和 Redis。您也可以使用外部的 MySQL 和 Redis。详细部署方式见 charts 包中的 README 文档
2.4 验证安装
执行命令:
Bash | |
---|---|
1 |
|
STATUS 为 deployed 表示成功
也可以通过浏览器访问你所指定的 {Host Name}
2.5 初始化系统
浏览器访问设置的 ingress 域名,可以直接使用默认配置进行初始化 自定义你的配置,也可以默认保存和初始化数据库。
3. Rancher 可视化方式部署
3.1 部署前提条件
- 集群已注册 Rancher 容器管理平台
- Rancher 用户具有管理应用市场的权限
3.2 添加 Chart 仓库
登录 Rancher 平台,应用&应用市场 / Chart 仓库
, 创建仓库,仓库地址为 https://pubrepo.guance.com/chartrepo/func
3.3 配置和安装
选择「Charts
/ Func
」
点击安装
设置命名空间
设置存储
设置访问方式
3.4 验证安装
选择 应用&应用市场
-已安装的应用
3.5 初始化系统
步骤与「命令行方式部署 / 初始化系统」相同
4. Func 升级
4.1 获取 values 配置
执行命令:
Bash | |
---|---|
1 2 |
|
4.2 获取当前 Func 版本
执行命令:
Bash | |
---|---|
1 |
|
4.3 升级 Func
执行命令:
Bash | |
---|---|
1 2 3 |
|
4.4 验证升级结果
执行命令:
Bash | |
---|---|
1 |
|
5. 其他问题
5.1 浏览器返回 502
如果 Helm 状态显示 deployed
, 可以按照如下步骤进行排查:
检查 Ingress 是否创建成功
查看 ingress 信息:
Bash | |
---|---|
1 |
|
检查 Pod 状态
一般为 pvc
创建失败引起,请根据实际情况解决问题
查看 Pod 状态:
Bash | |
---|---|
1 |
|
输出如下:
Text Only | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
查看 PVC 状态:
Bash | |
---|---|
1 |
|
输出如下:
Text Only | |
---|---|
1 2 3 |
|
5.2 产生「cannot re-use a name that is still in use」错误
如果部署发现「cannot re-use a name that is still in use」的错误,说明当前 namespace 已经有了 {Release Name}
,。
你可以将旧的 {Release Name}
删除后安装,也可以更换 {Release Name}
。
5.3 产生「连接到连接器超时」错误
如果创建连接器发现「连接到连接器超时」的错误,请重启所有与 func 相关的 pod。
以下为 func 相关的 deployment:
- func-server
- func-worker-0
- func-worker-1-6
- func-worker-7
- func-worker-8-9
- func-worker-beat
func-server 的 func 为 {Release Name},会随 {Release Name} 的更改而改变