当前位置: 首页 > news >正文

wordpress站长新乡网站建设专业熊掌网络

wordpress站长,新乡网站建设专业熊掌网络,用淘宝做公司网站,永久免费可联网的进销存软件提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、调度流程二、kuble-scheduler 调度原理1 kubernetes 1.23版本调度器filter阶段和score阶段源码分析2 修改调度器插件默认权重示例2.1 环境准备2.2 调整Inte…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、调度流程
  • 二、kuble-scheduler 调度原理
    • 1 kubernetes 1.23版本调度器filter阶段和score阶段源码分析
    • 2 修改调度器插件默认权重示例
      • 2.1 环境准备
      • 2.2 调整InterPodAffinity权重,使工作负载test调度至节点k8s-0002
      • 2.3 调整NodeAffinity权重,使工作负载test调度至节点k8s-0001


前言

kube-scheduler作为 K8s 集群的默认调度器,它监听(watch机制)kube-apiserver,查询还未调度的 pod,根据调度策略将 pod 调度至集群内最适合的Node。


提示:以下是本篇文章正文内容,下面案例可供参考

一、调度流程

首先我们通过 API 或者 kubectl 工具创建 pod,kube-apiserver 收到请求信息存储到 etcd 中,调度器通过 watch 机制监听 apiserver 查看到还未被调度的 pod 列表,循环遍历的为每个 pod 尝试分配 node,这个分配过程如下:

  • kube-scheduler 内 Informer 组件 list-watch apiserver,使用spec.nodeName=""筛选出还未调度的 Pod
  • 预选(predicate):调度器通过 Predicate 算法过滤掉不满足条件的节点
  • 优选(priorlty):对于通过预选的节点,通过打分机制,筛选出得分最高的node
  • 当调度器为 Pod 选择了一个合适的节点后,将 Pod 和节点进行绑定(将节点名称赋值给 pod 的 spec.nodeName 字段)
    在这里插入图片描述
    注意:Pod.spec.nodeName 用于强制约束将 Pod 调度到指定的 Node上,通过指定 nodeName 可直接绕过调度器,并不会做任何的资源过滤和检查。

二、kuble-scheduler 调度原理

Kube-scheduler 的调度框架,在 Kubernetes 里面叫作 Scheduler Framework。Pod 在调度过程中,都需要依次经过以下的各个阶段,每个阶段自带调度算法,调度算法由插件提供,也可以在指定阶段开发自己的插件。每个插件可以在指定阶段实现具体的调度算法,比如 NodeAffinity 插件在 Filter 阶段过滤掉与 Pod 不亲和的节点。

  • PreFilter:预处理 Pod 的相关信息,或者检查集群或 Pod 必须满足的某些条件。如果 PreFilter 插件返回错误,则调度周期将终止
  • Filter: 过滤出不能运行该 Pod 的节点。对于每个节点,调度器将按照其配置顺序调用这些过滤插件。如果任何过滤插件将节点标记为不可行,则节点直接排除,不会为该节点调用剩下的过滤插件
  • PostFilter: 在 Filter 阶段后调用,但仅在该 Pod 没有可行的节点时调用。典型的后筛选实现是抢占,试图通过抢占其他 Pod 的资源使该 Pod 可以调度
  • PreScore: 运行评分任务以生成可评分插件的共享状态,如果 PreScore 插件返回错误,则调度周期将终止
  • Score: 通过调用每个评分插件对可调度节点评分
  • NormalizeScore: 规范每个插件的打分在[0,100]之间
  • Reserve: 在绑定周期之前选择保留的节点
  • Permit: 批准或拒绝 pod 调度周期的结果
  • PreBind: 用于执行 Pod 绑定前所需的任何工作。例如,一个预绑定插件可能需要提供网络卷并且在允许 Pod 运行在该节点之前 将其挂载到目标节点上
  • Bind: 用于将 Pod 绑定到节点上。直到所有的 PreBind 插件都完成,Bind 插件才会被调用
  • PostBind: 这是个信息性的扩展点。绑定后插件在 Pod 成功绑定后被调用。这是绑定周期的结尾,可用于清理相关的资源

调度器预选阶段对应filter,主要用于过滤不满足 Pod 调度条件的节点;优选阶段对应 score,主要用于为每个节点打分,节点分数=插件打分*插件权重;然后排序选出分数最高的节点。

