使用ACS算力快速搭建生成式会话应用
本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
场景简介
阿里云容器计算服务ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
本教程所使用两个开源项目,分别是RWKV-Runner和ChatGPT-Next-Web。RWKV-Runner是一个0.1b的大模型并提供RESTful API对外提供在线推理服务,ChatGPT-Next-Web是会话应用的WebUI。RWKV-Runner与ChatGPT-Next-Web形成前后端分离架构的生成式AI会话应用,通过容器镜像部署到ACS集群中。完成本教程后,您将创建生成式AI会话应用。

背景知识
本场景主要涉及以下云产品和服务:
阿里云容器计算服务ACS (Alibaba Cloud Container Compute Service,ACS)是以K8s为使用界面供给容器算力资源的云计算服务,提供符合容器规范的算力资源。算力交付模式为Serverless形态,您无需关注底层节点及集群的运维管理。ACS支持按需弹性和资源预留的资源使用方式,以及秒级的按量付费模式。算力资源可同时支持您的容器应用负载和云产品的负载。
前提条件
本实验需要您使用阿里云账号开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
本实验1个小时预计产生费用14.15元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
开通并授权容器计算服务ACS
如果您已开通容器计算服务ACS服务并授权,请您跳过此步骤。
在实验室右侧的操作区中,勾选我已阅读并同意《阿里云云起实践平台服务协议》,单击免费开始实操。

登录容器计算服务控制台。
在容器计算服务(ACS)页面,单击开通服务中的前往开通。

在开通服务面板,单击创建服务关联角色,当服务关联角色显示已创建后,单击立即购买。


返回容器计算服务(ACS)页面,单击刷新,当容器计算服务(ACS)服务显示为已开通状态时,单击下一步。

在容器计算服务(ACS)页面,单击角色授权中的前往授权。

在访问控制快速授权页面,单击确认授权。

返回容器计算服务(ACS)页面,单击刷新,当显示服务角色已授权时,单击下一步。

在容器计算服务(ACS)页面,单击进入控制台。

返回如下页面,表示您已成功开通并授权容器计算服务ACS。

创建ACS集群本
登录容器计算服务控制台。
在集群页面,单击创建集群。

在创建集群页面,根据如下说明配置参数,未提及的参数保持默认即可,单击确认配置。
配置项
说明
示例
集群名称
填写集群的名称。
ACS-Demo
地域
选择集群所在的地域。
华北2(北京)
选择专有网络
设置集群的网络。ACS集群仅支持专有网络。支持自动创建和使用已有的VPC。
自动创建:集群会自动新建一个VPC,并在VPC中自动创建NAT网关以及配置SNAT规则。
使用已有:您可以在已有VPC列表中选择所需的VPC和交换机。如需访问公网,例如下载容器镜像,则需要配置NAT网关。建议将容器镜像上传到集群所在区域的阿里云镜像服务,并通过内网VPC地址拉取镜像。
详细信息,请参见创建和管理专有网络。
选择自动创建。
API Server 访问配置
设置集群API Server是否可在公网访问,当您需要从公网远程管理集群时,需要配置弹性公网IP(EIP)。
选中使用EIP暴露API Server。
服务发现
设置是否开启集群服务发现能力。当你需要服务发现能力时,需选择开启CoreDNS。
选择CoreDNS。


在配置确认面板,请确认依赖检查区域中的所有项目是否都通过,若有未通过的项目,请您根据页面提示进行授权,然后单击创建集群。

返回如下页面,请您耐心等待集群创建完成,集群的创建时间一般约为10分钟。当集群运行状态变为运行中时,表示ACS集群创建完成,您可以进行下一步操作。

使用ACS控制台部署RWKV-Runner
本步骤指导您如何在新创建的ACS集群中使用通用型实例快速部署一个无状态应用(Deployment)RWKV-Runner,并将该应用RESTful API在集群内公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment。
登录容器计算服务控制台。
在集群页面,单击目标集群名称(即ACS-Demo)。

在左侧导航栏,选择。

在无状态页面,单击使用镜像创建。

在应用基本信息页面,设置应用名称为rwkv-runner,选择实例类型为CPU通用型,QoS类型为default,单击下一步。

在容器配置页面,配置容器的相关信息,单击下一步。
配置项
说明
示例值
镜像名称
直接输入不包含镜像Tag的镜像地址或单击选择镜像来选择所需的镜像。
registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-runner:1.0.0
CPU
根据需要为该应用指定所需的CPU核数。
1 Core
内存
根据需要为该应用指定所需的内存大小。
2 GiB
端口
设置容器的端口。
在端口右侧,单击新增,根据如下说明配置端口参数。
名称:runner
容器端口:8000
协议:TCP

在高级配置页面,单击服务(Service)右侧的创建。

