当前位置:网站首页>【Kubernetes】Kubernetes 原理剖析与实战应用(更新中)
【Kubernetes】Kubernetes 原理剖析与实战应用(更新中)
2022-06-26 18:20:00 【curd_boy】
Kubernete 怎样控制业务的资源水位?

VPA

资源优化:Kubernete 中GC(垃圾回收)


K8S的调度优先级与抢占机制
官方文档 https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
正常情况下
当一个Pod调度失败后,它就会被暂时“搁置”起来,直到Pod被更新,或者集群状态发生变化,调度器才会对这个Pod进行重新调度
优先级和抢占机制,解决的是Pod调度失败时该怎么办的问题
在调度过程中,会有各种预选和优选算法,在经过了那么多道门槛之后,一个POD才能完成调度,提供服务,在调度过程中,假设有一个很重要的系统服务调度失败了,导致了故障,为了避免这种情况,我们可以对该应用设置一个相对较高的优先级,在调度失败后,将一些优先级相对较低的不是那么重要的应用”挤走“,这就是K8S调度的优先级和抢占的作用。
特殊要求的场景:
当一个高优先级的Pod调度失败后,该Pod并不会被“搁置”,而是会“挤走”某个Node上的一些低优先级的Pod.这样就保证这个高优先级Pod的调度成功
PriorityClass参数限制
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority-nonpreempting
value: 1000000
preemptionPolicy: Never
globalDefault: false
description: "This priority class will not cause other pods to be preempted."
Kubernetes规定优先级是一个32bit的整数,最大值不超过1000000000(10 亿,1 billion),并且值越大代表优先级越高.而超出10亿的值,其实是被Kubernetes保留下来分配给系统 Pod 使用的.这样做的目的,就是保证系统Pod不会被用户抢占掉。

tips:
K8S在发生调度失败后,会基于优先级进行抢占,抢占并不是简单的将Node上的低优先级的pod”挤走“,抢占的设计还是相对比较有意思的。
https://blog.51cto.com/u_2010293/2781899
Kubernete中定时任务
https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/
CronJob Spec
.spec.schedule:调度,必需字段,指定任务运行周期,格式同 Cron
.spec.jobTemplate:Job 模板,必需字段,指定需要运行的任务,格式同 Job
.spec.startingDeadlineSeconds :启动 Job 的期限(秒级别),该字段是可选的。如果因为任何原因而错过了被调度的时间,那么错过执行时间的 Job 将被认为是失败的。如果没有指定,则没有期限
.spec.concurrencyPolicy:并发策略,该字段也是可选的。它指定了如何处理被 Cron Job 创建的 Job 的并发执行。只允许指定下面策略中的一种:
- Allow(默认):允许并发运行 Job
- Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
- Replace:取消当前正在运行的 Job,用一个新的来替换
注意,当前策略只能应用于同一个 Cron Job 创建的 Job。如果存在多个 Cron Job,它们创建的 Job 之间总是允许并发运行。
.spec.suspend :挂起,该字段也是可选的。如果设置为 true,后续所有执行都会被挂起。它对已经开始执行的 Job 不起作用。默认值为 false。
.spec.successfulJobsHistoryLimit 和 .spec.failedJobsHistoryLimit :历史限制,是可选的字段。它们指定了可以保留多少完成和失败的 Job。
默认情况下,它们分别设置为 3 和 1。设置限制的值为 0,相关类型的 Job 完成后将不会被保留。
边栏推荐
- How to open a stock account? Is it safe to open an account online now?
- Binary search-2
- How to create and enforce indexes
- IDEA收藏代码、快速打开favorites收藏窗口
- Do you know how to compare two objects
- Image binarization
- MYSQL的下载与配置 mysql远程操控
- How about opening an account at Guojin securities? Is it safe to open an account?
- Please advise tonghuashun which securities firm to choose for opening an account? Is it safe to open an account online now?
- (必须掌握的多线程知识点)认识线程,创建线程,使用Thread的常见方法及属性,以及线程的状态和状态转移的意义
猜你喜欢

Decision tree and random forest

Analysis of deep security definition and encryption technology

Leetcode 128 longest continuous sequence

Concept and working principle of data encryption standard (DES)

VCD-影音光碟

Detailed explanation of dos and attack methods

Numpy之matplotlib

爬取豆瓣读书Top250,导入sqlist数据库(或excel表格)中

分页查询、JOIN关联查询优化

Class inheritance of 25class
随机推荐
同花顺开户怎么样安全吗?怎么炒股开户
Handwritten promise all
软考备战多媒体系统
Decision tree and random forest
输入n个整数,输出出现次数大于等于数组长度一半的数
Applet setting button sharing function
JS cast
Usage and difference between ros:: spinonce() and ros:: spin()
idea中文插件chinese(simplified) language pack
CD-CompactDisk
成功解决之微服务@Value获取配置文件乱码问题
Using recursion to find all gray codes with n bits
Deep learning: numpy
Analysis of deep security definition and encryption technology
50行代码爬取Top500图书导入TXT文档
Plt How to keep show() not closed
Clion编译catkin_ws(ROS工作空间包的简称)加载CMakeLists.txt出现的问题
LeetCode 128最长连续序列
基于tensorflow的手写数字识别
How about opening an account at Guojin securities? Is it safe to open an account?