赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. ACK Edge集群
  4. 操作指南
  5. AI套件
  6. 使用ack-kserve组件

使用ack-kserve组件

  • AI套件
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

KServe是一个开源项目,旨在简化在Kubernetes上部署和运行机器学习模型的过程,支持多种机器学习框架、具备弹性扩容能力。KServe通过定义简单的YAML文件,提供声明式的API来部署模型,使得配置和管理模型服务变得更加容易。本文介绍如何在ACK集群中部署和管理ack-kserve组件以及常见问题的解决方案。

前提条件

  • 已创建ACK Edge集群,且集群版本为1.22及以上。具体操作,请参见创建ACK Edge集群。

  • 已安装Nginx Ingress Controller组件。具体操作,请参见如何在ACK Edge集群部署Ingress Controller。

步骤一: 安装cert-manager组件

如果您的集群中已经安装cert-manager组件,请跳过此步骤。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm。

  3. 在Helm页面单击创建,然后在创建页面,将应用名设置为cert-manager,在Chart区域的搜索栏搜索并选中cert-manager,完成后单击下一步,在弹出的对话框中单击是,确认采用cert-manager为Chart的默认的命名空间。

  4. 在参数配置页面,确认Chart 版本和参数信息后,单击确定。

    部署成功后,页面自动跳转至Helm页面,供您查看cert-manager的Helm组件信息。

步骤二:安装ack-kserve组件

ack-kserve组件默认采用RawDeployment模式部署,并与Nginx Ingress Controller组件集成。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm。

  3. 在Helm页面单击创建,然后在创建页面,将应用名设置为ack-kserve,在Chart区域的搜索栏搜索并选中ack-kserve,完成后单击下一步,在弹出的对话框中单击是,确认采用kserve为Chart的默认的命名空间。

  4. 在参数配置页面,确认Chart 版本和参数信息后,单击确定。

    部署成功后,页面自动跳转至Helm页面,供您查看ack-kserve的Helm组件信息。

  5. 修改kserve中inferenceservice-config配置项。

    在Helm页面,单击kserve,然后单击inferenceservice-config,单击YAML 编辑,修改YAML文件中的ingressClassName字段,使其与安装Nginx Ingress Controller时指定的ingressClassResource.name一致。image

  6. 校验ack-kserve是否运行。

    执行以下命令,查看kserve命名空间下的Pod是否处于running状态。

    kubectl get pod -n kserve

    如果预期输出的STATUS为running状态,表明ack-kserve组件已经安装成功。

(可选)步骤三:查看或更新ack-kserve️组件

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm。

  3. 查看ack-kserve️组件详情。

    在Helm页面,单击ack-kserve组件操作列的详情,即可查看组件的基本信息、参数配置及历史版本。

  4. 更新ack-kserve️组件信息。

    在Helm页面,单击ack-kserve组件操作列的更新,即可更新组件的版本及参数。

(可选)步骤四:清理资源和卸载组件

  1. 为避免资源浪费,请在卸载ack-kserve️组件前删除集群内的KServe CR(Custom Resource )及CRD(Custom Resource Definition)资源。

    重要

    删除CR和CRD资源之前,请确认业务不再使用CR和CRD资源。删除CRD资源会同步删除对应的CR资源,CR资源一旦删除将无法恢复。

    1. 确认业务不再使用后,再删除集群内所有的KServe CR资源。删除CR资源可能涉及以下命令:

      # 查看集群内所有isvc资源。
      kubectl get isvc --all-namespaces
      
      # 保存集群内所有isvc资源。
      kubectl get isvc --all-namespaces -oyaml > isvc.yaml.bak
      
      # 确认业务不再使用后删除isvc资源。
      kubectl delete isvc --all
    2. 删除集群内的KServe CRD资源。

      在删除CRD之前,应确保先删除所有依赖于该CRD的CR,否则会导致CRD删除失败。

      kubectl delete crd clusterservingruntimes.serving.kserve.io
      kubectl delete crd clusterstoragecontainers.serving.kserve.io
      kubectl delete crd inferencegraphs.serving.kserve.io
      kubectl delete crd inferenceservices.serving.kserve.io
      kubectl delete crd predictors.serving.kserve.io
      kubectl delete crd servingruntimes.serving.kserve.io
      kubectl delete crd trainedmodels.serving.kserve.io
  2. 卸载ack-kserve组件。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

    2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm。

    3. 在Helm页面,单击ack-kserve组件操作列的删除,即可根据页面提示卸载ack-kserve组件。

  3. 卸载cert-manager组件。

    警告

    卸载cert-manager组件前,请先确认集群中没有其他组件使用cert-manager组件,否则会导致业务不可用。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

    2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择应用 > Helm。

    3. 在Helm页面,单击cert-manager组件操作列的删除,即可根据页面提示卸载cert-manager组件。

  4. 执行以下命令,删除集群内cert-manager的CRD资源。

    kubectl delete crd certificaterequests.cert-manager.io
    kubectl delete crd certificates.cert-manager.io
    kubectl delete crd challenges.acme.cert-manager.io
    kubectl delete crd clusterissuers.cert-manager.io
    kubectl delete crd issuers.cert-manager.io
    kubectl delete crd orders.acme.cert-manager.io

