以下是一个简单的示例,演示如何使用节点亲和性。在这个例子中,我们将定义一个节点亲和性规则,要求Pods只能调度到包含特定标签的节点上。
1. 为节点打标签:
首先,给你希望将Pods调度到的节点打上标签。例如,给一个节点打上special=true的标签。
kubectl label nodes <node-name> special=true
2. 创建Pod配置文件:
然后,创建一个Pod的配置文件,其中包含节点亲和性规则。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: special
operator: In
values:
- "true"
containers:
- name: mycontainer
image: myimage
在这个配置文件中,requiredDuringSchedulingIgnoredDuringExecution表示Pod的调度必须满足亲和性规则。这里的规则是,节点的special标签的值必须为true。
3. 应用配置:
应用Pod的配置文件到Kubernetes集群。
kubectl apply -f pod-config.yaml
当你创建这个Pod时,调度器会查找包含special=true标签的节点,并将Pod调度到其中一个节点上。
请注意,节点亲和性是一种强约束,如果找不到满足规则的节点,Pod将无法被调度。在使用节点亲和性时,确保你的节点都被正确打上标签,以及规则的定义符合你的部署需求。
转载请注明出处:http://www.pingtaimeng.com/article/detail/9889/Kubernetes