在ACK Serverless中部署Stable Diffusion应用
csk
手动配置
30
教程简介
ACK Serverless集群是阿里云推出的无需购买节点即可部署工作负载的Kubernetes容器服务。无需在ACK Serverless集群中管理和维护节点,无需容量规划,降低业务的基础设施管理和运维成本。ACK Serverless集群的秒级伸缩能力、根据应用配置的CPU和内存资源量按需、按量付费能力,降低业务的计算成本,尤其是有明显波峰波谷的业务。ACK Serverless集群提供完善的Kubernetes兼容能力,同时降低Kubernetes使用门槛,让您无需管理底层基础设施,更加专注于应用程序。
在本教程中,系统自动生成ACK Serverless集群,提供业务运行环境。通过本教程您将学会如何在ACK Serverless集群中快速部署一套可对外提供服务的Stable Diffusion应用。
阿里云不对第三方模型“Stable Diffusion”的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。
您应自觉遵守第三方模型“Stable Diffusion”的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。
我能学到什么
学会如何操作ACK Serverless集群。
学会如何在ACK Serverless集群中部署可对外提供服务的应用。
操作难度 | 中 |
所需时间 | 30分钟 |
使用的阿里云产品 | |
所需费用 | 合计费用:ECI盘和EIP计费大约需要0.06元/小时。 其它云资源首月减免额度如下: 个人账号: 计算资源ECI:317.57元(每小时抵扣≤1.76元) 网络资源CLB:0.735元 企业账号: 计算资源ECI:952.71元(每小时抵扣≤5.28元) 网络资源CLB:0.735元 关于ACK Serverless集群费用减免详细信息,请参见下文的试用前说明。 |
试用前说明
ACK Serverless试用集群减免的费用
ACK Serverless(原ASK)试用集群由计算资源弹性容器实例ECI和网络资源负载均衡CLB组成,个人账号和企业账号对应这两部分资源的免费额度如下。
个人账号
资源类别 | 免费地域 | 对应规格 | 总免费额度 | 备注 | 标准计费文档 |
弹性容器实例ECI |
| 按vCPU和内存计费 | 2023年06月09日之后的抵扣规则:
|
| 按vCPU和内存计费。更多信息,请参见ECI实例计费。 |
2023年06月09日之前的抵扣规则:
|
| ||||
网络资源负载均衡CLB | 不涉及 | 私网CLB |
| 在默认低消耗情况下,15 LCU的流量可供ACK Serverless集群的APIServer使用30天。但具体可用时长还与您实际应用部署情况相关,可能有所波动。 | 按使用量计费。更多信息,请参见按量付费。 |
企业账号
资源类别 | 免费地域 | 对应规格 | 总免费额度 | 备注 | 标准计费文档 |
弹性容器实例ECI |
| 按vCPU和内存计费 | 2023年06月09日之后的抵扣规则:
|
| 按vCPU和内存计费。更多信息,请参见ECI实例计费。 |
2023年06月09日之前的抵扣规则:
|
| ||||
网络资源负载均衡CLB | 不涉及 | 私网CLB |
| 在默认低消耗情况下,15 LCU的流量可供ACK Serverless集群的APIServer使用30天。但具体可用时长还与您实际应用部署情况相关,可能有所波动。 | 按使用量计费。更多信息,请参见按量付费。 |
实际使用情况可能与应用部署、网络环境等情况有关, 请随时关注这两个资源节省计划的账单抵扣余额。
问题1:如何查看节省计划账单余额?
登录阿里云账号,在顶部菜单栏,选择费用 > 费用与成本。
在左侧导航栏,选择账户 > 节省计划。
在总览页签,找到ACK Serverless(原ASK)免费试用集群的ECI和CLB的免费额度,横向拖动滚动条查看两者的剩余金额。
问题2:如果使用同类资源,账单如何抵扣?
ACK Serverless(原ASK)试用集群的免费额度以弹性容器实例ECI的节省计划和负载均衡CLB的节省计划形式发放到您的账号中。如果您持有或者新创建同类型资源,对应账单的节省计划中会一并抵扣。这种情况下,请务必注意及时关闭或者删除资源,避免额外资损。
ACK Serverless试用集群不会减免的费用
集群创建完成后,如果您在ACK Serverless集群上增加或开通其他云服务,就需要为您使用的这些云资源付费。以下云资源中,除本教程需使用的弹性容器实例的临时存储空间和弹性公网IP(EIP)以外,其他资源默认不开通。请务必注意及时删除资源,避免额外资损。关于查看账单的具体操作,请参见查看账单。
相关云资源计费信息如下表所示。
资源类别 | 资源使用说明 | 收费详情 |
弹性容器实例的临时存储空间 | 本教程需使用的资源。 本应用的镜像需要50 GiB的存储空间,每个ECI实例默认提供30 GiB免费的临时存储空间,多出20 GiB的EIP磁盘需要付费。 | 关于计费详情,请参见临时存储空间计费。 |
负载均衡ALB | 支撑Ingress,对多台云服务器进行流量分发。更多信息,请参见Ingress概述。 | ALB由实例费和LCU费两部分组成,其中ALB有免费计划,您可以在免费试用中心尝试领取。关于收费详情,请参见ALB计费概述。 |
MSE云原生网关 | 支撑Ingress,与ALB二选一。 | 云原生网关实例有后付费(按量计费)和预付费(包年包月)两种计费模式,计费包含实例规格(CPU和内存)和节点数。其中MSE有免费计划,您可以前往免费试用中心尝试领取。关于收费详情,请参见MSE计费概述。 |
Prometheus | 容器CaaS层或Pod指标监控。 |
|
弹性公网IP(EIP) | 本教程需使用的资源。 公网IP。可以单独使用,也可以与私网负载均衡SLB或者SNAT绑定使用。 | 其中EIP有免费计划,您可以前往免费试用中心尝试领取。关于收费详情,请参见EIP计费概述。 |
SNAT | ACK Serverless集群公网流量的出口, 如果Pod中的应用需要访问公网。例如,使用高德API、文字识别调用OCR。 | SNAT由实例费和CU费两部分组成。关于收费详情,请参见SNAT计费概述。 |
容器镜像服务ACR | 容器化应用的镜像存放管理,提供镜像的安全托管和高效分发。 | 包含个人版和企业版两种规格,其中ACR个人版有免费计划,您可以前往免费试用中心尝试领取。关于ACR企业版收费详情,请参见ACR企业版实例计费说明。 |
CNFS(文件存储) | 文件存储NAS适用于频繁修改的数据,需要极致弹性快速扩大或收缩容量,多个容器实例Pod共享数据。 | CPFS会根据您存储的类型、大小、时长收取费用。关于收费详情,请参见CPFS计费说明。 |
云盘(块存储) | 块存储适用于低延时、适用于数据库等数据规模不大的结构化数据场景,独占的裸数据块,不提供跨主机容器的数据共享。 | 云盘支持按量付费和SCU付费方式。关于收费详情,请参见块存储计费和存储容量单位包SCU概述。 |
OSS(对象存储) | 对象存储适用于多媒体、海量视频图片等非结构化数据,无需高性能分析和修改编辑,更低价格存储数据,REST API直接访问海量存储资源。 | OSS支持按量付费、资源包和SCU付费方式。其中OSS有免费计划,您可以前往免费试用中心尝试领取。关于收费详情,请参见OSS计费概述。 |
准备环境和资源
10
开始教程前,请按以下步骤准备环境和资源:
访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
成功登录后,在产品类别下选择容器 > 容器服务 Serverless 版,按需选择ACK Serverless集群的个人版或企业版试用规格,单击立即试用。
ACK Serverless(原ASK)试用集群仅限实名认证的弹性容器实例ECI的新用户领取,每个用户仅限领取一次。本教程以使用个人账号的2核 4 GB的弹性容器实例ECI为例进行说明。使用企业账号的操作步骤类似。
在容器服务 Serverless 版面板,在服务协议右侧,单击已完成服务角色的授权链接或访问授权页面,然后单击同意授权,完成ACK Serverless(原ASK)试用集群的授权操作。
返回容器服务 Serverless 版面板,选择任一地域,本教程以华北2(北京)地域为例,其他配置项保持默认。仔细阅读各服务协议,并选中服务协议选框,然后单击立即试用。
试用申请成功通过后,系统将会为您自动创建ACK Serverless集群基础版。您可以前往容器服务 Serverless 版控制台进行后续操作。集群创建大约需要3分钟,当集群状态为运行中时,即可正常使用。
创建Stable Diffusion应用
10
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称进入集群信息页面,然后在集群信息页面左侧导航栏,选择工作负载 > 无状态。
在无状态页面,单击使用镜像创建。
在应用基本信息页签,设置应用名称,例如stable-diffusion,其他配置项保持默认值,然后单击下一步。
在容器配置页签,按照页面内容依次设置基本配置、健康检查、生命周期相关的配置项,然后单击下一步。
类别
配置项
示例值
配置页面
基本配置
镜像名称
公网:yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/stable-diffusion:v1.2.0
内网访问时,请根据集群地域选择如下内网地址:
内网:
华北2(北京): registry-vpc.cn-beijing.aliyuncs.com/yunqi-lab/stable-diffusion:v1.2.0
华东2(上海):registry-vpc.cn-shanghai.aliyuncs.com/yunqi-lab/stable-diffusion:v1.2.0
华东1(杭州):registry-vpc.cn-hangzhou.aliyuncs.com/yunqi-lab/stable-diffusion:v1.2.0
华南1(深圳):registry-vpc.cn-shenzhen.aliyuncs.com/yunqi-lab/stable-diffusion:v1.2.0
所需资源
CPU:8Core
内存:16GB
健康检查
就绪检查
就绪检查:开启
选择TCP连接
端口:7860
生命周期
启动执行
命令:["python3", "launch.py"]
参数: ["--listen", "--skip-torch-cuda-test", "--no-half"]
在高级配置页签,单击服务(Service)右侧的创建。
在创建服务对话框中,设置服务相关的参数,然后单击创建。
通过该服务公开Stable Diffusion应用。
返回高级配置页签,添加名为k8s.aliyun.com/eci-extra-ephemeral-storage,值为50Gi的Pod注解,然后单击创建。
出现如图所示的页面,表示应用创建成功,您可以单击查看应用详情,查看应用的容器组、访问方式、事件、容器伸缩、历史版本、日志和触发器等信息。
等待Pod状态变为Running,Stable Diffusion应用部署完成。此应用镜像大小为50 GiB,内网下载约10 min。但在云起实验室环境下,通过镜像加速可以实现秒级拉取镜像,所需时间约20s。
完成
5
完成以上操作后,您已经成功部署了Stable Diffusion应用。
在容器服务管理控制台的集群列表页面,单击目标集群名称,然后在左侧导航栏,选择网络 > 服务,查看您创建的服务(例如stable-diffusion-svc)的外部端点,例如8.140.XX.XX:7860。
在浏览器地址栏中输入
http://<您创建的服务的外部端点>/
,例如http://8.140.XX.XX:7860
,即可访问体验Stable Diffusion应用。通过输入Black and white photo of a beautiful city,然后单击Generate,即可查看Stable Diffusion生成的图片。
清理及后续
5
清理
删除已创建的应用和服务
在容器服务管理控制台的集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态,找到已创建的stable-diffusion应用,在页面右侧操作列,选择更多 > 删除。
在确认面板中,选中移除关联的服务(Service)stable-diffusion-svc,然后单击确定。
删除集群
ACK Serverless集群目前处于公测中,可免费试用。但是在使用ACK Serverless集群过程中用到的其他阿里云云产品资源,您需要按照各云产品规定的计费规则,为您使用的资源付费,费用由各云产品收取。完成教程后,请参考以下场景处理集群:
如果无需继续使用集群,请登录容器服务管理控制台,在集群列表页面的操作列,单击目标集群对应的更多 > 删除。在删除集群页面,选中同时删除集群下的ALB资源、同时删除集群下的PrivateZone资源和我已知晓以上信息并确认删除集群,然后单击确定。关于删除ACK Serverless集群的更多信息,请参见删除集群。
如果需要继续使用集群,请至少在试用期到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。在使用ACK Serverless集群Pro版过程中用到的其他阿里云云产品资源,相关计费说明,请参见云产品资源计费。
后续
总结
常用知识点
问题1:创建应用时,健康检查中需要开启哪一项配置?(单选题)
存活检查
就绪检查
启动探测
正确答案是就绪检查。配置就绪检查,在应用启动的一段时间内也可以访问。
问题2:创建服务时,设置服务的类型是什么?(单选题)
负载均衡、公网访问、新建SLB。
虚拟集群IP。
负载均衡、私网访问、新建SLB。
正确答案是负载均衡、公网访问、新建SLB。如果服务的类型选择错误,则无法建立正确的公网访问链接,不能正常访问Stable Diffusion应用。