常见问题及解决方案

常见问题:安装ack-kserve组件时出现报错failed to call webhook: Post "https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s": tls: failed to verify certificate: x509: certificate signed by unknown authority。

问题原因:ack-kserve组件强依赖于cert-manager组件,如果当前集群中未安装cert-manager组件或者cert-manager组件未就绪,此时安装ack-kserve组件就会出现上述报错。

解决方案:

  1. 执行以下命令,确认集群中是否已经安装cert-manager组件。

    kubectl get crd |grep certificates.cert-manager.io

    预期输出如下所示,表明集群中已经安装cert-manager组件。

    certificates.cert-manager.io                         2024-05-06T07:09:17Z

    如集群中没有cert-manager的CRD资源,请参见步骤一安装cert-manager组件。

  2. 执行以下命令,确认cert-manager组件是否已经就绪。

    kubectl -n cert-manager get po

    预期输出如下所示,表明cert-manager组件的Pod均已就绪。

    NAME                                       READY   STATUS    RESTARTS   AGE
    cert-manager-7f4bb44d5b-jrrfn              1/1     Running   0          23h
    cert-manager-cainjector-79544456cc-qp5pp   1/1     Running   0          23h
    cert-manager-webhook-f74ccb647-7m5dt       1/1     Running   0          23h

    如果所有Pod均为Ready状态,请参见上文先卸载ack-kserve组件,然后再重新安装即可解决报错。

相关文章

部署AI套件控制台 2025-04-21 11:14

云原生AI套件提供了简单的运维大盘和开发控制台,满足快速浏览集群状态、提交训练任务的需要。由于ACK Edge集群的Ingress组件部署方式与ACK托管集群Pro版有差异,AI套件控制台在ACK Edge集群

使用共享GPU调度能力 2025-04-21 11:14

通过共享GPU调度能力,您可以将多个Pod调度到同一张GPU卡上,以共享GPU的计算资源,从而提高GPU的利用率并节省成本。在实现GPU共享调度的同时,确保运行在同一张GPU上的多个容器之间能够互相隔离,并根据各自申请的资源使用量运行,避免某个容器的资源使用量超标,进而影响其他容器的正常工作。本文介

使用ack-kserve组件 2025-04-21 11:14

KServe是一个开源项目,旨在简化在Kubernetes上部署和运行机器学习模型的过程,支持多种机器学习框架、具备弹性扩容能力。KServe通过定义简单的YAML文件,提供声明式的API来部署模型,使得配置和管理模型服务变得更加容易。本文介绍如何在ACK集群中部署和管理ack-kserve组件以及

使用Fluid加速边缘节点访问OSS文件 2025-04-21 11:14

Fluid是一个开源的Kubernetes原生的分布式数据集编排和加速引擎,主要服务于云原生场景下的数据密集型应用,如大数据应用、AI应用等。在边缘场景中,借助Fluid的数据集加速引擎,可以显著提升边缘节点访问OSS文件的速度。本文介绍如何在ACK Edge集群中使用Fluid数据加速功能。 前提

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号