阿里云容器计算服务 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会话应用。
如果您想了解更多Kubernetes相关概念,可以通过CNCF × Alibaba 云原生技术公开课深入学习Kubernetes。
操作流程
当您首次使用ACS时,您需要开通并授权容器计算服务ACS,然后创建集群,在集群中部署生成式AI应用。
步骤一:开通并授权容器计算服务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控制台部署RWKV-Runner
本步骤指导您如何在新创建的ACS集群中使用通用型实例快速部署一个无状态应用(Deployment)RWKV-Runner,并将该应用RESTful API在集群内公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment。
登录容器计算服务控制台,在集群页面,单击目标集群名称(即ACS-Demo)。
在左侧导航栏,选择 。
在无状态页面,单击使用镜像创建。
在应用基本信息配置向导,设置应用名称为rwkv-runner,选择实例类型为通用型,QoS类型为default,单击下一步。
在容器配置向导,配置容器的相关信息,单击下一步。
配置项
说明
示例值
镜像名称
直接输入不包含镜像Tag的镜像地址或单击选择镜像来选择所需的镜像。
registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-runner
镜像Tag
单击选择镜像Tag选择镜像的版本。
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
在高级配置向导,单击右下角的创建。
创建成功后,默认进入创建完成配置向导,显示应用包含的对象。您可以单击查看应用详情进行查看。
步骤四:使用ACS集群证书部署并公开ChatGPT-Next-Web
本步骤指导您如何使用ACS集群证书在新创建的ACS集群中使用通用型实例快速部署一个无状态应用(Deployment)ChatGPT-Next-Web,并将该应用公网公开。关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment。
登录容器计算服务控制台,在集群页面,单击目标集群名称(即ACS-Demo)。
在集群信息页面,单击连接信息页签,获取公网访问证书,然后按页面提示放置到相应位置。
使用以下示例应用的YAML内容,创建名为chat-next-web.yaml的文件。
执行以下命令,将资源提交到ACS集群。
kubectl apply -f chat-next-web.yaml
步骤五:使用ACS集群证书创建应用初始任务
本步骤指导您如何使用ACS集群证书在新创建的ACS集群中使用BestEffort 算力质量的实例快速创建一个任务(Job),用于RWKV-Runner应用大模型的初始化。关于创建Job的详细参数描述,请参见创建任务工作负载Job。
使用以下示例应用的YAML内容,创建名为rwkv-init-job.yaml的文件。
执行以下命令,确认初始化任务。
kubectl apply -f rwkv-init-job.yaml
执行以下命令,确认初始化任务执行完成。
kubectl get pod
预期输出:
步骤六:测试应用
本步骤指导您如何通过服务(Service)来访问新部署的容器化应用。
登录容器计算服务控制台,在集群页面,单击目标集群名称(即ACS-Demo)。
在左侧导航栏,选择
。在服务页面,找到新创建的服务(即chat-frontend-svc),单击External IP列的IP地址,即可访问生成式AI会话应用。
释放资源
使用ACS集群所产生的费用包括以下两部分:
创建工作负载使用的算力,由容器计算服务ACS收取。
使用的其他阿里云云产品资源费用,按照各云产品规定的计费规则计费,由各云产品收取。
完成快速入门后,请参考以下场景处理集群: