通过 Topology Manager 开启绑核功能
Kubelet有个Topology Manager可以对Guaranteed的Pod进行绑核,绑核有两个条件: Pod需要为GuaranteedQOS,并且cpu数值必须为整数核数。 Kubelet的参数cpu-manager-policy必须设置为static,这个可以参考Control CPU Management Policies on the Node 另外如果pod只...
Kubelet有个Topology Manager可以对Guaranteed的Pod进行绑核,绑核有两个条件: Pod需要为GuaranteedQOS,并且cpu数值必须为整数核数。 Kubelet的参数cpu-manager-policy必须设置为static,这个可以参考Control CPU Management Policies on the Node 另外如果pod只...
官方文档地址:https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt 基础 numa (Non-Uniform Memory Access),主要是为了避免多个cpu竞争总线,这里的总线是指:CPU和内存控制器之间的前端总线 (FSB)。架构图如下,从这里cgroup 之 cpuset 简介盗来的 lscpu命令,...
我们在容器中,一般使用InClusterConfig来构造Kubernetes ClientSet,并访问K8s Apiserver。使用示例如下: // "k8s.io/client-go/kubernetes" // "k8s.io/client-go/rest" config, err := rest.InClusterConfig() if err != nil { kl...
虽然从事分布式相关工作,对这些理论的认识基本为0,这里发现阿里云栖有一些博客讲的不错,这里搬运过来。顺便感慨一句,这些东西毕业的时候面试也会被问题,那个时候也强行去解释这些东西,现在看来,当时根本什么都不懂。 本文原文地址为:分布式系统:一致性模型,作者为肖汉松,作者还有很多其他优质的博客:https://developer.aliyun.com/profile/rkkakftgd6vnq...
原文地址:分布式系统:CAP 理论的前世今生,作者:肖汉松 简介 CAP 理论是分布式系统设计中的一个重要理论,虽然它为系统设计提供了非常有用的依据,但是也带来了很多误解。本文将从 CAP 诞生的背景说起,然后对理论进行解释,最后对 CAP 在当前背景下的一些新理解进行分析,澄清一些对 CAP 的误解。 CAP 理论诞生的背景 CAP 理论的是在“数据一致性 VS 可用性”的争论中产生。...
回顾一下常见的 too old resource version 问题,该报错错误信息如下,其中 1785219 是请求带过去的 rv(resource version),1787027 是 apiserver 缓存中最新的 rv,本文基于的 K8s 版本是 K8s1.16。 [kubelet] E0225 18:46:00.688601 62642 reflector.go:227] ...
因为前段时间集群遇到了 Too large resource version 的问题,感觉有必要理解下 Apiserver 中的缓存层是怎么工作的,以及其事件窗口是怎么设计的。本文参考的 K8s 版本为 1.16。缓存层主要设计到三个组件 Cacher、watchCache、cacherWatcher,本文不会面面俱到的介绍,重在理解整个过程。 分析过程以 Deployment 资源为例,...
前段时间集群内的 elastic-operator 一直报错,报错跟下面类似,都是报 Too large resource version 的问题。记录下排查过程和相关知识点。 E0513 19:45:35.671005 598 reflector.go:178] object-"kube-system"/"kube-router-token-4px26": Failed to li...
使用 xfs_quota 可以实现磁盘容量隔离,本文介绍一下 xfs_quota 工具的使用 准备 分为未挂载设和已挂载设备两种,对于未挂载设备,在挂载设备的时候指定 prjquota 就可以了,比如: root@ubuntu:~# mount -o prjquota /dev/loop5 /data/volumes/xfs32m root@ubuntu:~# mount | grep l...
目录 Cache State Machine schedulerCache 结构体及其 Cache 接口实现 清空 Assume 过期的 Pod K8s调度器的SchedulerCache是其工作的核心,用来缓存所有已经调度过的pod,这些pod按照Node来进行划分,每个Node包含一个NodeInfo,包含一个该节点上的所有的pod。本文基于K8s1.14分析下Sche...