全栈工程师开发手册 (作者:栾鹏)
架构系列文章


github 官方地址 https://github.com/kubeflow/kfserving

kfserving 内部使用的是knative。

封装了一层InferenceService的k8s自定义资源,来实现knative中serving的services,route,configurations,revision

knative 创建管理网络部分

certificates                      kcert              networking.internal.knative.dev    true         Certificate
ingresses                         ing                networking.internal.knative.dev    true         Ingress
serverlessservices                sks                networking.internal.knative.dev    true         ServerlessService

同时创建管理自动化部署部分

configurations                    config,cfg         serving.knative.dev                true         Configuration
revisions                         rev                serving.knative.dev                true         Revision
routes                            rt                 serving.knative.dev                true         Route
services                          kservice,ksvc      serving.knative.dev                true         Service
inferenceservices                 inferenceservice   serving.kubeflow.org               true         InferenceService

可以看出部署knative的serving 就会包含configurations,revisions,routes,services
kubeflow通过部署inferenceservice来操作knative的serving。

knative的serving的api

可以参考https://skyao.io/learning-knative/serving/overview/

knative的serving中的每种资源的yaml格式

可以参考https://skyao.io/learning-knative/serving/api/spec.html

route的yaml中 定义流量向哪个revisions分流比例。也可以直接指向configurations,则表示configurations的最新的那个revisions。通过route的名称去代表配置的是哪个serving.knative.dev

configurations的yaml中定义build( build.knative.dev)和revisionTemplate。已经定义了运行所需要的配置信息。build也就是从从哪个源码进行构建的。构建相关的参数。而在kfserving中并没有使用knative的build。kubeflow中使用fairing的build和deploy,以及knative的serving完成一整套的。

Revision是每次configurations更新的历史信息。image、command、args、env、livenessProbe、readinessProbe、serviceAccountName、concurrencyModel 这些信息都是通过configurations 获取保存下来的。

serving.knative.dev 绑定configuration或者revisionName和

kfseving的模块

api/client 可以通过客户端的包去查询部署的serving信息。
model文件夹中 是k8s资源的部署相关的文件。包含deploy,service,endpoint,TensorFlow service,knative serving相关的部署文件的生成。

kfserving 封装了isvc的概念,也就是InferenceService,用户管理 knative中的service,configurations,route,Revision。

同时因为service可能是不同的算法计算框架,例如xgb,TensorFlow,pytorch等,所以:

kfserving在各种类型的算法框架服务化的基础上,封装了一层Predictor的概念。用于实现模型服务化部署时的公共配置。就是传入对应框架的部署方案和公共配置方案(主要是max_replicas,min_replicas,parallelism,logger,batcher等),来实现部署服务化。在v1alpha2_predictor_spec.py文件中

而每种算法框架的部署文件构建大同小异,分别在v1alpha2_onnx_spec.py、v1alpha2_py_torch_spec.py、v1alpha2_sk_learn_spec.py、v1alpha2_tensorflow_spec.py、v1alpha2_xg_boost_spec.py、v1alpha2_onnx_spec.py。 这些对应框架的服务化配置构建代码中主要是配置部署的resources,runtime_version,storage_uri

类的包含关系

InferenceService:
api_version、kind、metadata、spec(V1alpha2InferenceServiceSpec)、status

InferenceServiceSpec:
default(EndpointSpec)、canary、canary_traffic_percent

EndpointSpec:
explainer(ExplainerSpec)、predictor(PredictorSpec)、transformer(TransformerSpec)

PredictorSpec:
max_replicas、min_replicas、parallelism、service_account_name、tensorflow、xgboost、pytorch、custom(完全自定义运行container的属性)

tensorflow:
resources、runtime_version、storage_uri

在实际部署InferenceService的时候,InferenceService-controller,会检测到InferenceService 产生,根据InferenceService-config的configmap来生成knative的service,route,rev,config等。

InferenceService-controller的代码在kfserving的pkg文件夹下。

kubeflow kfserving 详解相关推荐

  1. kubeflow fairing详解

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 官方git地址:https://github.com/kubeflow/fairing backends backends为k8s集群,可以是loca ...

  2. 微软开源的自动机器学习工具上新了:NNI概览及新功能详解

    作者 | 宋驰 来源 | 微软研究院AI头条(ID: MSRAsia) 2018年9月,微软亚洲研究院发布了第一版 NNI (Neural Network Intelligence) ,目前已在 Gi ...

  3. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  4. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  5. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  6. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  7. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  8. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

  9. Bert代码详解(一)重点详细

    这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...

最新文章

  1. Matlab实现直方图均衡化(基于自定义函数)
  2. CRichEdit小记
  3. 五、spring boot整合mybatis-plus
  4. 吴恩达新书《Machine Learning Yearning》中7个实用建议(附论文)
  5. sklearn查看版本 windows_解密windows系统版本和版本号,深入了解一组简单数字背后的故事...
  6. x86架构linux内核引导过程分析,SylixOS---x86引导过程分析
  7. WPF DataGrid 如何将被选中行带到视野中
  8. vb 打印机 任意尺寸_创新小黑管“省心省力”惠普Laser NS 1020 智能闪充激光打印机...
  9. JavaScript 函数定义+内置函数使用+array对象+object类型
  10. svg操纵方案 基于 D3 还是 angular?
  11. 执行存储过程执行时,报ORA-01031权限不足
  12. webpack4导入全局sass文件
  13. c语言程序设计基础课本答案,c语言程序设计基础课后习题参考 答 案与解析.doc...
  14. Helen人脸数据集生成人脸分割
  15. 饥饿的小易 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因
  16. 重点推荐:看乾隆“上书房”求学记,哈哈
  17. Android8.0 WIFI ap Tethering 相关知识
  18. CAD图纸如何转换成Word文档呢?
  19. Bingo NFT 如何帮助交易者和投资者分析市场
  20. 关于Windows Paint的基础图层透明背景的操作说明

热门文章

  1. python爬虫从入门到放弃-python 爬虫《从入门到放弃》
  2. python精彩编程200例-Python趣味编程与精彩实例
  3. 登量子位“AI领航企业榜单”,联想用实力说话
  4. 人工智能之语音识别技术【科普】
  5. java sql注入正则表达式_php防止sql注入示例分析和几种常见攻击正则表达式
  6. vue 导出Excel
  7. 限制码率的视频编码标准比较(包括MPEG-2,H.263, MPEG-4,以及 H.264)
  8. LAV Filter 源代码分析 1: 总体结构
  9. python如何检查错误-python中的错误如何查看
  10. 域控下更改服务器密码策略,修改windows-2008-域控服务器密码策略