kubernetes
文章平均质量分 56
韦远科
这个作者很懒,什么都没留下…
展开
-
kubernetes apiserver watch操作数据交互图
原创 2021-07-26 11:26:17 · 690 阅读 · 0 评论 -
笔记:kubernetes,scheduler,framework,plugins
阅读kubernetes调度代码的时候,看到这个pacakge:pkg/scheduler/framework网上相关的资料很少,废了老半天的劲儿终于找到,这里记录一下scheduler frameworkhttps://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/20180409-scheduli...原创 2019-11-21 10:58:26 · 921 阅读 · 0 评论 -
PodWorkers
PodWorkers是最终“同步”pod状态的一块逻辑,“同步”在这里的含义是:确保kubelet所在节点的Pod状态和etcd中的状态一致,该增加的增加,该删除的删除,该更新的更新。“同步”动作的触发有几个方式:(1)通过文件、apiserver、http方式监听到的变化(2)定时器触发,例如每隔10sPodWorkers的入口是UpdatePodtype podWorkers st...原创 2019-11-20 13:53:10 · 629 阅读 · 0 评论 -
符合OCI规范的容器运行时 & kubernetes CRI
参考前一篇文章目前的docker已经不是之前的docker了,技术栈进行了分层。docker cli -> dockerd -> containerd -> oci implementationOCI规范,简单来说,包含容器规范和镜像规范,具体参考:link由于引入了OCI,我们可以近乎透明无缝的替换 “docker run”命令 之下的具体实现。根据自己业务场景的需...原创 2019-11-08 12:36:26 · 1003 阅读 · 0 评论 -
golang net/http 包简介
Kubernetes的Api Server中用到了golang的http包,故而做下简单的了解。package mainimport ( "fmt" "io" "net/http")func main() { http.HandleFunc("/", helloworld) err := http.ListenAndServe(":9090", nil) if err !=...原创 2019-07-31 17:31:21 · 963 阅读 · 0 评论 -
DEMO:基于Kubernetes的CRD & Go-client 构建的一个查询pod详细信息的示例
本文是一个示例程序,展示一下如何基于Kubernetes的CRD(Custom Resource Defination)& Go-client构建一个查询Pod详细信息的服务。该服务运行起来后,可以通过标准的kubernetes api接口,基于CRD来查询某个Pod的详细信息。代码的地址在:https://github.com/weiyuanke/PodInfoLookup首先...原创 2019-07-31 17:32:28 · 1739 阅读 · 0 评论 -
Kubernetes三种Client的使用示例
kubernetes的Client库——go-client中提供了如下三种类型的clientClientSet:可以访问集群中所有的原生资源,如pods、deployment等,是最常用的一种dynamicClient: 可以处理集群中所有的资源,包括crd(自定义资源),另外它的返回是一个map[string]interface{}类型;目前主要用在garbage collector和nam...原创 2019-07-31 17:35:44 · 7916 阅读 · 0 评论 -
kube-scheduler源码走读
kube-scheduler是k8s中相对比较简单的一个服务,它监听api server获取新建的Pod,从众多的Node中选择一个合适的,来运行该Pod。选择的过程分两个阶段:预选阶段 & 优选阶段预选阶段:根据Pod创建的要求,筛选出所有符合要求的Node,通过该阶段的Node理论上都可以运行目标Pod优选阶段:给上一步筛选出来的Node打分,选择一个分数最高的Node本文...原创 2019-07-31 17:37:40 · 223 阅读 · 0 评论 -
kubelet服务启动流程中,默认参数的填充机制
本文跟踪一下kubelet启动过程中,参数的默认值是如何注入的。我们知道,为了启动kubelet服务,首先要构造kubelet的配置对象,即kubeletconfig.KubeletConfiguration结构体,// NewKubeletCommand creates a *cobra.Command object with default parametersfunc NewKubel...原创 2019-07-31 17:39:05 · 865 阅读 · 0 评论 -
kubernetes源码release-1.15——UndeltaStore
UndeltaStore会监听更新,并在每次更新后,将全量数据通过PushFunc发出// UndeltaStore listens to incremental updates and sends complete state on every change.// It implements the Store interface so that it can receive a st...原创 2019-06-20 11:31:17 · 291 阅读 · 0 评论 -
kubernetes中,pod中的容器共享命名空间
kubernetes编排和调度的基本单元是一个个的pod,其中每个pod中会包含一个或者多个容器,例如,如下的配置定义了一个pod,包含有两个container:apiVersion: v1kind: Podmetadata: name: nginxspec: shareProcessNamespace: true containers: - name: nginx ...原创 2019-02-18 18:22:09 · 6195 阅读 · 1 评论 -
k8s中kubelet模块的实践
kubenetes各模块是以一种非常松散的方式结合在一起的,各模块相关的通信都是以etcd为中心进行的,有点类似一个事件分发处理系统。kubelet是kubernetes系统中,运行在子节点上的进程,主要进行子节点资源的监控上报,container的运行监控等。举个简单的例子,如果根据etcd中的记录,节点A上应该运行3个container,结果实际只运行了2个容器,kubelet发现这个...原创 2019-04-15 20:01:51 · 637 阅读 · 0 评论 -
利用kubernetes的go语言sdk,client-go 操作kubernetes集群
(1)采用minikube启动一个k8s集群$minikube start原创 2019-04-24 10:39:16 · 2542 阅读 · 0 评论 -
kubelet源码跟踪 release-1.15
kubernetes中,kubelet进程负责对各节点进行管理,包括各节点资源的上报、落在该节点上的pod的声明周期管理以及其他的一些周期性任务,本文大致走查一下kubelet进程从启动到执行的整个流程,希望对大家有所帮助。kubernetes中所有的可执行文件都在cmd目录下,kubelete也不例外。#cmd/kubelet/kubelet.go:35func main() { ...原创 2019-06-19 11:03:07 · 669 阅读 · 0 评论 -
kubernetes源码release-1.15——makePodSourceConfig
kubelet负责节点上Pod的管理,在启动后默认会去监听三种类型的PodSource:FileSource:通过启动参数–pod-manifest-path来指定pod manifest文件所在的路径或者文件,如果该目录或者文件发生变化,kubelet会接收到对应的事件,并触发相应的动作。HttpSource:通过启动参数--manifest-url 指定的地址来获取pod manife...原创 2019-06-19 14:35:06 · 373 阅读 · 0 评论 -
kubernetes源码release-1.15——PodConfig 相关
// NewPodConfig creates an object that can merge many configuration sources into a stream// of normalized updates to a pod configuration.// 构造一个PodConfig对象,主要的作用包括:Pod数据的保存(PodStorage)、事件的多路合并处理fu...原创 2019-06-19 15:00:03 · 432 阅读 · 0 评论 -
kubernetes源码release-1.15——ThreadSafeStore
staging/src/k8s.io/client-go/tools/cache/thread_safe_store.go:37ThreadSafeStore是一个线程安全的内存存储,// threadSafeMap implements ThreadSafeStoretype threadSafeMap struct { lock sync.RWMutex //读写锁 ...原创 2019-06-20 10:57:58 · 464 阅读 · 1 评论 -
kubernetes源码release-1.15——Store & cache
Store(staging/src/k8s.io/client-go/tools/cache/store.go:34)是一个通用的对象存储接口Reflector中会包含Store,监听server的变化,并更新Store。Store提供了常见的存储接口:type Store interface { Add(obj interface{}) error Update(obj inter...原创 2019-06-20 11:22:50 · 355 阅读 · 0 评论 -
Kubernetes中的service account
service account,顾名思义,主要是给service使用的一个账号。具体一点,就是为了让Pod中的进程、服务能访问k8s集群而提出的一个概念,基于service account,pod中的进程、服务能获取到一个username和令牌Token,从而调用kubernetes集群的api server。kubernetes中,每个命名空间默认会有一个名为“default”的serv...原创 2019-02-15 17:41:39 · 7216 阅读 · 0 评论