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


目录
相关文章
|
5月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
175 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
10月前
|
运维 Kubernetes 网络协议
基于虚拟服务配置的渐进式迁移实践:Istio集群至ASM集群的平滑切换
本文介绍了从Istio+k8s环境迁移到阿里云ASM+ACK环境的渐进式方法,通过配置虚拟服务和入口服务实现新老集群间的服务调用与流量转发,确保业务连续性与平滑迁移
874 132
|
8月前
|
人工智能 自然语言处理 DataWorks
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
阿里云DataWorks平台正式接入Qwen3模型,支持最大235B参数量。用户可通过DataWorks Copilot智能助手调用该模型,以自然语言交互实现代码生成、优化、解释及纠错等功能,大幅提升数据开发与分析效率。Qwen3作为最新一代大语言模型,具备混合专家(MoE)和稠密(Dense)架构,适应多种应用场景,并支持MCP协议优化复杂任务处理。目前,用户可通过DataWorks Data Studio新版本体验此功能。
616 23
DataWorks Copilot 集成Qwen3-235B-A22B混合推理模型,数据开发与分析效率再升级!
|
7月前
|
JSON 前端开发 算法
掌握Multi-Agent实践(三):ReAct Agent集成Bing和Google搜索功能,采用推理与执行交替策略,增强处理复杂任务能力
掌握Multi-Agent实践(三):ReAct Agent集成Bing和Google搜索功能,采用推理与执行交替策略,增强处理复杂任务能力
466 23
|
机器学习/深度学习 Kubernetes Cloud Native
云原生技术演进之旅:从容器到服务网格
在云计算的浪潮中,云原生技术以其独特的灵活性和可扩展性引领了新的技术革命。本文将深入探讨云原生技术的发展脉络,从容器技术的突破,到Kubernetes的集群管理,再到服务网格的微服务通信解决方案,揭示云原生如何不断适应和塑造现代应用的需求。文章将通过数据支撑和案例分析,展示云原生技术在实际应用中的优势和挑战,并预测其未来的发展趋势。
198 28
|
10月前
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
10月前
|
人工智能 Cloud Native 多模数据库
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
243 1
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
315 3
|
12月前
|
运维 监控 Cloud Native
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
376 0