pod的亲和性和反亲和性

这篇具有很好参考价值的文章主要介绍了pod的亲和性和反亲和性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pod的亲和性和反亲和性

调度策略:       匹配标签        操作符              拓扑域   调度目标

node的亲和性    主机标签  In Notin exists doesexists Gt Lt  不支持   指定主机

pod的亲和性     pod的标签 In Notin exists doesexists      支持   pod和指定标签的pod部署在同一拓扑域

pod的反亲和性   pod的标签 In Notin exists doesexists       支持     pod和指定标签的pod部署在不同拓扑域

拓扑域:k8s集群节点当中的一个组织结构,可以根据节点的物理关系或者逻辑关系进行划分,可以用来表示节点之间的空间关系,网络关系或者其他类型的关系

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

反亲和性:

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

注意点:

1、pod的亲和性策略,在配置时,必须要加上拓扑域的关键字topologykey,指向的是节点标签

2、pod亲和性的策略分为硬策略和软策略

3、pod亲和性的notln可以替代反亲和性

4、pod亲和性主要是为了相关联的pod部署在同一节点。lnmp

你在进行部署的时候怎么考虑node节点?

污点和容忍可以配合node的亲和性一块使用

污点:是node的调度机制,不是pod

被设为污点的节点,不会部署pod

污点和亲和性相反,亲和性是尽量选择和一定选择

污点的节点一定不被选择?

taint三种:

1、NoSchedule:k8s不会把pod调度到这个节点上

2、PreferNoschedule:如果污点类型他,尽量避免把pod部署在该节点上,不是一定(master节点的污点就是这个)

3、NoExecute:如果污点类型是他,k8s将会把该节点上的pod驱逐出去,而且也不会调度到这个节点

基于控制器创建的pod,虽然被驱逐,会在其他节点重新部署

自主pod会被直接杀死

注意点:节点服务器需要维护的,服务器关机,节点上pod将会失效。在工作中我们主要部署pod的方式控制器部署。deployment最多的,一旦节点设置为驱逐,控制器创建的pod会在其他节点重新部署

所有的pod都会被驱逐,跟命名空间无关,所有的一切都会被驱逐

不论你的创建方式是什么,都会被驱逐

系统集群组件不会被驱逐*

查看污点:kubectl describe nodes master01 | grep -i taints

设置污点:kubectl taint node node01 key=1:NoSchedule

去除污点:kubectl taint node01 key:NoSchedule-

容忍:即使节点上设置了污点,有了容忍机制,依然可以部署pod

特殊情况:NoExecute依然可以部署pod,但是有生命周期,时间一到,pod会被销毁,生命周期结束之后,会被驱逐一部分pod到其他节点,有的节点还是会保留在污点节点上

该节点维护完毕,测试以下节点的工作是否正常

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

加上容忍时间

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

tolerations:

  -key:key

   operator:Exists

指定key的值,指标节点的标签值,但是不指定污点的类型,那么所有节点上只要包含了这个指定的标签名,可以容忍所有的污点

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

node的亲和性

pod的亲和性和反亲和性

污点和容忍

如何选择node节点部署pod

选择一个期望的节点来部署pod

pod的亲和性和反亲和性,kubernetes,java,docker,k8s,网络,容器,云原生

一旦节点恢复,一定要把污点去除

cordon和drain

cordon:可以直接把节点标记为不可用状态

drain:排水,把该节点下的pod全部转移到其他的node节点上运行

1、一旦执行drain,被执行的节点会变成不可调度状态

2、会驱逐该节点上的所有的pod

kubectl drain node02 --ignore-daemonsets --delete-local-data --force

drain:排水,标记node节点为不可调度,然后驱逐pod

--ignore-daemonsets:忽视daemonsets部署的pod,daemonsets部署的pod还在节点

--delete-local-data:有本地挂载卷的pod会被强制杀死

--force:强制释放不是控制器管理的pod

还是如何来管理和部署pod

node亲和性                

pod的亲和性和反亲和性

污点:

NoExecute文章来源地址https://www.toymoban.com/news/detail-817738.html

