部署EMS
CloudShell部署

目前华东二不支持CloudShell,可参考应用模板部署进行部署。
- 添加节点标签。
- 登录CCE控制台,单击集群名称进入集群。
- 左侧导航栏选择“集群 > 节点管理”,单击“节点”标签,选中需要安装EMS的节点,并单击左上方“标签与污点管理”。
- 在弹出的窗口中,在“批量操作”下方单击“新增批量操作”,然后选择“添加/更新”,选择“K8S标签(Labels)”。
填写需要增加标签的“键”为“ems”,“值”为“true”,单击“确定”。
当只打算在CCE集群的部分节点部署EMS时,这些节点需要打上“ems=true”标签,EMS通过节点标签识别需要进行部署的节点。如果需要在CCE中所有节点部署EMS,跳过本步骤并设置EMS配置文件中的标签配置项“nodeSelector.enable”为“false”,详见3。
- 从EMS提供的OBS桶下载链接获取主机配置脚本“ems_config.sh”,与EMS部署所需的Helm包。
- 修改Helm包中的配置并保存。
表1 Helm包参数配置 配置项
参数说明
参考值
hugePages.num
大页数,EMS采用2M的大页,所以此处表示2MB的个数。
例如:如果在主机上配置大页为500G,则这里应该是500*1024/2=256000。
说明:划分成大页后,普通页的内存会相应减少,需要合理规划上层推理进程的内存占用。
建议设置为DRAM容量值的一半
hugePages.requestsMemory
ems-server所需的最小大页数,如果主机上大页设置为500G,则配置为500Gi
建议设置为DRAM容量值的一半
hugePages.limitsMemory
ems-server所需的最大大页数,如果主机上大页设置为500G,则配置为500Gi
建议设置为DRAM容量值的一半
nodeSelector.enable
设置节点标签是否启用,如果启用,则EMS只会安装在设置了对应标签的主机节点上。
如果在CCE集群中所有节点部署EMS,则本值设置为false,否则设置为true
emsCtrl.labelKey
针对ems-controller与ZooKeeper服务的主机标签键值
ems
emsCtrl.labelValue
针对ems-controller与ZooKeeper服务的主机标签值。
true
emsServer.labelKey
针对ems-server与ZooKeeper服务的主机标签键值。
ems
emsServer.labelValue
针对ems-server与ZooKeeper服务的主机标签值。
true
- 将主机配置脚本“ems_config.sh”拷贝到打上“ems=true”标签的节点宿主机上,并在宿主机上运行sh ems_config.sh config 256000命令。
表2 脚本参数说明 脚本参数
参数说明
config
表示命令的行为是对机器进行“配置”
256000
表示为主机分配500G大页空间,本值可由用户自行调整;EMS的大页大小为2MB, 计算方法为: 500*1024/2
脚本内容说明:
- 通信目录设置
建立“/mnt/paas/kubernetes/kubelet/ems” 文件夹以支持EMS与推理进程之间进行高效本地进程间通信。此通信依赖于一个共享的文件夹,该文件夹会在EMS启动后,映射至EMS Pod与推理Pod内。EMS将在该目录下启动服务,而推理Pod将利用该Socket进行双向通信。
- 用户与组权限配置
设立专用于EMS操作的用户“ems”及用户组“emsgroup”,并需将“ems”用户添加至“emsgroup”组,以确保符合系统安全策略及正确身份验证流程。
- 日志管理目录配置
在主机上创建日志存储位置“/var/log/ems”,并预留的存储空间。该容量设定是基于EMS服务运行时需要记录的运行与调试信息。
- 内核参数优化:虚拟内存映射管理
调整系统内核配置,将“vm.max_map_count”参数值由默认值调整至建议值“6553000”。此参数控制每个进程可拥有的最大虚拟内存区域数量,EMS因需处理海量数据流与频繁内存映射操作故对此值有较高要求。
- 内核参数优化:大页配置
配置“vm.nr_hugepages”参数以指定系统中支持的大页数目。操作系统默认使用大小为的常规页面,而设置大页可显著提高大型数据结构访问效率;考虑到EMS需求,应将大页大小设置为“2MB”并确保EMS独占使用权,这一操作会减少系统剩余的普通页面内存。
- 服务重启与系统适应调整
完成上述内核参数调整后,需重启Kubernetes组件kubelet以确保更新设置生效。重新启动kubelet并不会影响主机上已存在容器与Pod,其作用在于使Kubernetes节点能够根据新的配置调度需要大页支持的EMS进程。此操作仅涉及本地管理层重启,不触发全局集群范围内的调整。
以上脚本旨在优化资源利用效率,确保EMS及其依赖组件的稳定高效运行。
- 通信目录设置
- 返回到CCE控制台页面,在左侧导航栏中单击“集群管理”。在右侧集群列表中,找到对应集群,在右侧单击“命令行工具”进入命令行。
- 在命令行菜单单击
,选择修改后的Helm包上传到主机并解压。
可执行ll命令查看是否上传成功。
执行以下命令解压压缩包。
tar zxvf Helm包名
- 运行以下命令在ems文件夹中安装Helm包。
cd ems
helm install ems ./
应用模板部署
- 添加节点标签。
- 登录CCE控制台,单击集群名称进入集群。
- 左侧导航栏选择“集群 > 节点管理”,单击“节点”标签,选中需要安装EMS的节点,并单击左上方“标签与污点管理”。
- 在弹出的窗口中,在“批量操作”下方单击“新增批量操作”,然后选择“添加/更新”,选择“K8S标签(Labels)”。
填写需要增加标签的“键”为“ems”,“值”为“true”,单击“确定”。
当只打算在CCE集群的部分节点部署EMS时,这些节点需要打上“ems=true”标签,EMS通过节点标签识别需要进行部署的节点。如果需要在CCE中所有节点部署EMS,跳过本步骤并设置EMS配置文件中的标签配置项“nodeSelector.enable”为“false”,详见3。
- 从EMS提供的OBS桶下载链接获取EMS部署所需的Helm包。修改Helm包中的初始化参数配置,其余参数同表1。
表3 应用模板部署Helm包参数配置 配置项
参数说明
参考值
init.enable
应用模板部署的初始化开关
true
- 将修改后的helm包压缩为tgz 包,包名需满足命名规范。如:name-version.tgz,name字段不超过64个字符。
- 返回到CCE控制台页面,在左侧导航栏中单击“集群管理”。在右侧集群列表中,找到对应集群,单击名称进入集群。
- 进入集群后选择右侧“应用模板”,单击“上传模板”,在“添加文件”时选择3中的压缩包,添加后单击“上传”。
- 上传成功后在“我的模板”,单击“安装”,输入实例名称,单击右下角“安装”按钮进行安装。等待安装完成。
创建和绑定安全组
设置安全组可以控制节点和容器的端口访问规则,增强集群的安全性。建议用户基于CCE Turbo 云原生网络2.0的容器网络模型,为EMS的Pod设置安全组规则。Master节点、Node节点和ENI安全组参考CCE官网指导进行设置。由于CCE Standard无法为Pod配置安全组,使用CCE Standard的用户可以跳过创建绑定安全组的步骤。
前置条件:需要使用CCE Turbo,容器网络模型使用云原生网络2.0,EMS部署完成。
- 登录CCE控制台,单击进入部署了EMS的CCE集群。
- 选择“工作负载”,单击顶部“命名空间”选择“ems”。在“无状态负载”中单击“ems-controller”。
- 单击“安全组策略”,再单击“创建”,使用Pod名称为安全组和策略命名,单击“创建安全组”,最后单击“确认”。为ems-controller创建默认安全组。
- 参考2、3,为“有状态负载”中的“ems-zookeeper”和“守护进程集”的“ems-server”创建默认安全组。使用Pod名称为安全组和策略命名。
- 查询VPC网段,在CCE管理页中单击“配置中心”,再单击“网络配置”可以获得当前集群的VPC网段。
- 进入安全组管理页,切换到正确Region。使用Pod名称ems-controller、ems-zookeeper、ems-server搜索刚刚创建的安全组。单击安全组名称,单击“入方向规则”,删除全部入方向规则后单击添加规则,按如下表格配置入方向安全组。VPC网段的值由5获取。
表4 EMS安全组推荐配置表 所属安全组
优先级
流量方向
协议类型
协议端口
源地址类型
源地址
ems-controller
1
入方向
TCP
8081
IP地址
VPC网段
ems-controller
1
入方向
TCP
5219
安全组
ems-server
ems-server
1
入方向
TCP
8081
IP地址
VPC网段
ems-server
1
入方向
TCP
5219
安全组
ems-server
ems-server
1
入方向
TCP
5219
安全组
ems-controller
ems-server
1
入方向
TCP
21859
安全组
ems-server
ems-server
1
入方向
TCP
21859
安全组
ems-controller
ems-zookeeper
1
入方向
TCP
10000
安全组
ems-server
ems-zookeeper
1
入方向
TCP
10000
安全组
ems-controller
ems-zookeeper
1
入方向
TCP
11000
安全组
ems-server
ems-zookeeper
1
入方向
TCP
11000
安全组
ems-controller
ems-zookeeper
1
入方向
TCP
10001
安全组
ems-zookeeper
ems-zookeeper
1
入方向
TCP
10002
安全组
ems-zookeeper
收集运维指标
配置运维指标可以让EMS运维接收到已部署EMS的CCE集群的监控指标,从而提升运维质量,更好地为您提供服务。EMS通过普罗插件收集指标信息,用户需要通过配置第三方监控平台,将EMS的监控平台采集地址配置到AOM上,以便EMS也能获取指标信息。
前提条件:需要EMS运维侧提供EMS监控平台采集地址。
- 登录CCE控制台。
- 选择“集群管理”,在“集群管理”页面选择待部署的CCE集群。
- 选择“集群 > 插件中心”进入 "插件中心"。
- “插件类型”选择“云原生可观测性”。
- “插件来源”选择“全部”,找到“云原生监控插件”插件单击“安装”。
- 在安装插件页面进行以下配置。
- 根据需求选择“数据存储配置”,至少需要开启一项。
- 选择启用“监控数据上报至AOM服务”,单击“新建实例”,创建一个新实例。(该步骤可选,如果开启,EMS的指标同样也会上报到客户的AOM中)。
- 选择启用 “监控数据上报至第三方监控平台”,请联系EMS技术支持提供“数据上报地址”,这会将本CCE集群的指标也上报到EMS的AOM中,以便EMS的运维人员监控指标。
- “认证方式”选择“Bearer Token”,请联系EMS运维人员提供“身份凭据”。
- “跳过证书认证”选择“是”。
- 根据需求选择“规格配置”。
- 插件规格:
- 选择“系统预置规格”时,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
- 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。
- 普罗高可用:高可用会在集群中将Prometheus-server、Prometheus-operator、thanos-query、custom-metrics-apiserver、alertmanager、kube-state-metrics组件按多实例方式部署。
- 采集分片数(选择非“本地数据存储”时支持设置):当Prometheus的数据量很大时,您可以通过设置该参数,将数据分片到指定数量的Prometheus实例上存储和查询。增加分片数量可以使每个分片承担的数据量更少,从而增加指标的采集吞吐上限,但也会消耗更多的资源。默认采集分片数根据集群规模自动生成,建议每50个节点配置一个采集分片,如果您需要增加分片数量,提高采集性能,需要考虑资源占用的影响,根据具体的监控场景进行权衡和调优。为确保系统稳定性,建议将控制节点内存使用率控制在50%以下。
- 安装grafana:通过 grafana 可视化浏览普罗监控数据。grafana 会默认创建大小为 5 GiB 的存储卷,卸载插件时 grafana 的存储卷不随插件被删除。首次登录默认用户名与密码均为 admin,登录后会立即让您修改密码。
- 3.9.0版本后,Grafana组件从云原生监控插件中移除,拆分为独立的Grafana插件,不再显示此选项。
- 插件规格:
- 设置插件支持的“参数配置”,“自定义指标采集”选择开启,其余参数请根据需求自行设置。
- 自定义指标采集:以服务发现的形式自动采集应用的指标。开启后需要在目标应用添加相关配置,详情请参见使用云原生监控插件监控自定义指标。
- 采集周期:设置采集时间间隔周期。
- 数据保留期(选择“本地数据存储”时支持设置):监控数据保留的时长。
- node-exporter监听端口:该端口使用主机网络,用于监听并暴露所在节点的指标供普罗采集;默认为9100,若与您已有应用的端口冲突,可按需修改。
- 调度策略:可单独配置插件各个组件的节点亲和性和污点容忍能力。可以配置多个调度策略,不配置亲和节点键和容忍节点污点键则默认不开启对应的调度策略。
- 作用范围:可选择调度策略生效的插件实例,默认对全部实例生效。当指定组件实例名称时,将覆盖全部实例所配置的调度策略。亲和节点标签键:填写节点标签键,为插件实例设置节点亲和性。
- 亲和节点标签值:填写节点标签值,为插件实例设置节点亲和性。
- 容忍节点污点键:目前仅支持污点键级别的污点容忍策略,组件可以调度到拥有该污点键的节点。
- 根据需求选择“数据存储配置”,至少需要开启一项。
- 完成配置后,单击“安装”。
CCE告警规则上报配置
- 登录CCE控制台,单击集群名称进入集群。
- 左侧导航栏选择“云原生观测 > 告警中心”,选择“告警规则”标签,单击页面中心的“开启告警中心”
- 在“选择联系组”时,单击“新建联系组”参数如下,完成新建后,进行选择。
- 联系组名称:输入联系组名称,创建后不可修改。名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头,名称长度为1~255字符。
- 告警消息显示名:即订阅终端接收消息的标题名称。假设订阅终端为邮件,推送邮件消息时,若已设置告警消息显示名,发件人则呈现为“显示名”,若未设置告警消息显示名,发件人呈现为“username@example.com”。支持在联系组创建完成后修改告警消息显示名。
- 添加订阅终端:您需要添加一个或多个订阅终端来接收告警消息。终端类型包括短信和邮件,选择“短信”时,请输入有效的手机号码;选择“邮件”时,请输入有效的电子邮件地址。
- 单击“确认”完成功能开启。
日志接入
本章节介绍了如何把部署了EMS的CCE集群应用日志接入LTS,应用日志接入后,可以在LTS控制台可以对收集到的日志进行统一管理和分析,帮助快速发现EMS的问题,提高服务性能和可靠性。还可以将日志报表进行可视化展示,从而更好地监控和管理EMS的运行状态。
- 登录LTS控制台。
- 创建日志组。
- 在“日志管理”下单击“创建日志组”。
- “日志组名称”命名参考表5“日志组”列。
- “日志存储时间(天)”选择1天即可。
- 其余参数请根据实际情况进行设置,设置完成后,单击“确定”,完成日志组的创建。{cluster_id}为CCE集群ID,获取方式如图
表5 EMS的日志文件与采集配置 日志组
日志流/采集配置名称
挂载方式
采集路径
ems-controller-{cluster_id}
ems-controller-kv_server-{cluster-id}
hostpath
/var/log/ems/ems-controller/kv/kv_server/kv.INFO
ems-controller-mempool-{cluster-id}
hostpath
/var/log/ems/ems-controller/mempool/run/dsware_kv_server_0.log
ems-controller-utils-{cluster-id}
hostpath
/var/log/ems/ems-controller/deploy/key_deploy/key_deploy.log
hostpath
/var/log/ems/ems-controller/ds_ns_op.log
hostpath
/var/log/ems/ems-controller/charge_cli.log
hostpath
/var/log/ems/ems-controller/scc/run/scc.log
hostpath
/var/log/ems/ems-controller/deploy/kv_server/_stdout_kv_server.log
ems-controller-ftds-{cluster-id}
hostpath
/var/log/ems/ems-controller/ftds/data/stat/*.iso
hostpath
/var/log/ems/ems-controller/ftds/data/stat/*.nmp
hostpath
/var/log/ems/ems-controller/ftds/run/client/*.log
ems-controller-sidecar-init-{cluster-id}
hostpath
/var/log/ems/ems-controller-init-sidecar/dmk-sidecar-cli.log
ems-controller-sidecar-{cluster-id}
hostpath
/var/log/ems/ems-controller-sidecar/dmk-sidecar.log
ems-server-{cluster_id}
ems-server-kv_server-{cluster_id}
hostpath
/var/log/ems/ems-server/kv/kv_server/kv.INFO
ems-server-mempool-{cluster_id}
hostpath
/var/log/ems/ems-server/mempool/run/dsware_kv_server_0.log
ems-server-utils-{cluster_id}
hostpath
/var/log/ems/ems-server/deploy/kv_server/_stdout_kv_server.log
hostpath
/var/log/ems/ems-server/deploy/key_deploy/key_deploy.log
hostpath
/var/log/ems/ems-server/scc/run/scc.log
ems-server-sidecar-init-{cluster_id}
hostpath
/var/log/ems/ems-server-init-sidecar/dmk-sidecar-cli.log
ems-server-sidecar-{cluster_id}
hostpath
/var/log/ems/ems-server-sidecar/dmk-sidecar.log
ems-server-ftds-{cluster_id}
hostpath
/var/log/ems/ems-server/ftds/data/stat/*.iso
hostpath
/var/log/ems/ems-server/ftds/data/stat/*.nmp
hostpath
/var/log/ems/ems-server/ftds/run/client/*.log
dmk-zk-{cluster_id}
dmk_zk-zk_log-{cluster_id}
容器内挂载
/var/log/dfv/infrastructure/zookeeper4sl/*.log
dmk_zk-zk_log_0-{cluster_id}
容器内挂载
/var/log/dfv/infrastructure/zookeeper4sl/*.log.0
- EMS根据微服务创建日志组,日志组的名称请设置为“微服务名称-{已部署EMS的CCE集群ID}”,共需要创建3个日志组。
- 每个日志组中有多个日志流配置,日志流名称请参考“日志流/采集配置”名称列进行配置,命名规范为“EMS微服务名称-模块名称-已部署EMS的CCE集群ID”, 用中划线隔开。
- 每个日志流可配置一个或者多个日志文件,文件目录请参考“采集路径”列进行配置。
- 在“日志管理”下单击“创建日志组”。
- 创建日志流。
- 日志接入。
- 选择“日志接入”>“接入中心”,单击“云容器引擎 CCE-应用日志”进行CCE接入配置,参数配置如下。
- 单击“下一步:检查依赖项”。
- “检查依赖项”全部通过,单击“下一步:选择主机组(可选)”。
- 选择默认主机组,然后单击“下一步:采集配置”。
- 在“采集配置”页面参数设置如下。
- 在“索引配置”页面保持默认设置,直接单击“跳过并提交”,界面提示“日志接入成功”。
日志授权
用户需通过创建委托的方式,将日志资源权限委托给EMS运维账号,以便EMS运维账号能够获取日志。
- 使用管理员账号登录IAM控制台。
- 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击右上方的“创建委托”。
- “委托名称” 输入ems-lts-{account-name}, account-name为租户名称,租户名在当前页面顶栏右上角。
- “委托类型”选择“普通账号”。
- “委托的账号”输入EMS的承载租户账号名: op_svc_DWR_container1-cnsouthwest2
- “持续时间”选择“永久”。
- 填写“描述”信息,并单击“完成”。
- 在授权的确认弹窗中,单击“立即授权”。
部署后检查
本章主要描述对EMS的安装后检查,确保EMS已正常运行。
- 登录CCE控制台,单击集群名称进入集群。
- 左侧导航栏选择“Kubernetes 资源 > 工作负载”,“命名空间”选择“ems”。
- 检查“无状态负载”页签下“ems-controller”的“状态”。
- 检查“守护进程集”页签下“ems-server”的“状态”。
- 检查“有状态负载”页签下“zookeeper”的“状态”。
以上所有“状态”为“运行中”是正常状态,如果在5分钟后还显示非正常状态,请联系EMS技术支持。