kube-batch--启动过程

追踪整个代码跳过过程 1 2 3 4 cmd/kube-batch/main.go:39main-> cmd/kube-batch/main.go:53app.Runcmd/kube-batch/app/server.go:60Run-> cmd/kube-batch/app/server.go:86sched.Runcmd/kube-batch/app/server.go:86sched.Run-> pkg/scheduler/scheduler.go:59cmd/kube-batch/app/server.go:59sched.Run-> pkg/scheduler/scheduler.runOnce:84 cmd/kube-batch/app/server.go:59 行代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 func(pc*Scheduler)Run(stopCh<-chanstruct{}){varerrerror// Start cache for policy. gopc.cache.Run(stopCh)pc.cache.WaitForCacheSync(stopCh)// Load configuration of scheduler schedConf:=defaultSchedulerConfiflen(pc.schedulerConf)!=0{ifschedConf,err=readSchedulerConf(pc.schedulerConf);err!=nil{glog.Errorf("Failed to read scheduler configuration '%s', using default configuration: %v",pc.schedulerConf,err)schedConf=defaultSchedulerConf}}pc.actions,pc.plugins,err=loadSchedulerConf(schedConf)iferr!=nil{panic(err)}// 这里又开始周期性调用 runOnce了。开始调用 gowait.Until(pc.runOnce,pc.schedulePeriod,stopCh)} cmd/kube-batch/app/server.go:84 行代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 func(pc*Scheduler)runOnce(){glog.V(4).Infof("Start scheduling ...")scheduleStartTime:=time.Now()deferglog.V(4).Infof("End scheduling ...")defermetrics.UpdateE2eDuration(metrics.Duration(scheduleStartTime))ssn:=framework.OpenSession(pc.cache,pc.plugins)deferframework.CloseSession(ssn)for_,action:=rangepc.actions{actionStartTime:=time.Now()action.Execute(ssn)metrics.UpdateActionDuration(action.Name(),metrics.Duration(actionStartTime))}} 这里主要 defer 是延迟函数,就是返回值之前执行。所以上面……

阅读全文

kube-batch--简介

1.背景介绍 K8s本身的调度器具有一些缺陷: (1) 默认的调度器是以 pod 为粒度的,对机器学习任务很不利。 (2)默认的调度器无法提供队列调度的功能 2.kube-batch介绍 Kube-batch 目前是 Kubernetes SIGs 旗下的一个孵化项目,是一个运行在 Kubernetes 上面向机器学习 / 大数据 /HPC 的批调度器(batch scheduler)……

阅读全文

链表常考点

最近一口气刷完了Leetcode上链表专栏下的所有题。有好几题非常有意思,记录一下: 感觉链表的题,大部分都是考察细心的题。你定义好的遍历指针,一定要细心的检查当它遍历时,它的子节点正确赋值,同时要非常注意链表指针非空的情况。 寻找链表的倒数第K个,或者类似的题目。类似的比如:输出链……

阅读全文

ubuntu搭建k8s机器

本次在搭建k8s集群的过程中,遇到了很多问题,幸好最后终于成功。故将整个过程记录下来,希望对大家有所帮助。 环境说明 环境:4台ubuntu16.04 1个master 3个node k8s版本:V1.13.2 搭建说明 本教程采用kubeadm的方式安装,主要针对的是国内用户,因为安装k8s……

阅读全文

kubeflow pipelines--实现自己的实例

上篇文章实现了运行系统给出的pipelines实例。通过挂载自己的卷,以及使用自己的镜像总算可以运行官方给的ML实例了。但是我们的最终目的是运行自己的ML程序。 接下来是实现自己的pipelines实例。 根据官方文档的建议: https://www.kubeflow.org/docs/pipelines/sdk/build-component/](https://www.kubeflow.org/docs/pipelines/sdk/build-component/) 实现自己的ML实例,总共有两点: (1)Client code (在……

阅读全文

kubeflow pipelines--使用UI界面

前面的文章已经安装好了pipelines,接下来是体验如何使用pipelines了。 这是官网的图,进入Pipelines的图形界面就会出现这个。 但是官网给出的都是怎样在gcp上使用图形界面。所以怎么在自己本地集群使用Pipelines图形界面还得靠自己摸索。 既然我们都装好pipe……

阅读全文

kubeflow pipelines--国内环境安装

在前面的教程中,我们已经搭建好了本地的kubeflow集群,接下来因为个人需要,本人需要再在此基础上搭建好kubeflow pipelines. 首先需要了解pipelines是什么,能做什么,具体可以参考官网描述: https://www.kubeflow.org/docs/pipelines/pipelines-overview/ 从V0.1.3开始,Kubeflow Pipelines成为Kubeflow核心组件之……

阅读全文

kubeflow pipelines--本地运行官方ML-实例

在上面的文章中,我成功运行了pipelines的简单实例。这个简单的例子没有文件的操作,但是这肯定不符合我们的要求,所以接下来介绍如何运行官网的ML 例子。 这次试用的例子是:KubeFlow pipeline using TFX OSS components 准备工作 由于这个例子使用的镜像,文件都是某歌的,所以我们要想办法把他弄到自己服务器……

阅读全文

kubeflow简介

前面都是在介绍如何安装Kubeflow和pipelines,今天补一下Kubeflow的pipelines的知识,让大家知道他们是什么,能做什么。 背景 Kubernetes 本来是一个用来管理无状态应用的容器平台,但是在近两年,有越来越多的公司用它来运行各种各样的工作负载,尤其是机器学习炼丹。各种 AI 公……

阅读全文

kubeflow使用图像界面

按照前几篇文章搭建好Kubeflow集群后,所有的pod都能运行了。但是在自己本地浏览器访问界面时却发现网页一直打不开。访问不了jupyter。这样因为默认的这些服务都是使用cluster ip。只能集群内部访问,外网访问不了。 解决方法: 查看当前的服务 1 kubectl-nkubeflowgetsvc 如图所示,这里注意,这是我……

阅读全文