k8s
程序源234
这个作者很懒,什么都没留下…
展开
-
k8s源码分析-----kubelet pod处理流程
源码为k8s v1.3.0稳定版本Go语言中通过chann进行跨协程通信,基于这点我们先找到通信的协程创建的流程(1) UpdatePod channel的创建CreateAndInitKubelet函数中,调用makePodSourceConfig创建。k8s.io\kubernetes\cmd\kubelet\app\se原创 2016-09-10 23:36:08 · 3277 阅读 · 0 评论 -
Kubernetes 1.6新特性系列 | 高级调度
作者注:这是深入Kubernetes 1.6特性系列的第四篇。导读:Kubernetes 1.6高级调度的新特性主要集中在四个方面:Node的亲和性和反亲和性(Affinity/Anti-Affinity)Node的污点和容忍(Taints and Tolerations)Pod的亲和性和反亲和性(Affinity/Anti-Affinity)自定义调度器1、简介转载 2017-04-24 23:33:54 · 2813 阅读 · 0 评论 -
Kubernetes中pod创建流程
Pod是Kubernetes中最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例。例如一个web站点应用由前端、后端及数据库构建而成,这三个组件将运行在各自的容器中,那么我们可以创建包含三个container的pod。本文将对Kubernetes的基本处理流程做一个简单的分析。具体的创建步骤包括:原创 2017-05-20 00:11:16 · 16542 阅读 · 0 评论 -
Kubernetes Scheduler源码分析--启动过程与多队列缓存
源码为k8s v1.6.1版本,github上对应的commit id为b0b7a323cc5a4a2019b2e9520c21c7830b7f708e本文将对Scheduler中,Pod的处理过程进行分析,主要分析Pod在各个缓存队列中的流动过程。原创 2017-05-28 00:03:17 · 11634 阅读 · 0 评论 -
Kubernetes Scheduler源码分析--启动过程与多队列缓存(续)
继续上文对Scheduler的分析,分析在Scheduler主循环处理过程中,podQueue,Queue和assumePod 三个队列的处理。Scheduler中SchedulerOne为主要的处理函数,其源代码为func (s *Scheduler) scheduleOne() { pod := s.config.NextPod() if pod.DeletionTim原创 2017-05-28 16:30:15 · 12008 阅读 · 0 评论 -
Kubernetes Scheduler 调度详解-基于Kubernetes 1.61版本
源码为k8s v1.6.1版本,github上对应的commit id为b0b7a323cc5a4a2019b2e9520c21c7830b7f708e本文将对Scheduler的调度算法原理和执行过程进行分析,重点介绍Scheduler算法中预选和优选的相关内容。Scheduler的调度算法的执行过程进行分析。原创 2017-05-30 21:53:18 · 6980 阅读 · 0 评论 -
Kubernetes Scheduler 调度- Node信息管理
源码为k8s v1.6.1版本,github上对应的commit id为b0b7a323cc5a4a2019b2e9520c21c7830b7f708e本文将对Scheduler的调度中Node信息的管理流程进行介绍,主要介绍Scheduler模块中node信息如何初始化,node信息如何与pod的更新信息同步,node信息如何用到调度算法中原创 2017-06-11 19:17:13 · 3935 阅读 · 1 评论 -
Ubuntu 16.04下kubeadm安装Kubernetes
Ubuntu 16.04下kubeadm安装Kubernetes原创 2017-07-14 20:51:20 · 11823 阅读 · 0 评论 -
kubernetes安全控制认证与授权(二)
本文将继续kubernetes授权体系。授权主要是用于对集群资源的访问控制,通过检查请求包含的相关属性值,与相对应的访问策略相比较,API请求必须满足某些策略才能被处理。跟认证类似,Kubernetes也支持多种授权机制,并支持同时开启多个授权插件(只要有一个验证通过即可)。如果授权成功,则用户的请求会发送到准入控制模块做进一步的请求验证;对于授权失败的请求则返回HTTP 403。原创 2017-07-29 22:39:13 · 7451 阅读 · 0 评论 -
Kubernetes中controller-manager源码分析--启动流程
本文将对Kubernetes中controller-manager的源码进行分析。分析的时间为2017年08月19日。采用主干的代码,commitId为2ab7ad14b4fad378a4a69a64c587497d77e60f44。原创 2017-09-17 00:37:15 · 1103 阅读 · 0 评论 -
Kubernetes 1.6新特性:RBAC授权
概述Kuberntes中API Server的访问控制过程图示如下:在Kubernetes中,授权(authorization)是在认证(authentication)之后的一个步骤。授权就是决定一个用户(普通用户或ServiceAccount)是否有权请求Kubernetes API做某些事情。之前,Kubernetes中的授权策略主要是ABAC(Attribut转载 2017-04-15 13:22:47 · 10345 阅读 · 0 评论 -
kubernetes1.6新特性:支持新的卷插件
背景介绍在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储。从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。结转载 2017-04-15 13:49:31 · 3666 阅读 · 0 评论 -
k8s源码分析-----kubelet启动流程分析
k8s源码分析-----kubelet启动流程分析原创 2016-08-28 23:48:22 · 6603 阅读 · 0 评论 -
k8s源码分析--kubelet中pod处理流程(续)
源码为k8s v1.3.0稳定版本(7) updatepod起的协程在何时退出再kubelet中有两个过程涉及到两个处理函数 一个是: HandlePodRemoves-》deletePod-》kl.podWorkers.ForgetWorker(pod.UID)-》removeWorker 另外一个是: HandlePodCleanups -》Forget原创 2016-09-10 23:48:29 · 3013 阅读 · 0 评论 -
k8s源码分析-----kubelet启动流程分析(续)
(7) NewMainKubelet函数分析NewMainKubelet主要作用是创建Kubelet对象需要的Module对象。// NewMainKubelet instantiates a new Kubelet object along with all the required internal modules.// No initialization of Kubelet原创 2016-08-31 19:48:25 · 1903 阅读 · 0 评论 -
k8s源码分析--kubelet中docker-manager分析
源码为k8s v1.3.0稳定版本从pod管理SyncPod开始分析,kubelet中syncPod调用docker_manager的syncPod函数(1) SyncPod函数中的处理这是一个比较关键的函数,处理的流程也比较长。step1: computePodContainerChanges 检查pod的变化,返回的信息podContainerChangesSpec原创 2016-09-12 21:31:31 · 2234 阅读 · 0 评论 -
Kubernetes 1.6 官方发布:支持多用户、多工作负载
今天,我们宣布 Kubernetes1.6正式发布。在这次版本中,社区的重点落在集群运行规模和集群运行自动化上,可以在帮助实现集群上给多个用户部署多项工作的目标。Kubernetes 1.6版本目前集群上支持5000个节点。在我们的努力下,Dynamic Storage Provisioning 处于稳定版本。Role-based access control(RBAC)、转载 2017-04-03 00:15:45 · 1494 阅读 · 0 评论 -
Kubernetes1.6新特性:全面支持多颗GPU
(一) 背景资料GPU就是图形处理器,是Graphics Processing Unit的缩写。电脑显示器上显示的图像,在显示在显示器上之前,要经过一些列处理,这个过程有个专有的名词叫“渲染" ,以前计算机上是没有GPU的,都是通过CPU来进行“渲染”处理的,这些涉及到“渲染”的计算工作非常耗时,占用了CPU的大部分时间。之后出现了GPU,是专门为了实现“渲染”这种计算工作的,用来将CPU解转载 2017-04-15 10:45:17 · 2672 阅读 · 0 评论 -
Kubernetes中replicaset处理流程源码分析
本文将对Kubernetes中controller-manager源码中Replicaset Controller部分进行分析。采用主干的代码,commitId 2ab7ad14b4fad378a4a69a64c587497d77e60f44。原创 2017-10-22 20:00:46 · 2869 阅读 · 0 评论