基于Kubernetes环境的高扩展机器学习部署利器——KServe( 二 )


通过利用Istio的网络功能 , 能够带来包括金丝雀部署、推理图和自定义转换器在内的功能 。
2、
另一方面 , 是一个开源的企业级解决方案 , 用于构建无服务器和事件驱动的应用程序 。构建在Istio之上 , 带来了类似于AWS 和Azure 提供的无服务器代码执行功能 。是一个与平台无关的解决方案 , 用于在中运行无服务器部署 。
最好的功能之一是可扩展到零的功能 , 当没有需求时 , 该功能会自动缩减部署 。这是扩大或缩小ML模型部署能力的一个关键组成部分 , 也是最大限度地提高资源利用率和节省成本的一个组成部分 。
3、我应该使用吗?
与许多其他工具一样 , 不是一个适合您的企业所要求的一刀切式的解决方案 。它的入门成本很高 , 因为需要用户具备一些使用的经验 。如果你刚开始使用 , 网上有很多资源 , 我强烈建议你在上查看()之类的资源 。尽管如此 , 即使不深入了解 , 也可以学习使用 。
在已经利用的企业中 , 将是理想的选择 , 因为这些企业在使用方面已经拥有现有的知识 。它还可能适合那些希望放弃或补充或Azure机器学习等托管服务的组织 , 以便对您的模型部署过程有更大的控制权 。所有权的增加可以显著降低成本 , 并提高可配置性 , 以满足项目的特定要求 。
尽管如此 , 正确的云基础设施决策将取决于具体情况 , 因为不同公司的基础设施要求不同 。
二、预备知识
本文接下来将带您了解设置所需的步骤 。您将了解安装并为您的第一个模型提供服务的步骤 。
在继续之前 , 需要满足几个先决条件 。您将需要准备以下内容:
1、集群
在本教程中 , 我建议使用Kind工具()对集群进行实验 。它是一个运行本地集群的工具 , 无需启动云资源 。此外 , 如果您在多个集群中工作 , 我强烈推荐把作为一种工具 , 它能够帮助您在上下文之间轻松切换 。
但是 , 在运行生产工作负载时 , 您需要访问功能齐全的集群来配置DNS和HTTPS 。
使用Kind工具部署集群的命令如下:
kind create cluster --name kserve-demo
然后 , 您可以使用以下命令切换到正确的上下文:
kubectx kind-kserve-demo
2、安装

基于Kubernetes环境的高扩展机器学习部署利器——KServe

文章插图
以下步骤将安装Istio v1.16、v1.7.2和 v0.10.0 。这些版本最适合本教程 , 因为 v1.8以后的版本将需要对入口进行DNS配置 , 这增加了一层超出目前范围的复杂性 。
1)安装Istio:
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.16.0 TARGET_ARCH=x86_64 sh -istioctl install --set profile=default -y
2)安装 :
#安装Knative Serving组件export KNATIVE_VERSION="v1.7.2"kubectl apply -f https://github.com/knative/serving/releases/download/knative-$KNATIVE_VERSION/serving-crds.yamlkubectl apply -f https://github.com/knative/serving/releases/download/knative-$KNATIVE_VERSION/serving-core.yaml#安装istio-controller for knativekubectl apply -f https://github.com/knative/net-istio/releases/download/knative-v1.7.0/net-istio.yaml
3)安装证书管理器 。需要证书管理器来管理HTTPs流量的有效证书 。
helm repo add jetstack https://charts.jetstack.iohelm repo updatehelm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.11.0 --set installCRDs=true