
golang
文章平均质量分 63
just-go
正心修身齐家
展开
-
client-go多集群管理
背景通常在多云环境中或者多k8s集群中,一个与k8s相关管理服务需要同事管理多个k8s集群,有很多种方法可以去实现该功能,这里主要介绍一种通过一个config文件在配合client-go代码来实现多集群client的创建,client-go中的example中都是单集群的client的实现。实现代码通过查看client-go创建client的内部代码后,整理出如下创建多集群的代码,我得式列代码中包含了 argo、volcano、k8s原生clientimport ( "context" "log原创 2021-08-24 18:31:12 · 1414 阅读 · 3 评论 -
kube-proxy踩坑日记(三)
kube-proxy踩坑日志(三)根据某同事反馈,在某环境中,创建容器化的kafka集群的时候,发现调度到节点上的kafka的容器起不来,通过查看kafka容器的日志,发现日志中报错,端口xxxx已经被使用,通过 ss -lptn | grep xxxx发现对应的进程居然是kube-proxy。(环境中kube-proxy使用的是iptables模式)关于kube-proxy为什么要监听除他自己本身意外的端口?通过仔细阅读对应的iptables proxy代码,kube-proxy 除了syn.原创 2020-12-12 01:31:27 · 3064 阅读 · 2 评论 -
k8s-metrics的实现原理以及开发指南
所有的metrics相关的服务,都是通过kubelet的api获取相关的metric数据, 然后进行相关的存储(内存存储,golang map实现),然后提供对应的api给client端掉用(通常client端是通过kubernetes的metrics.kubernetes.io/v1beta1发起掉用的,当然也可以自己掉用metrics-server api), 其中metrics-server...原创 2020-06-08 00:20:57 · 2466 阅读 · 0 评论 -
kubelet grpc实现
这里写自定义目录标题kubelet grpcgrpc server 接口定义grpc server 接口实现grpc server/client 实例化以及使用kubelet grpckubelet中用到grpc主要是操作runtime,kubelet截止到目前的版本1.16.0支持多种runtime:Docker,CRI-O,Containerd,Other CRI runtimes: fr...原创 2019-09-23 18:58:58 · 543 阅读 · 0 评论 -
kubelet整体架构图
本图主要是自己通过学习kubelet代码之后归纳总结画出来的kubelet的架构图,代码版本是1.15.3。图中 红色字体部分主要是kubelet内部的给中manager的协同工作,后续我会在次归纳总结各个manager是如何实现pod相关的容器的创建,volume绑定,cni的调用,状态的更新,容器的删除,垃圾回收的处理,syncPod的逻辑等。...原创 2019-09-26 00:01:03 · 676 阅读 · 0 评论 -
kubernetes之StatefulSet
StatefulSetk8s的statefulset相信很多人都用过,在1.5之后才引入的,1.5之前用的是petset,关于petset在之前的老版本的paas开发中用的就是petset,很多不足的地方,等会儿会说到这点。petset也好,statefulset也好,都是为啦解决容器的有状态服务。下面就谈谈在用statefulset的时候的一些小疑惑和收获。浅谈statefulset volume原创 2020-04-05 19:57:51 · 4288 阅读 · 0 评论