在创建服务对话框,配置以下信息,单击确定,以通过该服务集群内发布rwkv-runner的RESTful API。
配置项
说明
示例值
名称
输入服务的名称。
rwkv-runner-svc
类型
选择服务类型,即服务访问的方式。
虚拟集群IP
端口映射
设置服务端口和容器端口。容器端口需要与后端的Pod中暴露的容器端口一致。
名称:runner
服务端口:80
容器端口:8000
协议:TCP

在高级配置页面,单击右下角的创建。

创建成功后,默认进入创建完成页面,显示应用包含的对象。您可以单击查看应用详情进行查看。

在应用详情页面,您可查看rwkv-runner应用创建进度。当Pod的状态变为Running后,表示已经完成服务启动。
说明示例镜像集成了RWKV-6-World-1B模型,镜像大小约为16GiB,视网络情况可能存在10~20分钟的镜像拉取时间,请您耐心等待rwkv-runner应用创建完成。

使用ACS集群证书部署并公开ChatGPT-Next-Web
本步骤指导您如何使用ACS集群证书在新创建的ACS集群中使用通用型实例快速部署一个无状态应用(Deployment)ChatGPT-Next-Web,并将该应用公网公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment。
在左侧导航栏中,选择。

在无状态页面,单击使用YAML创建资源。

在创建页面,示例模板选择自定义,复制如下代码并粘贴至模板区域中,单击创建。
apiVersion: v1 kind: Service metadata: name: chat-frontend-svc spec: ports: - name: chat port: 80 protocol: TCP targetPort: 3000 selector: app: chat-frontend type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: chat-frontend name: chat-frontend spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: chat-frontend strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: alibabacloud.com/compute-class: general-purpose # 通用型 #alibabacloud.com/compute-class: performance 性能型 app: chat-frontend spec: containers: - env: - name: BASE_URL value: 'http://rwkv-runner-svc' image: registry.cn-beijing.aliyuncs.com/acs-demo-ns/chatgpt-next-web:amd64 imagePullPolicy: IfNotPresent name: chat-frontend ports: - containerPort: 3000 protocol: TCP resources: requests: cpu: "1" memory: 2Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
在创建页面下方,单击chat-frontend。

在应用详情页面,您可查看chat-frontend应用创建进度。当Pod的状态变为Running后,表示已经完成服务启动。

使用ACS集群证书创建应用初始任务
本步骤指导您如何使用ACS集群证书在新创建的ACS集群中使用BestEffort 算力质量的实例快速创建一个任务(Job),用于RWKV-Runner应用大模型的初始化。关于创建Job的详细参数描述,请参见创建任务工作负载Job。
在左侧导航栏中,选择。

在无状态页面,单击使用YAML创建资源。

在创建页面,示例模板选择自定义,复制如下代码并粘贴至模板区域中,单击创建。
apiVersion: batch/v1 kind: Job metadata: name: job-demo spec: activeDeadlineSeconds: 600 backoffLimit: 6 completionMode: NonIndexed completions: 1 parallelism: 1 suspend: false template: metadata: labels: alibabacloud.com/compute-qos: best-effort # BestEffort型 #alibabacloud.com/compute-qos: default # 默认型 app: job-demo spec: containers: - name: job image: registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-init-job:1.0.0 imagePullPolicy: Always resources: requests: cpu: 500m memory: 1Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Never schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
在创建页面下方,单击job-demo。

在应用详情页面,您可查看job-demo任务执行进度。当Pod的状态变为Completed后,表示初始化任务执行完成。

测试应用
本步骤指导您如何通过服务(Service)来访问新部署的容器化应用。
在左侧导航栏中,选择网络 > 服务。

在服务页面,找到新创建的服务(即chat-frontend-svc),复制External IP列的IP地址。

在本地机器的浏览器中,访问External IP列的IP地址,即可访问生成式AI会话应用。

清理资源
使用ACS集群所产生的费用包括以下两部分:
创建工作负载使用的算力,由容器计算服务ACS收取。
使用的其他阿里云云产品资源费用,按照各云产品规定的计费规则计费,由各云产品收取。
完成实验后,请参考以下场景处理集群。
在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。
删除容器计算服务ACS集群。
登录容器计算服务控制台。
在集群页面,找到目标ACS集群,选择其右侧操作列下的

在关闭集群删除保护状态对话框中,关闭集群删除保护的开关,单击确认。

在集群页面,找到目标ACS集群,选择其右侧操作列下的。

在删除集群及关联资源面板,选择删除所有的集群关联资源,单击删除。

在确认删除集群对话框中,输入需要删除的集群名称,勾选我已知晓以上信息并确认删除,单击确认删除。

删除容器计算服务ACS集群后,单击结束实操。在结束实操对话框中,单击确定。

在完成实验后,如果需要继续使用资源,您可跳过删除容器计算服务ACS集群的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。在使用ACS集群过程中用到的其他阿里云云产品资源的相关计费说明,请参见云产品资源计费。







































