在容器服务K8s集群中创建或部署应用时,您可以根据实际需求修改应用实例的调度规则,将Pod实例尽可能部署在多个可用区和多个节点,来增强应用的可用性。本文介绍如何配置调度规则。
在创建应用时配调度规则
登录EDAS控制台,在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择命名空间,然后在应用列表页面左上角,单击创建应用。
- 在应用基本信息页签,选择集群类型和应用运行环境,然后在页面最下方单击下一步。
配置项 描述 集群类型 选择Kubernetes集群。 应用运行环境 根据选择的托管应用类型选择应用运行环境。 - Java:
- 自定义:适用于在K8s集群中使用自定义的镜像部署应用。
- Java:支持通用的JAR包部署,适用于Dubbo和Spring Boot应用。在选择后可更改Java环境。
- Tomcat:支持通用的WAR包部署,适用于Dubbo和Spring应用。在选择后可更改Java环境和容器版本。
- EDAS-Container(HSF):适用于使用WAR或者FatJar部署HSF应用。在选择后可更改Java环境、Pandora版本和Ali-Tomcat版本。
- PHP:适用于运行在Apache HTTP Server中的PHP应用程序。
- 多语言Node、C++、Go…:适用于任何语言的使用自定义镜像来部署的微服务应用。
- Java:
在应用配置页签,设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步。
- 在应用高级设置页签,展开调度规则,并根据您的业务需求设置调度模式和规则。
- 选择内置配置:
配置项 描述 可用区调度 - 默认调度:实例默认按照集群资源情况调度,所有实例有可能部署于单可用区,可用性一般。
- 尽量多可用区部署:实例会利用反亲和性,尽可能分散部署到多可用区,可用性高。
节点调度 - 默认调度:实例默认按照节点资源负载情况调度。
- 尽量多节点部署:同一应用的实例,将尽量打散到不同节点上部署,以实现应用高可用部署。
- 选择自定义配置:
如果内置的按节点与可用区的配置调度规则无法满足您对于复杂场景的需求时,您可以使用EDAS提供的自定义配置功能,根据实际业务场景来设计调度规则。
表 1. 添加节点亲和性调度规则 配置项 描述 选择器 您可以通过配置节点标签名、操作符号和节点标签值来指定节点的调度规则。
权重 权重值允许设置0~100,默认权重值为1 。 表 2. 添加应用亲和性调度规则 配置项 描述 K8s命名空间 应用关联的K8s命名空间。 拓扑域 K8s集群中为方便管理划分的一种“位置”关系,如节点、可用区、区域等。 选择器 您可以通过配置应用标签名、操作符号和应用标签值指定调度约束条件。 权重 权重值允许设置0~100,默认权重值为1。 表 3. 添加应用反亲和性调度规则 配置项 描述 K8s命名空间 应用关联的K8s命名空间。 拓扑域 K8s集群中为方便管理划分的一种“位置”关系,如节点、可用区、区域等。 选择器 您可以通过配置应用标签名、操作符号和应用标签值指定调度约束条件。 权重 权重值允许设置0~100,默认权重值为1 。 表 4. 添加调度容忍规则 配置项 描述 标签名 调度容忍规则作用的对象。 操作符号 操作符定义了其对调度规则的作用。 标签值 标签对应的值。调度容忍是应用由标签名、标签值和操作符号以及效果这四部分去匹配合适的污点。 效果 匹配到节点对应污点后,应用运行的效果。 容忍时间(秒) 当效果取值为NoExecute时,您才可以配置容忍时间。
匹配到节点对应污点后,应用在节点上可以继续运行的时间。若不指定该字段则表示应用可以一直运行在该节点。 - 选择内置配置:
完成设置后单击创建应用。
在应用创建完成页签确认应用基本信息、应用配置和应用高级设置等信息,确认完毕后单击确定创建应用。
在应用总览页面顶部提示信息中,单击查看详情,可在变更记录页面查看变更流程。应用部署需要几分钟,请您耐心等待。变更完成后在应用总览页面的基本信息区域查看实例的运行状态,如果显示为Pod运行中,说明应用部署成功。
在更新应用时配调度规则
您可在创建应用时配置调度规则,也可以在部署应用时配置或更新调度规则。
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择命名空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。
在应用总览或基本信息页面的右上角,选择 。
在选择部署模式页面,选择具体的部署方式,然后在所选方式区域的右上角,单击开始部署。
- 设置应用的环境和部署包信息后展开调度规则,根据您的需求完成配置后单击确定。
- 选择内置配置:
配置项 描述 可用区调度 - 默认调度:实例默认按照集群资源情况调度,所有实例有可能部署于单可用区,可用性一般。
- 尽量多可用区部署:实例会利用反亲和性,尽可能分散部署到多可用区,可用性高。
节点调度 - 默认调度:实例默认按照节点资源负载情况调度。
- 尽量多节点部署:同一应用的实例,将尽量打散到不同节点上部署,以实现应用高可用部署。
- 选择自定义配置:
如果内置的按节点与可用区的配置调度规则无法满足您对于复杂场景的需求时,您可以使用EDAS提供的自定义配置功能,根据实际业务场景来设计调度规则。
表 1. 添加节点亲和性调度规则 配置项 描述 选择器 您可以通过配置节点标签名、操作符号和节点标签值来指定节点的调度规则。
权重 权重值允许设置0~100,默认权重值为1 。 表 2. 添加应用亲和性调度规则 配置项 描述 K8s命名空间 应用关联的K8s命名空间。 拓扑域 K8s集群中为方便管理划分的一种“位置”关系,如节点、可用区、区域等。 选择器 您可以通过配置应用标签名、操作符号和应用标签值指定调度约束条件。 权重 权重值允许设置0~100,默认权重值为1。 表 3. 添加应用反亲和性调度规则 配置项 描述 K8s命名空间 应用关联的K8s命名空间。 拓扑域 K8s集群中为方便管理划分的一种“位置”关系,如节点、可用区、区域等。 选择器 您可以通过配置应用标签名、操作符号和应用标签值指定调度约束条件。 权重 权重值允许设置0~100,默认权重值为1 。 表 4. 添加调度容忍规则 配置项 描述 标签名 调度容忍规则作用的对象。 操作符号 操作符定义了其对调度规则的作用。 标签值 标签对应的值。调度容忍是应用由标签名、标签值和操作符号以及效果这四部分去匹配合适的污点。 效果 匹配到节点对应污点后,应用运行的效果。 容忍时间(秒) 当效果取值为NoExecute时,您才可以配置容忍时间。
匹配到节点对应污点后,应用在节点上可以继续运行的时间。若不指定该字段则表示应用可以一直运行在该节点。重要 单击确定后,该应用将会被重启,请在业务较少的时间段进行。 - 选择内置配置:
EDAS容器服务K8s和Serverless K8s交流群
如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23197114加入钉钉群进行反馈。