文档中心 > 聚石塔

解决的问题

 

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

1)指定某个应用下环境对应的集群

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

 

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

步骤1:创建新的集群


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

 

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

 

image.png


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

 

image.png

 

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

 

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

 

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

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


image.png

 

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

 

image.png

 

1)已有集群的所有标签可以在下方选择标签的键值。

2)新建标签请直接在上面输入框输入,并点击添加。如上图所示,以“:”分割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节点指定污点

 

参考节点污点使用文档:点击查看

 

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

 

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

 

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


image.png

 

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

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

 

FAQ

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