K8S 配置宿主机亲和性
时间: 2023-10-24 17:04:13 浏览: 167
基于python的垃圾分类系统资料齐全+详细文档.zip
在Kubernetes中,可以通过配置宿主机亲和性来实现将同一应用的不同pod分散在不同的宿主机上的目标。宿主机亲和性可以使用Kubernetes自带的pod亲和性和反亲和性特性来实现。亲和性和反亲和性可以通过修改Pod的调度规则来实现。
具体地说,亲和性和反亲和性有两种类型:requiredDuringSchedulingIgnoredDuringExecution和preferredDuringSchedulingIgnoredDuringExecution。其中,requiredDuringSchedulingIgnoredDuringExecution表示调度的节点上必须有labels包含特定条件的pod,如果没有满足条件的pod,则调度失败。而preferredDuringSchedulingIgnoredDuringExecution表示希望调度到具有特定条件的节点上,但是如果没有满足条件的节点,也可以进行调度。
对于宿主机亲和性的配置,可以通过在Pod的spec部分添加affinity字段来实现。affinity字段中的nodeAffinity字段用于定义宿主机亲和性规则。例如,可以使用requiredDuringSchedulingIgnoredDuringExecution类型的亲和性来实现将pod调度到具有特定label的节点上,或者使用preferredDuringSchedulingIgnoredDuringExecution类型的亲和性来实现将pod调度到具有特定label的节点上,但不是强制要求。
需要注意的是,在使用宿主机亲和性配置时,还需要考虑宿主机的污点(Taints)。如果一个节点被标记为有污点,那么意味着不允许pod调度到该节点,除非pod也被标记为可以容忍污点节点。在使用kubeadm部署的k8s集群中,默认情况下,应用是不会调度到master节点的,因为master节点默认被加了Taints(污点)。
具体的宿主机亲和性的配置结构可以参考官方Kubernetes API文档。通过灵活配置亲和性和反亲和性,可以满足不同场景下的宿主机调度需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [k8s中pod亲和性和反亲和性](https://blog.csdn.net/weixin_47729423/article/details/125561636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Kubernetes:(十)K8s的亲和、反亲和、污点、容忍](https://blog.csdn.net/ver_mouth__/article/details/126140558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文