注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

为环境(应用)配置集群计算资源

更新时间:2022/01/18 访问次数:572

解决的问题


为环境配置集群计算资源可以解决一下两个场景的问题:

  1. 指定某个应用下环境对应的集群
  2. 指定某个应用下环境使用集群中的某些节点(ECS)

?

场景1:为某个应用的环境分配集群


步骤1:创建新的集群

目前已经支持创建多个集群。方式和创建第一个集群相同。


步骤2:创建“资源分配策略”


image.png

在“运维中心”-> “资源分配策略”中新建策略或者在列表中直接找到自己的应用。


image.png


依次选择应用、环境、关联集群即可。


注:已经有运行资源(容器、服务、网络)的环境,需要先删除对应的资源后才能变更关联集群。


场景2:为某个应用的环境指定部署Node节点(ECS)

步骤1:给Node节点绑定标签

image.png


在“运维中心”-> “集群列表”-> 选择对应集群 -> “管理”-> “节点列表”给指定的ECS绑定标签。


image.png


  • 已有集群的所有标签可以在下方选择标签的键值。
  • 新建标签请直接在上面输入框输入,并点击添加。如上图所示,以“:”分割key/value。


点击确定后,绑定成功。


注:这里绑定的标签,如果通过Yaml类型部署配置使用,请在Yaml部署配置的标签键前添加字符串`label.jst.com/`。比如绑定的标签是"type:nodejs",那实际使用Yaml配置节点标签选择器时,请使用"label.jst.com/type:nodejs"。通过一般配置使用,不需要关注这个问题。

?

步骤2:关联“资源分配策略”

分为两种方式(二者选一种即可):1. 为已创建好的环境创建“资源分配策略” 2. 创建环境时直接绑定ECS资源标签

1. 为已创建好的环境创建“资源分配策略” 

注:如果环境关联了Yaml类型的配置,暂时无法通过产品化的方式指定节点部署,请直接通过K8S原生Yaml配置的方式解决。


image.png

在“运维中心”-> “资源分配策略”中新建或变更现有策略。


image.png


在关联资源标签中添加想关联的标签即可。

2. 创建环境时直接绑定ECS资源标签

在创建环境的第二步,选择好集群后,选择“关联ECS资源标签”即可。此处“关联ECS资源标签”的下拉内容,需要在上方选择的集群中,按照场景2,步骤1的说明,给Node节点先绑定好标签。

image.png

在创建环境过程中选择了关联ECS资源标签,会自动为该环境关联到指定的节点上,即创建出一条资源分配策略,效果同步骤2的第一种方式。

image.png


执行策略

执行策略目前有两种:尽力交付 & 强制交付。

  • 尽力交付:表示在调度时尽量将容器调度到关联标签对应的节点上,如果没有节点满足要求,会挑选其他不满足条件的节点部署
  • 强制交付:强制将容器调度到关联标签对应的节点上,如果没有节点满足要求,会因没有资源而部署失败。

?

关联资源标签的逻辑关系

相同Key值的标签之间是关系,不同Key值的标签是关系。


容器尽力分配到不同宿主机

开启之后,容器将会尽力分配到不同的node节点上。如果没有多余节点满足要求,仍然后退化到在相同的节点上部署应用。


注:“容器尽力分配到不同宿主机的优先级” 大于 “尽力交付指定Node节点标签的优先级”。也就是如果两个条件产生冲突,会优先保证容器尽力分配到不同宿主机。

?

场景3:指定Node节点只能够部署某个应用(环境)的容器


步骤1:为Node节点指定污点


参考节点污点使用文档:https://www.yuque.com/fczggw/wu7u0k/etgueh


步骤2:在环境分配策略中配置污点容忍度


注:如果使用YAML部署配置,请使用原生的PodSpec -> Tolerations配置。并且在污点的key值前添加前缀`taint.jst.com/`。


在环境分配策略中,配置污点容忍度。

image.png


利用节点污点的特性,包含污点的节点不会被集群调度容器。给应用环境配置容忍度之后,集群在调度时会“容忍”指定的污点,允许将该应用环境调度到包含污点的节点上去。


场景2 + 场景3 配合,可以实现将应用环境的容器与节点一一对应起来,保证应用环境只会调度到指定的节点上,同时保证节点只会接受指定环境的容器。


FAQ

关于此文档暂时还没有FAQ
返回
顶部