在Kubernetes中,节点亲和性调度是一种强大的机制,它允许您根据节点的标签将工作负载精确地调度到具有特定属性(如GPU支持)的节点上。以下是如何配置和使用节点亲和性调度策略的简明指南。
配置节点亲和性调度策略
标记节点:首先,确保您的GPU节点已被标记。在本例中,GPU节点被标记为gpu=true。
选择调度策略:
不配置:如果不设置节点亲和策略,Kubernetes将按照默认调度策略随机分配Pod。
指定节点调度:直接指定Pod部署的节点,适用于已知确切部署位置的情况。
指定节点池调度:指定Pod部署的节点池,适用于节点池管理策略。
自定义亲和策略:根据节点标签实现灵活调度。
配置自定义亲和策略:
选择规则:在“自定义亲和策略”中,选择“必须满足”或“尽量满足”规则。
必须满足:硬约束,Pod只能调度到满足所有指定条件的节点上。
尽量满足:软约束,调度器会尝试调度到满足条件的节点,但即使不满足也会进行调度。
设置参数:
权重(仅“尽量满足”):取值1-100,作为调度时的附加评分项。
标签名:需要匹配的节点标签。
操作符:六种匹配关系(In、NotIn、Exists、DoesNotExist、Gt、Lt),用于定义标签与值的匹配逻辑。
标签值:与标签名对应的值。
添加策略:在调度策略配置中,点击“添加策略”并填写上述参数。
快速选择(可选):通过“指定节点调度”或“指定节点池调度”快速选择目标节点或节点池,这些选项本质上也是基于标签实现的便捷操作。
验证调度结果
在Kubernetes集群控制台中,导航到“工作负载”页面。
点击工作负载名称进入详情页,查看实例列表。
确认所有Pod都已调度到包含gpu=true标签的目标节点上。
通过上述步骤,您可以利用Kubernetes的节点亲和性调度功能,确保高性能计算等特定需求的工作负载被精确地调度到合适的节点上,从而优化资源利用和性能表现。