首页 > 其他分享 >Kubernetes——浅聊 Affinity,就这么点东西

Kubernetes——浅聊 Affinity,就这么点东西

时间:2023-04-28 15:15:16浏览次数:39  
标签:Kubernetes 浅聊 标签 亲和性 调度 Affinity Pod 节点

浅聊 Affinity,就这么点东西

在 Kubernetes 中,Affinity 是指用于控制 Pod 调度的策略,包括亲和性(Affinity)反亲和性(Anti-Affinity)2种。

亲和性(Affinity)包括 NodeAffinity 和 PodAffinity 2种。

 一、亲和性(Affinity)

  • 表示 Pod 需要部署在哪些节点上。比如需要部署在某些特定的节点或者跟其他某些节点上的 Pod 在同一个节点上。
    • NodeAffinity:用于将 Pod 调度到特定的节点上,可以指定 Pod 可调度的节点的标签要求。nodeAffinity 又包含以下两个方面:
      • 硬亲和 requiredDuringSchedulingIgnoredDuringExecution:表示 Pod 只能调度到满足指定标签要求的节点上。

      • 软亲和 preferredDuringSchedulingIgnoredDuringExecution:表示如果有多个节点同时满足指定标签要求,优先调度 Pod 到这些节点上。
    • PodAffinity:用于将 Pod 部署到与其他 Pod 所在节点相同的节点上,可以指定其他 Pod 的标签要求。podAffinity 包含以下三个方面:
      • requiredDuringSchedulingIgnoredDuringExecution:表示 Pod 只能调度到其他 Pod 所在节点上,这些节点需要满足指定标签的要求。

      • preferredDuringSchedulingIgnoredDuringExecution:表示 Pod 优先调度到其他 Pod 所在节点上,这些节点需要满足指定标签的要求。

      • requiredDuringSchedulingRequiredDuringExecution:表示 Pod 必须调度到与其他 Pod 所处节点相同的节点上

二、反亲和性(Anti-Affinity)

  • 表示 Pod 不能部署在哪些节点上。如不能与某些特定的节点或者跟某些 Pod 在同一个节点上。
    • NodeAntiAffinity:确保同一节点上运行的 Pod 来自不同的批次或不同的服务。
      • 硬反亲和 requiredDuringSchedulingIgnoredDuringExecution:表示强制规定同一个容器组内的 Pod 不能调度到同一个节点上。

      • 软反亲和 preferredDuringSchedulingIgnoredDuringExecution:表示会尽可能让调度器将同一个容器组内的 Pod 分散到多个节点上,但是如果没有其他可以选择的节点,它仍然可以调度到同一个节点上。
    • PodAntiAffinity:确保同一批副本中的 Pod 不会被调度到同一节点上。

 

标签:Kubernetes,浅聊,标签,亲和性,调度,Affinity,Pod,节点
From: https://www.cnblogs.com/zuoyang/p/17362230.html

相关文章

  • Kubernetes 之 Prometheus 监控 blackbox_exporter
      下载地址:https://prometheus.io/download/#blackbox_exporter#blackbox_exporter是Prometheus官方提供的一个exporter,可以监控HTTP、HTTPS,、DNS、TCP、ICMP等目标实例,#从而实现对被监控节点进行监控和数据采集。#HTTP/HTPPS:URL/API可用性检测#TCP:端口监......
  • Kubernetes 设置命令行的命名空间
    在较新版本的Kubernetes中,kubectl的默认命名空间已经不再是default,而是用户的当前命名空间。这是因为Kubernetes强烈建议您在不同的命名空间中隔离应用程序和资源,因此kubectl默认使用用户当前的命名空间来提高生产力。您可以使用以下命令来查看当前所在的命名空间:arduin......
  • Kubernetes 1.3 从入门到进阶 安装篇:minikube
    Kubernetes单机运行环境一直是一个没有得到重视的问题。现在我们有了minikube,一个用go语言开发的可以在本地运行kubernetes的利器,不过目前应该只是支持kubernetes1.3。如果你只有一台机器或者虚拟机又想试验一下Kubernetes的新的功能,或者作kubernetes上开发的本地环境,minikube可能......
  • start minikube with Kubernetes 1.26
    适合于--kubernetes-version=v1.23.3之后的版本,可以使用docker驱动运行minikubestart--driver=docker--image-mirror-country='cn'--force--kubernetes-version=1.26.0--extra-config=apiserver.runtime-config=admissionregistration.k8s.io/v1alpha1--feature-gates=......
  • Kubernetes(K8S) kubesphere 安装
    安装KubeSphere最好的方法就是参考官方文档,而且官方文档是中文的。官网地址:https://kubesphere.com.cn/https://github.com/kubesphere/kubesphere/blob/master/README_zh.mdKubernetes(K8S)kubesphere介绍安装提前条件:使用Kubeadm部署Kubernetes(K8S)安装--附K8S架构......
  • kubernetes 服务发现机制:环境变量和DNS
    1. 环境变量创建pod资源时,kubectl会将其所属名称空间内的每个活动的service对象以一系列环境变量的形式注入其中。但是也仅仅只是注入创建时候的资源,后面的变化它时不感知的。我有个game服务:qiteck@server:~$sudokubectlgetservice|grepgamegameNodePort......
  • Kubernetes(K8S) kubesphere 介绍
    使用Kubeadm部署Kubernetes(K8S)安装--附K8S架构图官网地址:https://kubesphere.com.cn/KubeSphere是个全栈的Kubernetes容器云PaaS解决方案KubeSphere是在目前主流容器调度平台Kubernetes之上构建的企业级分布式多租户容器平台,提供简单易用的操作界面以及向导式操作方......
  • kubernetes 1.27.1最新版集群部署
    kubernetes1.27.1最新版集群部署国内环境官方安装部署文档:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/准备云服务器首先买三台服务器。我用的阿里云服务器。三台服务器如下,然后我用的Tabby连接三台服务器。我以i-bp......
  • mac os下安装k8s的kubernetes-dashboard
     需要这个的继续往下看 环境macos 12.6.2 安装dokcer https://docs.docker.com/desktop/install/mac-install/安装k8s https://blog.csdn.net/qq_20042935/article/details/124472626 <-看这位兄弟写的很详细了安装kubernetes-dashboard 1.创建命名空间 kubec......
  • kubernetes 使用 1
    安装1.用以下命令下载最新发行版:curl-LO"https://dl.k8s.io/release/$(curl-L-shttps://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"可以用以下方式指定版本curl-LOhttps://dl.k8s.io/release/v1.27.0/bin/linux/amd64/kubectl2.验证该可执行文件(可选步......