王希刚 发布于 12月08, 2018

Kubeflow使用Kubernetes进行机器学习

Kubeflow是Google推出的基于kubernetes环境下的机器学习组件,通过Kubeflow可以实现对TFJob等资源类型定义,可以像部署应用一样完成在TFJob分布式训练模型的过程。最初的设计是将Kubernetes和Tensorflow结合实现对Tensorflow分布式训练的支持。但是仅仅实现对Tensorflow的支持还是远远不够的,Kubeflow社区又陆续对各种深度学习框架进行支持,例如:MXNet, Caffee, PyTorch等。使得机器学习算法同学只需关心算法实现,而后续的模型训练和服务上线都交给平台来做,解放算法同学使其专做自己擅长的事儿。

阅读全文 »

王希刚 发布于 11月08, 2018

深入理解 nvidia-docker2.0

NVIDIA于2016年开始设计NVIDIA-Docker已便于容器使用NVIDIA GPUs。 第一代nvidia-docker1.0实现了对docker client的封装,并在容器启动时,将必要的GPU devicelibraries挂载到容器中。但是这种设计的方式高度的与docker运行时耦合,缺乏灵活性。存在的缺陷具体如下:

阅读全文 »

王希刚 发布于 11月06, 2018

nvidia-docker2在kubernetes上实践

现在公司线上所有的k8s集群对GPU资源的使用都是nvidia-docker 1.0(历史遗留问题)。但是现在的kubernetes1.9推荐使用device plugin的方式来对接外部厂商的资源。这样所有的厂商资源就不要kubernetes去特定的支持,而是各服务厂商只要按照kubernetes提供的device plugin实现自己的一套就可以了。今天就针对nvidia-docker2.0 进行了下测试。在此做下记录。

阅读全文 »

王希刚 发布于 07月09, 2018

浅谈Cgroups

说起容器监控,首先会想到通过Cadvisor, Docker stats等多种方式获取容器的监控数据,并同时会想到容器通过Cgroups实现对容器中的资源进行限制。但是这些数据来自哪里,并且如何计算的?答案是Cgroups。最近在写docker容器监控组件,在深入Cadvisor和Docker stats源码发现数据都来源于Cgroups。了解之余,并对Cgroups做下笔记。

阅读全文 »

王希刚 发布于 06月04, 2018

Kube-controller-manager解析之启动流程

最近在工作之余准备看看Kube-controller-manager比较核心的几个控制器,也是现在容器平台主要使用的几个,如:Deployment, ReplicaSet, Garbage Collection, ReousrceQuota, Node Controller等。在分析这些控制器之前,先介绍下kube-controller-manager的功能及它的启动流程。

注意: kubernetes 1.9.0, commit Id: 925c127ec6b946659ad0fd596fa959be43f0cc05

阅读全文 »

王希刚 发布于 01月25, 2018

kube-scheduler源码解析

源码为kubernetes1.9, git commit id为 925c127ec6b946659ad0fd596fa959be43f0cc05。本文前半部分讲解scheduler的原理,后半部分对scheduler源码进行分析。

阅读全文 »

王希刚 发布于 11月23, 2017

Kubelet源码分析

本篇文章主要介绍kubelet服务如何启动及创建pod的流程,也对想要看kubelet源码的同学作为一个参考。

(kubelet版本: 1.7.4)

阅读全文 »

王希刚 发布于 10月17, 2017

浅谈Linux服务管理器Systemd

近年来,Linux系统的init进程经历了两次重大演进,传统的sysvinit已逐渐淡出了历史的舞台,新秀Upstart和Systemd陆续走上了舞台,鉴于现在越来越多的Linux发行版均采纳了systemd,并且对于软件开发人员和系统管理员经常用到,就抽时间学习了下systemd的基本原理及使用。仅仅了解systemd的一个表面和大家分享下:)

阅读全文 »

王希刚 发布于 08月28, 2017

etcd入门篇-集群搭建及基本使用

etcd介绍

etcd用于共享配置和服务发现的分布式,一致性的kv存储系统,当前的最新版本是3.2.6

虽然在etcd之前还有许多提供共享配置和服务发现的系统,如zookpeer,consul。但是在一致性协议的理解,安全,并发控制,可扩展性及大规模集群使用上etcd相比占很大优势。

阅读全文 »