NOTE

基于 CAS 操作实现无锁队列

目录 Golang 中的 CAS 操作 实现无锁队列 相关数据结构 算法实现 参考 在并发编程中,为防止多个 goroutine 同时修改一个对象,我们一般是事先设置一把锁 sync.Mutex,要想修改对象,需要提前获取这把锁,拿不到锁就需要阻塞,直到其他 goroutine 释放锁。相对于 sync.Mutex(排它锁...

多副本选主 LeaderElection 的实现

一些K8s控制组件有多个副本,如Kube-Scheduler,Kube-ControllerManager等。但同一个时刻,只有一个副本处于工作状态,其他组件处于Standby状态。这里以sig-storage-lib-external-provisioner为例研究一下选主的实现与使用。 程序的框架如下: // "k8s.io/client-go/tools/leaderelectio...

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...