在这里插入图片描述

1 kubernetes 1.23版本调度器filter阶段和score阶段源码分析

在这里插入图片描述

2 修改调度器插件默认权重示例

2.1 环境准备

环境:(集群中有两个节点:k8s-0001和 k8s-0002;已有工作负载 nginx,调度至节点 k8s-0002,工作负载 test),yaml 文件如下:

apiVersion: apps/v1
kind: Deployment
metadata:name: test
spec:selector:matchLabels:app: testtemplate:metadata:labels:app: testspec:containers:- name: container-1image: nginx:latestdnsPolicy: ClusterFirstaffinity:nodeAffinity:     #利用节点亲和使其调度至k8s-0001preferredDuringSchedulingIgnoredDuringExecution:- weight: 1preference:matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- k8s-0001podAffinity:      #利用负载亲和使其调度至k8s-0002preferredDuringSchedulingIgnoredDuringExecution:- weight: 1podAffinityTerm:labelSelector:matchExpressions:- key: appoperator: Invalues:- nginxnamespaces:- defaulttopologyKey: kubernetes.io/hostnam

2.2 调整InterPodAffinity权重,使工作负载test调度至节点k8s-0002

apiVersion: v1
kind: ConfigMap
metadata:name: scheduler-confignamespace: kube-system
data:scheduler-config.yaml: |apiVersion: kubescheduler.config.k8s.io/v1beta3  #1.23以上版本集群可用v1beta3kind: KubeSchedulerConfigurationprofiles:- schedulerName: default-scheduler plugins:score:disabled:- name: InterPodAffinity- name: NodeAffinityenabled:- name: InterPodAffinity  #提高负载亲和权重weight: 100- name: NodeAffinityweight: 1

查看 kube-scheduler 调度日志,k8s-002 score得分为打分100 * 权重 100共得10000分,调度到 k8s-002 节点上。

在这里插入图片描述

2.3 调整NodeAffinity权重,使工作负载test调度至节点k8s-0001

apiVersion: v1
kind: ConfigMap
metadata:name: scheduler-confignamespace: kube-system
data:scheduler-config.yaml: |apiVersion: kubescheduler.config.k8s.io/v1beta3kind: KubeSchedulerConfigurationprofiles:- schedulerName: default-scheduler plugins:score:disabled:- name: InterPodAffinity- name: NodeAffinityenabled:- name: InterPodAffinityweight: 1- name: NodeAffinity      #提高节点亲和权重weight: 100

在这里插入图片描述

http://www.yayakq.cn/news/358017/

相关文章:

  • 做中文网站的公司企业做淘宝客网站
  • 房产如何做网站网站制作综述
  • 怎么做网站的效果图北京建设信源官方网站
  • 上海城乡建设网站证件查询购物网站开发一般使用什么语言
  • 百度权重4网站值多少钱网站中验证码如何做的
  • 长沙学做网站建设校园网站制度建设
  • 网站设计制作电影宁波网站建设网络推广
  • 北京网站建设策划排名提交网站入口
  • 企业网站开发一般多少钱柯基
  • 动易做网站永州市建设工程质量安全监督站官方网站
  • 服装网站html模板校园网站建设指导思想
  • 青岛网站建设选圣城z怎么做优惠券网站
  • 公司电商网站建设费用怎么记账沧州网页重做
  • 求购信息网站合肥
  • 北京的网站开发公司任丘建设网站制作
  • 家具网站asp软件开发入门先学什么
  • 个人网站备案 资料wordpress文章自动采集发布
  • 网站seo怎么填写深圳品牌网站推广公司
  • 五常市网站app定制开发网络公司
  • 一个网站需要多少空间西安建设银行网站
  • 单片机和做网站河南省企业年报网上申报入口
  • 网站中队人物介绍怎么做赣州一店面爆炸4死
  • 驻马店营销型网站建设优化推广通常做网站要多久
  • 编辑网站教程虾想网络定制
  • 免费做网站排名wordpress 公园
  • 建设银行公积金预约网站首页门户平台是什么意思
  • 网站到底怎么做出来的建设银行电脑版官方网站
  • 新郑做网站涟源seo快速排名
  • 网站建设托管产品图找人做事的网站
  • 宛城区网站制作什么样 个人网站 备案