Istio生态系统On ASM(3):在阿里云服务网格ASM中集成云原生推理服务框架KServe

简介: 背景KServe(原KFServing)是云原生环境的的一个模型服务器和推理引擎,可以支持自动缩放、零缩放、金丝雀部署等能力。本文将介绍如何结合阿里云服务网格ASM和阿里云容器服务平台Kubernetes(ACK)来部署。前提条件创建Kubernetes集群。创建阿里云服务网格ASM企业版实例,版本需要>=v1.12.4.58-g3e422e2a-aliyun

KServe(原KFServing)是云原生环境的的一个模型服务器和推理引擎,可以支持自动缩放、零缩放、金丝雀部署等能力。本文将介绍如何结合阿里云服务网格ASM和阿里云容器服务平台Kubernetes(ACK)来部署。

前提条件

  • 创建Kubernetes集群。
  • 创建阿里云服务网格ASM企业版实例,版本需要>=v1.12.4.58-g3e422e2a-aliyun
  • 本文以KServe v0.8版本为例进行安装。

添加数据面集群

在集群与工作负载管理->Kubernetes集群中,将数据面集群到阿里云服务网格ASM管理。


启用数据面KubeAPI访问

在基本信息页,选择启用数据面KubeAPI访问


安装KServe组件

如果已经在数据面集群安装过KServe,可以跳过此步骤。

1. 安装Knative Serving

这里以 Knative Serving v0.7为例,需求Kubernetes版本>=v1.17。。

  1. 通过运行以下命令安装Knative Serving所需的自定义资源:

kubectl apply -f https://raw.githubusercontent.com/AliyunContainerService/asm-labs/kserve/kserve-0.7/serving-crds.yaml

  1. 安装Knative Serving的核心组件:

kubectl apply -f https://raw.githubusercontent.com/AliyunContainerService/asm-labs/kserve/kserve-0.7/serving-core.yaml

  1. 安装Knative Istio controller

在KServe中,可以使用Istio用作调用入口,并提供模型的蓝/绿和金丝雀部署能力。

执行以下命令,将安装net-istio-controller用于Istio的Knative入口控制器,以及istio Gateway和PeerAuthentication资源。PeerAuthentication是用于在服务网格环境中为knative webhook设置PERMISSIVE来避免mTLS认证问题。由于已经启用了数据面KubeAPI访问能力,可以直接使用数据面的kubeconfig进行创建。

kubectl apply -f https://raw.githubusercontent.com/AliyunContainerService/asm-labs/kserve/kserve-0.7/net-istio.yaml

2. 安装Cert Manager

KServe依赖Cert Manager组件。此组件的最低版本要求为v1.3.0。

以v1.3.0版本为例,使用如下命令安装:

kubectl apply -f https://raw.githubusercontent.com/AliyunContainerService/asm-labs/kserve/kserve-0.7/cert-manager.yamlhttps://github.com/cert-manager/cert-manager/releases/download/v1.3.0/cert-manager.yaml


3. 安装KServe

kubectl apply -f https://raw.githubusercontent.com/AliyunContainerService/asm-labs/kserve/kserve-0.7/kserve.yaml

创建ASM网关

在ASM网关点击创建。

注意,协议需要选择TCP,我们设置端口为80。


创建第一个推理服务

使用scikit-learn的训练模型进行测试。

创建命名空间

首先,创建用于部署KServe资源的命名空间。

kubectl create namespace kserve-test


创建 InferenceService


kubectl apply -n kserve-test -f - <

apiVersion: "serving.kserve.io/v1beta1"

kind: "InferenceService"

metadata:

 name: "sklearn-iris"

spec:

 predictor:

   model:

     modelFormat:

       name: sklearn

     storageUri: "gs://kfserving-examples/models/sklearn/1.0/model"

EOF

检查创建状态。

使用数据面Kubeconfig,执行如下命令查询inferenceservices的sklearn-iris的安装状态。

kubectl get inferenceservices sklearn-iris -n kserve-test

安装完成后,会自动创建对应模型配置的虚拟服务和网关规则。

测试通过ASM网关进行访问

创建模型输入文件

cat < "./iris-input.json"

{

 "instances": [

   [6.8,  2.8,  4.8,  1.4],

   [6.0,  3.4,  4.5,  1.6]

 ]

}

EOF


通过ASM网关进行访问

获取SERVICE_HOSTNAME:

SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris -n kserve-test -o jsonpath='{.status.url}' | cut -d "/" -f 3)

测试HOST为sklearn-iris.kserve-test.example.com

使用前文创建的ASM网关地址

curl  -H "Host: ${SERVICE_HOSTNAME}" http://{ASM网关地址}:80/v1/models/sklearn-iris:predict -d @./iris-input.json


总结

作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月1日起,阿里云服务网格ASM正式推出商业化版本, 提供了更丰富的能力、更大的规模支持及更完善的技术保障,更好地满足客户的不同需求场景, 详情可见产品介绍:https://www.aliyun.com/product/servicemesh


目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
Voice-Pro是一款开源的多功能音频处理工具,集成了语音转文字、文本转语音、实时翻译、YouTube视频下载和人声分离等多种功能。它支持超过100种语言,适用于教育、娱乐和商业等多个领域,为用户提供一站式的音频处理解决方案,极大地提高工作效率和音频处理的便捷性。
111 10
Voice-Pro:开源AI音频处理工具,集成转录、翻译、TTS等一站式服务
|
2月前
|
安全 Java API
【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
阿里云短信服务提供API/SDK和控制台调用方式,支持验证码、通知、推广等短信类型。需先注册阿里云账号并实名认证,然后在短信服务控制台申请资质、签名和模板,并创建AccessKey。最后通过Maven引入依赖,使用工具类发送短信验证码。
【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
|
2月前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
48 3
|
3月前
|
IDE API 开发工具
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
Alibaba Cloud API Toolkit for VSCode 是集成了 OpenAPI 开发者门户多项功能的 VSCode 插件,开发者可以通过这个插件方便地查找API文档、进行API调试、插入SDK代码,并配置基础环境设置。我们的目标是缩短开发者在门户和IDE之间的频繁切换,实现API信息和开发流程的无缝结合,让开发者的工作变得更加高效和紧密。
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
|
2月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
3月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
112 9
|
3月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
3月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
3月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
2月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
59 0