更新时间:2025-09-22 GMT+08:00
分享

部署EMS

CloudShell部署

目前华东二不支持CloudShell,可参考应用模板部署进行部署。

  1. 添加节点标签。

    1. 登录CCE控制台,单击集群名称进入集群。
    2. 左侧导航栏选择“集群 > 节点管理”,单击“节点”标签,选中需要安装EMS的节点,并单击左上方“标签与污点管理”。
    3. 在弹出的窗口中,在“批量操作”下方单击“新增批量操作”,然后选择“添加/更新”,选择“K8S标签(Labels)”。

      填写需要增加标签的“键”为“ems”,“值”为“true”,单击“确定”。

    当只打算在CCE集群的部分节点部署EMS时,这些节点需要打上“ems=true”标签,EMS通过节点标签识别需要进行部署的节点。如果需要在CCE中所有节点部署EMS,跳过本步骤并设置EMS配置文件中的标签配置项“nodeSelector.enable”为“false”,详见3

  2. 从EMS提供的OBS桶下载链接获取主机配置脚本“ems_config.sh”,与EMS部署所需的Helm包。
  3. 修改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

  4. 将主机配置脚本“ems_config.sh”拷贝到打上“ems=true”标签的节点宿主机上,并在宿主机上运行sh ems_config.sh config 256000命令。

    表2 脚本参数说明

    脚本参数

    参数说明

    config

    表示命令的行为是对机器进行“配置”

    256000

    表示为主机分配500G大页空间,本值可由用户自行调整;EMS的大页大小为2MB, 计算方法为: 500*1024/2

    脚本内容说明:

    1. 通信目录设置

      建立“/mnt/paas/kubernetes/kubelet/ems” 文件夹以支持EMS与推理进程之间进行高效本地进程间通信。此通信依赖于一个共享的文件夹,该文件夹会在EMS启动后,映射至EMS Pod与推理Pod内。EMS将在该目录下启动服务,而推理Pod将利用该Socket进行双向通信。

    2. 用户与组权限配置

      设立专用于EMS操作的用户“ems”及用户组“emsgroup”,并需将“ems”用户添加至“emsgroup”组,以确保符合系统安全策略及正确身份验证流程。

    3. 日志管理目录配置

      在主机上创建日志存储位置“/var/log/ems”,并预留的存储空间。该容量设定是基于EMS服务运行时需要记录的运行与调试信息。

    4. 内核参数优化:虚拟内存映射管理

      调整系统内核配置,将“vm.max_map_count”参数值由默认值调整至建议值“6553000”。此参数控制每个进程可拥有的最大虚拟内存区域数量,EMS因需处理海量数据流与频繁内存映射操作故对此值有较高要求。

    5. 内核参数优化:大页配置

      配置“vm.nr_hugepages”参数以指定系统中支持的大页数目。操作系统默认使用大小为的常规页面,而设置大页可显著提高大型数据结构访问效率;考虑到EMS需求,应将大页大小设置为“2MB”并确保EMS独占使用权,这一操作会减少系统剩余的普通页面内存。

    6. 服务重启与系统适应调整

      完成上述内核参数调整后,需重启Kubernetes组件kubelet以确保更新设置生效。重新启动kubelet并不会影响主机上已存在容器与Pod,其作用在于使Kubernetes节点能够根据新的配置调度需要大页支持的EMS进程。此操作仅涉及本地管理层重启,不触发全局集群范围内的调整。

    以上脚本旨在优化资源利用效率,确保EMS及其依赖组件的稳定高效运行。

  5. 返回到CCE控制台页面,在左侧导航栏中单击“集群管理”。在右侧集群列表中,找到对应集群,在右侧单击“命令行工具”进入命令行。

  6. 在命令行菜单单击,选择修改后的Helm包上传到主机并解压。

    可执行ll命令查看是否上传成功。

    执行以下命令解压压缩包。

    tar zxvf Helm包名

  7. 运行以下命令在ems文件夹中安装Helm包。

    cd ems

    helm install ems ./

应用模板部署

  1. 添加节点标签。

    1. 登录CCE控制台,单击集群名称进入集群。
    2. 左侧导航栏选择“集群 > 节点管理”,单击“节点”标签,选中需要安装EMS的节点,并单击左上方“标签与污点管理”。
    3. 在弹出的窗口中,在“批量操作”下方单击“新增批量操作”,然后选择“添加/更新”,选择“K8S标签(Labels)”。

      填写需要增加标签的“键”为“ems”,“值”为“true”,单击“确定”。

    当只打算在CCE集群的部分节点部署EMS时,这些节点需要打上“ems=true”标签,EMS通过节点标签识别需要进行部署的节点。如果需要在CCE中所有节点部署EMS,跳过本步骤并设置EMS配置文件中的标签配置项“nodeSelector.enable”为“false”,详见3

  2. 从EMS提供的OBS桶下载链接获取EMS部署所需的Helm包。修改Helm包中的初始化参数配置,其余参数同表1

    表3 应用模板部署Helm包参数配置

    配置项

    参数说明

    参考值

    init.enable

    应用模板部署的初始化开关

    true

  3. 将修改后的helm包压缩为tgz 包,包名需满足命名规范。如:name-version.tgz,name字段不超过64个字符。
  4. 返回到CCE控制台页面,在左侧导航栏中单击“集群管理”。在右侧集群列表中,找到对应集群,单击名称进入集群。

  5. 进入集群后选择右侧“应用模板”,单击“上传模板”,在“添加文件”时选择3中的压缩包,添加后单击“上传”。

  6. 上传成功后在“我的模板”,单击“安装”,输入实例名称,单击右下角“安装”按钮进行安装。等待安装完成。

