Kubernetes 节点特性选择与调度策略
1. 节点特性选择概述
在云计算环境中,并非所有计算节点都是相同的。不同的工作负载可能需要不同的硬件特性,如高性能 CPU、GPU 等,或者特定的属性,如运行在 Spot 供应模式下。Kubernetes 中的计算节点可以通过节点标签来区分其特性,我们可以通过节点选择器或节点亲和性来指定 Pod 所需的节点特性。
Kubernetes 会在同一个节点上运行多个 Pod,这种技术称为装箱(bin - packing)。虽然这可以节省成本并在突发情况下提高资源利用率,但也存在单点故障的风险。不过,Kubernetes 提供了 Pod 扩散拓扑(pod spread topology)方法来避免同一 Pod 的副本集中在单个节点上。
2. 节点选择器
节点特性在 Kubernetes 中通过节点标签来区分,从 Pod 中选择特定节点特性的方法是使用节点选择器或节点亲和性。它们是表达 Pod 所需节点的期望标签(即特性)的方式。
例如,一个需要在基于 Arm 架构的节点上运行的 Pod。基于 Arm 架构的节点会被标记为 kubernetes.io/arch: arm64 ,我们可以使用节点选择器或节点亲和性来针对这个标签,确保 Pod 只在基于 Arm 架构的节点上运行。
以下是使用节点选择器的示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: timeserver
spec:
replicas: 1
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