到了这里,关于pod的亲和性和反亲和性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8s(二)Pod资源——node调度策略、node亲和性、污点与容忍度

    目录 node调度策略nodeName和nodeSelector 指定nodeName 指定nodeSelector node亲和性 node节点亲和性 硬亲和性 软亲和性 污点与容忍度 本文主要介绍了在pod中,与node相关的调度策略,亲和性,污点与容忍度等的内容 在创建pod等资源时,可以通过调整字段进行node调度,指定资源调度到满足

    2024年01月17日
    浏览(47)
  • K8S亲和性,反亲和性,及污点

    nodeName:硬匹配,不走调度策略 nodeSelector:根据节点的标签选择,会走调度的算法 只要是走调度算法,在不满足预算策略的情况下,所有pod都是pending node节点的亲和性: 硬策略:必须满足的条件。匹配原则也是根据节点的标签 软策略:尽量满足你的要求,而不是一定满足

    2024年01月16日
    浏览(41)
  • Kubernetes亲和性学习笔记

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本文是欣宸在学习Kubernetes调度器的过程中,对亲和性相关知识点的整理和总结,这是一篇笔记性质的博客 调度过程如下: 预选(Predicates) 优选(Priorities) 选定(Select) 这里将亲和性先分类,便

    2024年02月17日
    浏览(36)
  • k8s~节点的亲和性

    在Kubernetes中,你可以使用节点亲和性(Node Affinity)来控制Pod部署在哪些节点上。通过配置节点亲和性,你可以指定一些规则,以确保多个服务不会被调度到同一个节点上。 requiredDuringSchedulingIgnoredDuringExecution:通过 requiredDuringSchedulingIgnoredDuringExecution ,可以定义在调度期间必

    2024年02月13日
    浏览(41)
  • k8s之亲和性、污点

    目录 亲和性 键值运算关系 硬策略 软策略 Pod亲和性与反亲和性 污点(Taint) 和 容忍(Tolerations) 污点(Taint)  容忍(Tolerations) 维护操作 故障排除步骤 官方介绍:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/ (1)节点亲和性 pod.spec.nodeAffinity ●preferredDuringSchedulingIgnore

    2024年02月06日
    浏览(38)
  • K8s之标签、Node选择器与亲和性详解

    1、标签是什么? 标签其实就是一对key/value,key的值必须唯一 标签可以在创建一个对象的时候直接定义,也可以在后期随时修改,每一个对象可以拥有多个标签 标签可以用来划分特定的对象(比如版本,服务类型等) 创建标签后,方便我们对资源进行分组管理(通过标签查

    2024年02月07日
    浏览(35)
  • 【k8s】pod调度——亲和,反亲和,污点,容忍

    官方网址:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/ pod.spec.nodeAffinity ●preferredDuringSchedulingIgnoredDuringExecution:软策略  p开头 ●requiredDuringSchedulingIgnoredDuringExecution:硬策略  r开头 pod.spec.affinity.podAffinity/podAntiAffinity ●preferredDuringSchedulingIgnoredDuringExecution:软策

    2024年02月05日
    浏览(41)
  • 【Kubernetes】K8s 查看 Pod 的状态

    NAME :Pod 的名称。 READY :代表 Pod 里面有几个容器,前面是启动的,后面是总数, 1 / 1 1/1 1/1 。 STATUS :就是当前 Pod 状态,最常见的就是 Running 正在运行,最期望的状态,只要不是 Running 的就说明有问题,就算是 Running 的就不一定没有问题。 状态 说明 Pending 挂起 在执行创建

    2024年01月15日
    浏览(92)
  • kubernetes(k8s) pod(资源限制、基础概念)

    目录  一、资源限制 1、概念 1.2、Pod和容器的资源请求和限制 1.3、CPU资源单位 1.4、内存资源单位 1.5、CPU和内存的Requests和Limits的特点 1.6、案例 二、pod 的两种使用方式 三、pod 资源共享 四、底层容器Pause 1、pause 共享资源 1.1、网络 1.2、存储 1.3、小结 2、Pause主要功能 3、Pod

    2024年02月05日
    浏览(72)
  • Kubernetes(k8s)核心资源解析:Pod详解

    💖The Begin💖点点关注,收藏不迷路💖 Pod是Kubernetes中最小的调度单元,它可以包含一个或多个容器。Pod中的所有容器共享网络和存储卷,它们一起运行在同一个节点上。Pod提供了一种抽象层,使得容器可以作为一个逻辑单元来管理。 Pod中的容器共享IP地址、端口空间和存储

    2024年04月11日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包