创建和绑定安全组

设置安全组可以控制节点和容器的端口访问规则,增强集群的安全性。建议用户基于CCE Turbo 云原生网络2.0的容器网络模型,为EMS的Pod设置安全组规则。Master节点、Node节点和ENI安全组参考CCE官网指导进行设置。由于CCE Standard无法为Pod配置安全组,使用CCE Standard的用户可以跳过创建绑定安全组的步骤。

前置条件:需要使用CCE Turbo,容器网络模型使用云原生网络2.0,EMS部署完成。

  1. 登录CCE控制台,单击进入部署了EMS的CCE集群。
  2. 选择“工作负载”,单击顶部“命名空间”选择“ems”。在“无状态负载”中单击“ems-controller”。

  3. 单击“安全组策略”,再单击“创建”,使用Pod名称为安全组和策略命名,单击“创建安全组”,最后单击“确认”。为ems-controller创建默认安全组。

  4. 参考23,为“有状态负载”中的“ems-zookeeper”和“守护进程集”的“ems-server”创建默认安全组。使用Pod名称为安全组和策略命名。
  5. 查询VPC网段,在CCE管理页中单击“配置中心”,再单击“网络配置”可以获得当前集群的VPC网段。

  6. 进入安全组管理页,切换到正确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监控平台采集地址。

  1. 登录CCE控制台
  2. 选择“集群管理”,在“集群管理”页面选择待部署的CCE集群。

  3. 选择“集群 > 插件中心”进入 "插件中心"。

    • “插件类型”选择“云原生可观测性”。
    • “插件来源”选择“全部”,找到“云原生监控插件”插件单击“安装”。

  4. 在安装插件页面进行以下配置。

    1. 根据需求选择“数据存储配置”,至少需要开启一项。
      • 选择启用“监控数据上报至AOM服务”,单击“新建实例”,创建一个新实例。(该步骤可选,如果开启,EMS的指标同样也会上报到客户的AOM中)。
      • 选择启用 “监控数据上报至第三方监控平台”,请联系EMS技术支持提供“数据上报地址”,这会将本CCE集群的指标也上报到EMS的AOM中,以便EMS的运维人员监控指标。
      • “认证方式”选择“Bearer Token”,请联系EMS运维人员提供“身份凭据”。
      • “跳过证书认证”选择“是”。
    2. 根据需求选择“规格配置”。
      • 插件规格:
        • 选择“系统预置规格”时,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
        • 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为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插件,不再显示此选项。
    3. 设置插件支持的“参数配置”,“自定义指标采集”选择开启,其余参数请根据需求自行设置。
      • 自定义指标采集:以服务发现的形式自动采集应用的指标。开启后需要在目标应用添加相关配置,详情请参见使用云原生监控插件监控自定义指标
      • 采集周期:设置采集时间间隔周期。
      • 数据保留期(选择“本地数据存储”时支持设置):监控数据保留的时长。
      • node-exporter监听端口:该端口使用主机网络,用于监听并暴露所在节点的指标供普罗采集;默认为9100,若与您已有应用的端口冲突,可按需修改。
      • 调度策略:可单独配置插件各个组件的节点亲和性和污点容忍能力。可以配置多个调度策略,不配置亲和节点键和容忍节点污点键则默认不开启对应的调度策略。
        • 作用范围:可选择调度策略生效的插件实例,默认对全部实例生效。当指定组件实例名称时,将覆盖全部实例所配置的调度策略。亲和节点标签键:填写节点标签键,为插件实例设置节点亲和性。
        • 亲和节点标签值:填写节点标签值,为插件实例设置节点亲和性。
        • 容忍节点污点键:目前仅支持污点键级别的污点容忍策略,组件可以调度到拥有该污点键的节点。

  5. 完成配置后,单击“安装”。

