Kubernetes 和 Kubeflow 学习笔记

Kubernetes

Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。

Kubernetes优势:

  • 原生的资源隔离
  • 集群化自动化管理
  • 计算资源(CPU/GPU)自动调度
  • 对多种分布式存储的支持
  • 集成较为成熟的监控和告警

Kubernetes的组件

  • master 可以简单的理解为控制中心
    • etcd:分布式k-v数据库,根据配置选择是cp还是ap, k8s只有api server 和etcd通讯, 其他组件均和api server通讯。
    • api server:可以理解为etcd的前置过滤器,换一个视角,它和etcd类似于mysql和文件系统。
    • controller manager: 核心,负责将现在的状态调整为etcd上应该的状态,包含了所有的实现逻辑。
    • scheduler: 简单点说就是给一个pod找一个node。
  • slave 可以简单的理解为worker
    • kubelet: 负责和master连接,注册node, listen-watch 本node的任务等。
    • kube-proxy: 用于k8s service对象。
    • 容器运行时: 除了docker,k8s还支持rkt等容器实现。

k8s集群的运行时的大致结构

Kubernetes 资源架构图

Kubeflow

Kubeflow简介

Kubeflow是Kubernetes的机器学习工具包。Kubeflow是运行在K8S之上的一套技术栈,这套技术栈包含了很多组件,组件之间的关系比较松散,我们可以配合起来用,也可以单独用其中的一部分。下图是官网显示Kubeflow作为在Kubernetes上安排ML系统组件的平台:

当我们开发和部署ML系统时,ML工作流程通常包括几个阶段。开发ML系统是一个反复的过程。我们需要评估ML工作流各个阶段的输出,并在必要时对模型和参数进行更改,以确保模型不断产生所需的结果。

为了便于理解,下图按顺序显示了工作流程阶段,并将Kubeflow添加到工作流中,显示在每个阶段都有哪些Kubeflow组件有用。工作流末尾的箭头指向流程,以表示流程的迭代性质:

kubeflow特点

  • 支持 tensorflow/torch/keras等等主流深度学习库
  • 用户界面友好
  • 支持分布式训练
  • 支持 GPU 训练
  • 支持快速产生人工智能产品原型

由此可以看出,Kubeflow的目标是基于K8S,构建一整套统一的机器学习平台,覆盖最主要的机器学习流程(数据->特征->建模->服务->监控),同时兼顾机器学习的实验探索阶段和正式的生产环境。

Kubeflow组件

Kubeflow的主要组件

  • Central Dashboar
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值