安装kubeflow tfjob并让 搭配 volcano 的教程

搭建说明 最终目的:修改深度学习作业的调度算法 当前要搭建的环境: (1)能运行kubeflow的tfjob的集群 (2)kubeflow进行gang-scheduler的调度算法 volcano 准备工作 (1) 安装好 k8s集群,安装好kfctl (2) 确认你是否有一个默认StorageClass且也配置好了动态……

阅读全文

k8s源码学习 - Scheduler笔记(1)

任务:找到scheduler的入口 k8s 代码目录结构 cmd:所有的二进制可执行文件入口代码,也就是各种命令的接口代码。 pkg:项目diamante主目录,cmd只是接口,这里是具体实现。cmd类似业务代码,pkg类似核心 寻找k8s入口函数 1 2 3 4 5 6 cmd/kube-schedule……

阅读全文

k8s源码学习 - Scheduler笔记(2)

接上文的工作,上文是找到了scheduler的入口。接下来看scheduler具体的执行。 1 2 3 4 5 cmd/kube-scheduler/scheduler.go:34main函数-> cmd/kube-scheduler/app/server.go:70NewSchedulerCommand-> cmd/kube-scheduler/app/server.go:117runCommand-> cmd/kube-scheduler/app/server.go:167Run-> pkg/scheduler/scheduler.go:276run-> 这是上文的工作 1 2 pkg/scheduler/scheduler.go:501scheduleOne-> pkg/scheduler/scheduler.go:291schedule-> 这里schedule只是一个街口,定义在 schedule/a……

阅读全文

k8s源码学习--代码结构

k8s版本:v1.13 k8s代码的结构 api: 输出接口文档用,基本是json源码 build:构建脚本 cmd:所有的二进制可执行文件入口代码,也就是各种命令的接口代码。 pkg:项目diamante主目录,cmd只是接口,这里是具体实现。cmd类似业务代码,pkg类似核心 plugin:插件……

阅读全文

kube-batch 修改默认的配置

在kube-batch V0.4及以上版本中,kube-batch默认的配置 只包含两个 Action(allocate, backfill)。 具体可以参考: https://github.com/kubernetes-sigs/kube-batch/blob/6e560929dcafec91b2b9a24f246a20b4569b39a8/pkg/scheduler/util.go 在自己的需求中,我们可能需要定义自己的配置。 思路: 查看util.go中的代码发现,Kube-batch在发现用户指定配置文件后,会自动地读取该文件的内容,而不……

阅读全文

代码整洁之道笔记

动机 最近在回顾自己之前写的代码时,发现之前的惨不忍睹。最大的问题是,几个月前自己写的居然都看不懂。 有些问题自己能避免,例如有意义的变量命名问题,但是由于当时英文卡住了,直接就随便命名了,当时以为自己看得懂,以后就能懂,最后发现是自己想多了。 刚好今天没事翻了一下之前买的书籍《代码整……

阅读全文

kube-batch 从代码中找出gang scheduler这个过程

从之前的分析中,已经知道了kube-batch的启动过程。kube-batch总共有4个过程。这里我们从Allocate开始。 目录: 一: 流程解释 二:代码说明 一: 流程解释 在allocate.go中:找到Execute函数。首先用文字解释一下整个的过程: (1)将kube-batch的……

阅读全文

kube-batch如何实现gang-scheduler

gang scheduler介绍:一个job,可能有多个tasks,这些tasks要不全部执行,要不一个都不执行。 上面说到 kube-batch自定义了一个podGroup,调度时以podGroup为单位的。现在说一下调度podGroup的整个过程。 本文分为四个部分: 一:介绍kube-ba……

阅读全文

k8s集群安装helm

helm介绍 helm的作用: Kubernetes一个包管理引擎 tiller的作用:功能和软件仓库一样,类似于/etc/yum.repos.d目录下的xxx.repo。 安装helm的目的是为了后面安装kube-batch 环境说明 环境:4台ubuntu16.04 1个master 3个n……

阅读全文

ubuntua安装go语言环境

地址:https://studygolang.com/dl 注意下载Linux-amd64(64位)版本的 ,例如我下载的就是 go1.13.4.linux-amd64.tar.gz 安装 go语言有两个很重要的环境变量 gopath和goroot。 GOROOT:go的安装路径。一般是-C /usr/local/ GOPATH: GOPATH是作为编译后二进制的存放目的地和imp……

阅读全文