CCE告警规则上报配置

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 左侧导航栏选择“云原生观测 > 告警中心”,选择“告警规则”标签,单击页面中心的“开启告警中心”
  3. 在“选择联系组”时,单击“新建联系组”参数如下,完成新建后,进行选择。

    • 联系组名称:输入联系组名称,创建后不可修改。名称只能包含大写字母、小写字母、数字、-和_,且必须由大写字母、小写字母或数字开头,名称长度为1~255字符。
    • 告警消息显示名:即订阅终端接收消息的标题名称。假设订阅终端为邮件,推送邮件消息时,若已设置告警消息显示名,发件人则呈现为“显示名”,若未设置告警消息显示名,发件人呈现为“username@example.com”。支持在联系组创建完成后修改告警消息显示名。
    • 添加订阅终端:您需要添加一个或多个订阅终端来接收告警消息。终端类型包括短信和邮件,选择“短信”时,请输入有效的手机号码;选择“邮件”时,请输入有效的电子邮件地址。

  4. 单击“确认”完成功能开启。

日志接入

本章节介绍了如何把部署了EMS的CCE集群应用日志接入LTS,应用日志接入后,可以在LTS控制台可以对收集到的日志进行统一管理和分析,帮助快速发现EMS的问题,提高服务性能和可靠性。还可以将日志报表进行可视化展示,从而更好地监控和管理EMS的运行状态。

  1. 登录LTS控制台
  2. 创建日志组。

    1. 在“日志管理”下单击“创建日志组”。
      • “日志组名称”命名参考表5“日志组”列。
      • “日志存储时间(天)”选择1天即可。
    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

      1. EMS根据微服务创建日志组,日志组的名称请设置为“微服务名称-{已部署EMS的CCE集群ID}”,共需要创建3个日志组。
      2. 每个日志组中有多个日志流配置,日志流名称请参考“日志流/采集配置”名称列进行配置,命名规范为“EMS微服务名称-模块名称-已部署EMS的CCE集群ID”, 用中划线隔开。
      3. 每个日志流可配置一个或者多个日志文件,文件目录请参考“采集路径”列进行配置。

  3. 创建日志流。

    1. 单击步骤2创建的日志组名称。
    2. 单击“创建日志流”。
      • “日志流名称”填写规划的日志流名称。参考表5“日志流/采集配置名称”列。
      • “企业项目”选择规划的企业项目。
      • “日志存储”选择打开。
      • “日志存储时间”选择关闭。
    3. 其他参数参考LTS文档设置,设置完成后,单击“确定”,完成日志流的创建。

  4. 日志接入。

    1. 选择“日志接入”>“接入中心”,单击“云容器引擎 CCE-应用日志”进行CCE接入配置,参数配置如下。
      • “采集方式”选择“采集到自定义日志流”。
        • “CCE集群”设置成已部署EMS的CCE集群。
        • “所属日志组”选择步骤2创建的日志组。
        • “所属日志流”选择步骤3创建的日志流。
    2. 单击“下一步:检查依赖项”。
    1. “检查依赖项”全部通过,单击“下一步:选择主机组(可选)”。

  5. 选择默认主机组,然后单击“下一步:采集配置”。
  6. 在“采集配置”页面参数设置如下。

    • “采集配置名称”与“日志流名称”一致。参考表5“日志流/采集配置名称”列。
    • “数据源配置”的“类型”选择“节点文件路径”或者“容器文件路径”,“添加采集路径”请参考表5“采集路径”列进行配置。“添加采集路径”时可配置一个或多个文件路径,请注意不要遗漏。
      表6 挂载方式和数据源类型对应表

      文件挂载方式

      数据源配置对应的类型

      hostpath

      节点文件路径

      容器内挂载

      容器文件路径

    • “允许文件多次采集”选择开启。
    • 其余参数请根据需求设置,设置完成后单击“下一步:索引配置”。

  7. 在“索引配置”页面保持默认设置,直接单击“跳过并提交”,界面提示“日志接入成功”。

日志授权

用户需通过创建委托的方式,将日志资源权限委托给EMS运维账号,以便EMS运维账号能够获取日志。

  1. 使用管理员账号登录IAM控制台
  2. 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击右上方的“创建委托”。

    • “委托名称” 输入ems-lts-{account-name}, account-name为租户名称,租户名在当前页面顶栏右上角。
    • “委托类型”选择“普通账号”。
    • “委托的账号”输入EMS的承载租户账号名: op_svc_DWR_container1-cnsouthwest2
    • “持续时间”选择“永久”。
    • 填写“描述”信息,并单击“完成”。

  3. 在授权的确认弹窗中,单击“立即授权”。

    1. 勾选“LTS FullAccess”权限。单击“下一步”。

    2. “选择授权范围方案”选择“指定区域项目资源”,Region选择CCE集群所在的Region。

    3. 单击“确定”,委托创建完成。

部署后检查

本章主要描述对EMS的安装后检查,确保EMS已正常运行。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 左侧导航栏选择“Kubernetes 资源 > 工作负载”,“命名空间”选择“ems”。
  3. 检查“无状态负载”页签下“ems-controller”的“状态”。
  4. 检查“守护进程集”页签下“ems-server”的“状态”。
  5. 检查“有状态负载”页签下“zookeeper”的“状态”。

    以上所有“状态”为“运行中”是正常状态,如果在5分钟后还显示非正常状态,请联系EMS技术支持。

相关文档