NOTE

PromQL 是如何计算容器 cpu 利用率的

目录 cpu 利用率高告警指标 1.计算容器使用核数 2.计算容器的 cpu limit 3.计算使用率 cpu 利用率高告警指标 我们先从告警指标说起,关于 Kubernetes 集群中的告警指标,开源项目 awesome-prometheus-alerts 提供了一些方案,真的是非常的 awesome。 对于 cpu 资源利用率高,该项目给出的告警规则为 dock...

prometheus 监控基础

目录 指标类型及使用 查询结果数据类型 聚合运算符 Count 函数 rate 与 irate increase 本地 metrics 数据缓存 指标类型及使用 参考官方文档 METRIC TYPES,官方文档同时给出了每种指标类型的代码 example。 Gauge:表示可以任意增加或者减小的指标,比如内存使...

K8s Apiserver max-requests-inflight 流控实现

了解下,Kubernetes Apiserver 中的 --max-mutating-requests-inflight(Default: 200)以及 --max-requests-inflight(Default: 400)是怎么实现的。 代码路径为:kubernetes/staging/src/k8s.io/apiserver/pkg/server/config.go Apiser...

K8s 里的 Client: Discovery 以及 Unstructured

文章目录 概述 structured client 处理自定义资源 cr discovery client unstructured client 根据 gvr 获取资源 通过 unstructured client 创建资源 dynamic informer 概述 除了我们常用...

通过 Topology Manager 开启绑核功能

Kubelet有个Topology Manager可以对Guaranteed的Pod进行绑核,绑核有两个条件: Pod需要为GuaranteedQOS,并且cpu数值必须为整数核数。 Kubelet的参数cpu-manager-policy必须设置为static,这个可以参考Control CPU Management Policies on the Node 另外如果pod只...

cpuset/NUMA 相关知识

官方文档地址:https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt 基础 numa (Non-Uniform Memory Access),主要是为了避免多个cpu竞争总线,这里的总线是指:CPU和内存控制器之间的前端总线 (FSB)。架构图如下,从这里cgroup 之 cpuset 简介盗来的 lscpu命令,...

关于 InClusterConfig 的一些知识

我们在容器中,一般使用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 理论诞生的背景 CAP 理论的是在“数据一致性 VS 可用性”的争论中产生。...

Apiserver 问题排查: too old resource version

回顾一下常见的 too old resource version 问题,该报错错误信息如下,其中 1785219 是请求带过去的 rv(resource version),1787027 是 apiserver 缓存中最新的 rv,本文基于的 K8s 版本是 K8s1.16。 [kubelet] E0225 18:46:00.688601 62642 reflector.go:227] ...