摘要: package dag import ( "errors" "fmt" "strings" "github.com/tektoncd/pipeline/pkg/list" "k8s.io/apimachinery/pkg/util/sets" ) // Task is an interface fo 阅读全文
posted @ 2022-01-05 09:54 JL_Zhou 阅读(100) 评论(0) 推荐(0) 编辑
摘要: Tcp链接关闭 在linux中,一切皆文件,本身socket就是一种文件类型,内核会为每一个打开的文件创建file结构并维护指向改结构的引用计数,每一个进程结构中都会维护本进程打开的文件数组,数组下标就是fd,内容就指向上面的file结构,close本身就可以用来操作所有的文件,做的事就是,删除本进 阅读全文
posted @ 2021-11-10 15:01 JL_Zhou 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 画了一个图来描述一个问题:某个deployment一直都是通过模板生成yaml并通过kubectl apply到集群,如果现在直接在集群上通过通过kubectl edit增加一段apply的模板中没有的配置项,下次通过模板继续apply更新,kubectl edit增加的部分会被置空吗? 答案是并不 阅读全文
posted @ 2021-08-13 21:09 JL_Zhou 阅读(867) 评论(0) 推荐(0) 编辑
摘要: patch容易出现字段冲突 近期在使用client-go对某个k8s原生资源进行patch操作时,出现了字段冲突导致的patch失败问题,具体是patch尝试修改资源的某个字段的类型,比如将readiness probe的类型从tcp修改为httpGet,patch时希望修改probe类型但被认为是 阅读全文
posted @ 2021-08-01 13:58 JL_Zhou 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 以控制器的视角看pod的删除过程 控制器收到的事件 client-go中的informer通过reflector watch到的事件对象,类型可以是:Add、Modify、Delete,分别代表对象的增加、更新和删除事件 以删除pod为例,当用户尝试删除一个pod时,外部控制器将能够获取到该pod的 阅读全文
posted @ 2021-08-01 09:54 JL_Zhou 阅读(499) 评论(0) 推荐(0) 编辑
摘要: client-go中什么时候会发生re-list 我们知道client-go中的reflector模块首先会list apiserver获取某个资源的全量信息,然后根据list到的rv来watch资源的增量信息。我们希望使用client-go编写的控制器组件在与apiserver发生连接异常时,尽量 阅读全文
posted @ 2021-08-01 09:53 JL_Zhou 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 集群信息 calico配置 apiVersion: crd.projectcalico.org/v1 kind: IPPool metadata: name: default-ipv4-ippool spec: blockSize: 26 cidr: 10.10.0.0/16 ipipMode: A 阅读全文
posted @ 2021-06-20 20:45 JL_Zhou 阅读(1114) 评论(0) 推荐(1) 编辑
摘要: 现象 用户通过在deployment中配置nodeName字段来直接绑定pod到特定的节点做相关测试验证,此时该deployment对应的pod不断被创建出来,短时间被创建出数千个pod,且状态均为Outofpods Kubernetes release-1.16 总结 用户通过在deploymen 阅读全文
posted @ 2021-05-23 15:38 JL_Zhou 阅读(2449) 评论(2) 推荐(0) 编辑
摘要: 当我们需要利用client-go来实现自定义控制器时,通常会使用informerFactory来管理控制器需要的多个资源对象的informer实例 // 创建一个informer factory kubeInformerFactory := kubeinformers.NewSharedInform 阅读全文
posted @ 2021-05-14 15:34 JL_Zhou 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 环境 kubernetes 1.12.1 内核版本 3.10.0-1062.18.1.el7.x86_64 docker版本 1.13.1-162 kube-proxy使用iptables mode pod网络 flannel vxlan 在集群中存在两个Service分别是prometheus和k 阅读全文
posted @ 2020-10-09 10:01 JL_Zhou 阅读(486) 评论(0) 推荐(0) 编辑
摘要: K8s中的control-plane包括了apiserver、controller-manager、scheduler、etcd,当搭建高可用集群时就会涉及到部分组件的选主问题。etcd是整个集群所有状态信息的存储,涉及数据的读写和多个etcd之间数据的同步,对数据的一致性要求严格,所以使用较复杂的 阅读全文
posted @ 2020-09-11 14:34 JL_Zhou 阅读(2860) 评论(0) 推荐(0) 编辑
摘要: 使用k8s的扩展调度器机制来实现当某个基础监控的服务Pod不Ready时,这个Pod所在的节点就不允许调度,例如Pod(daemonset形式部署)中的服务会检测节点的CNI网络插件如果没有正常工作,这个Pod的由于探针作用就会变成不Ready的,那么扩展调度器就会避免调度业务Pod到该节点。在实践 阅读全文
posted @ 2020-08-31 10:13 JL_Zhou 阅读(1380) 评论(0) 推荐(0) 编辑
摘要: 0、metric_relabel_configs一个常用的用途:drop不需要的数据,不保存在Prometheus 中。 1、统计计算节点已经分配的cpu/memory request占节点Allocatable的百分比(类似kubectl describe node) sum(kube_pod_c 阅读全文
posted @ 2020-08-27 16:54 JL_Zhou 阅读(2370) 评论(0) 推荐(0) 编辑
摘要: 背景 容器云出现大量业务接口访问失败告警,观察到批量业务Pod状态变成MatchNodeSelector状态,同时调度生成新的Pod,由于目前未完全推广使用Pod优雅退出方案,在旧pod中的容器被删除,新pod创建起来的过错中就必然会导致交易丢失了。这次事件中我们观察到的现象是: 0、监控发现三个M 阅读全文
posted @ 2020-08-19 12:46 JL_Zhou 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 通过top或着uptime命令可以看到系统的平均负载,如下,分别表示过去 1 分钟、5 分钟、15 分钟的系统平均负载(之所以统计三个时间点数值,是为了更好的反映系统整体的负载趋势) [root@k8s-master ~]# uptime 10:54:36 up 8 days, 12:31, 1 u 阅读全文
posted @ 2020-07-09 11:11 JL_Zhou 阅读(6602) 评论(0) 推荐(0) 编辑