基于ASK轻松部署企业级Stable Diffusion

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 本实验指导您在容器服务Serverless版(以下简称 ASK)中,通过Knative部署满足企业级弹性需求的Stable Diffusion服务。同时通过对该服务进行压测实验,体验ASK弹性能力。

基于ASK轻松部署企业级Stable Diffusion


1. 计费说明

必看!!必看!!必看!!

本实验为付费体验,需要消耗账号费用。体验后若不再需要使用,请及时释放资源,避免持续产生费用。

完成本实验,将要耗费ACK Serverless Pro集群的相关云资源费用说明如下。更多信息,详情请参见ACK Serverless 集群计费说明

产品名

计费类型

费用

计费链接

微服务引擎MSE云原生网关

按量付费

0.84元/小时

云原生网关MSE计费概述

容器服务ACK Serverless Pro集群

限时免费

目前公测中,限时免费

ACK Serverless 集群计费说明

弹性容器实例

按量付费

11.74元/小时~15.46元/小时

ECI实例计费

NAT网关

按量付费

0.78元/小时

NAT计费概述

2. 环境准备

  1. 开通微服务引擎MSE。

说明:如果您的阿里云账号已开通微服务引擎MSE,您可以忽略此步骤。

1.1 前往MSE管理控制台

1.2 在微服务引擎MSE服务开通页面,单击立即授权,开通微服务引擎MSE。

1.3 在授权对话框中页面,单击确定,完成MSE访问ECI的授权。

1.4 在微服务引擎MSE服务开通页面,单击下一步

返回如下页面,表示微服务引擎MSE开通成功。

  1. 前往MSE访问ECI授权页面,单击同意授权,完成MSE访问ECI的授权。

说明:此步骤必须完成,请勿跳过。

  1. 创建ACK Serverless Pro版集群。

2.1 前往容器服务管理控制台,在左侧导航栏选择集群

2.2 在集群列表页面,单击页面右上角的创建集群

2.3 在创建集群页面的集群配置中,单击ACK Serverless集群,根据如下参数说明完成相关配置,其他配置项保持默认值,然后单击下一步:组件配置

配置项

说明

示例值

集群名称

填写集群的名称。

knative-sd-demo

集群规格

选择集群规格,支持Pro 版和标准版

Pro版

地域

选择集群所在的地域。建议选择华北2(北京)地域。

华北2(北京)

专有网络

设置集群的网络。Kubernetes集群仅支持专有网络。支持自动创建和使用已有的VPC。

自动创建

可用区

选择集群所在的可用区。目前华北2(北京)支持的可用区如下:

华北 2 可用区 C

华北 2 可用区 D

华北 2 可用区 G

华北 2 可用区 E

注意:请您在以上ECI支持GPU的四个可用区进行选择。

华北 2 可用区 G

2.3 在组件配置中,Ingress选择MSE Ingress,并选中开启Knative,其他配置项保持默认,单击下一步:确认配置。如您无需使用日志服务功能,可以取消选中使用日志服务,避免产生相关费用。

2.4 在确认配置中,确认配置信息,仔细阅读并选中服务协议,单击创建集群

请您耐心等待大约3~5分钟,返回如下结果表示集群创建成功。

3. 部署Stable Diffusion服务

  1. 在左侧导航栏中,单击集群

  1. 集群列表页面,找到您创建的ACK Serverless 集群,单击右侧操作列下的详情

  1. 在左侧导航栏中,选择应用>Knative

  1. 服务管理页签,单击使用模板创建

  1. 示例模板下拉列表中,选择Resouce - Knative Service,将以下消息处理服务的YAML示例粘贴至模板,然后单击创建,默认创建一个名为knative-sd-demo的服务。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: knative-sd-demo
  annotations:
    serving.knative.dev.alibabacloud/affinity: "cookie"
    serving.knative.dev.alibabacloud/cookie-name: "sd"
    serving.knative.dev.alibabacloud/cookie-timeout: "1800"
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/class: mpa.autoscaling.knative.dev
        autoscaling.knative.dev/maxScale: '10'
        autoscaling.knative.dev/targetUtilizationPercentage: "100"
        k8s.aliyun.com/eci-use-specs: ecs.gn5-c4g1.xlarge,ecs.gn5i-c8g1.2xlarge,ecs.gn5-c8g1.2xlarge  
    spec:
      containerConcurrency: 1
      containers:
      - args:
        - --listen
        - --skip-torch-cuda-test
        - --api
        command:
        - python3
        - launch.py
        image: yunqi-registry.cn-shanghai.cr.aliyuncs.com/lab/stable-diffusion@sha256:62b3228f4b02d9e89e221abe6f1731498a894b042925ab8d4326a571b3e992bc
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 7860
          name: http1
          protocol: TCP
        name: stable-diffusion
        readinessProbe:
          tcpSocket:
            port: 7860
          initialDelaySeconds: 5
          periodSeconds: 1
          failureThreshold: 3

  1. 返回如下结果,表示创建成功,然后单击返回

  1. 服务管理页签,等待大约两分钟,刷新页面后,当knative-sd-demo的状态变为成功时,表明SD服务部署成功。

4. 访问Stable Diffusion服务并进行压测

部署压测服务portal-server,用于Stable Diffusion效果展示并发起压测。

  1. 服务管理页签,单击使用模板创建

  1. 命名空间下拉列表中,选择default,在示例模板下拉列表中,选择自定义,将以下portal-server压测服务的YAML示例粘贴至模板,然后单击创建
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: portal-server
  name: portal-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: portal-server
  template:
    metadata:
      labels:
        app: portal-server
    spec:
      serviceAccountName: portal-server
      containers:
        - name: portal-server
          image: registry-vpc.cn-beijing.aliyuncs.com/acs/sd-yunqi-server:v1.0.2
          imagePullPolicy: IfNotPresent
          env:
            - name: MAX_CONCURRENT_REQUESTS
              value: "5"
            - name: POD_NAMESPACE
              value: "default"
          readinessProbe:
            failureThreshold: 3
            periodSeconds: 1
            successThreshold: 1
            tcpSocket:
              port: 8080
            timeoutSeconds: 1
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: internet
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: PayByCLCU
  name: portal-server
spec:
  externalTrafficPolicy: Local
  ports:
    - name: http-80
      port: 80
      protocol: TCP
      targetPort: 8080
    - name: http-8888
      port: 8888
      protocol: TCP
      targetPort: 8888
  selector:
    app: portal-server
  type: LoadBalancer
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: pod-list-cluster-role
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["list"]
  - apiGroups: ["networking.k8s.io"]
    resources: ["ingresses"]
    verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: pod-list-cluster-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: pod-list-cluster-role
subjects:
  - kind: ServiceAccount
    name: portal-server
    namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: portal-server
  namespace: default

返回如下结果,表示创建成功。

  1. 在左侧导航栏,选择网络 > 服务

  1. 服务页面,查看portal-server压测服务,获取访问IP为123.56.XX.XX

  1. 在您的本机浏览器中输入http://123.56.XX.XX访问压测页面,然后在该页面单击Stable Diffusion,跳转至Stable Diffusion访问页面。

  1. Stable Diffusion访问页面如下所示。例如,在如下文本框中输入cat,然后单击Generate,将展示与输入有关的图片信息。

  1. 在压测访问页面,设置并发数5总请求数20,然后单击开始压测,查看压测的结果。

返回结果如下,在压测期间,您可以看到创建了5个Pod,并且每个请求均会生成一个图片,图片生成后将展示到页面中。

5. 释放资源

必看!!必看!!必看!!

本实验为付费体验,需要消耗账号费用。体验后若不再需要使用,请及时释放资源,避免持续产生费用。

ACK Serverless Pro集群目前处于公测中,可免费试用。但是在使用ACK Serverless Pro集群过程中用到的其他阿里云云产品资源,您需要按照各云产品规定的计费规则,为您使用的资源付费,费用由各云产品收取。体验完成后,请参考以下场景处理集群:

  • 如您需要继续使用集群,请确保账户金额不小于100.00元人民币。在使用ACK Serverless Pro版集群过程中用到的其他阿里云云产品资源,相关计费说明,请参见云产品资源计费
  • 如您不需要继续使用ACK Serverless Pro集群,请按照如下步骤释放资源,避免产生资损。
  1. 释放容器服务ACK Serverless Pro集群。

1.1 前往容器服务管理控制台,在集群列表页面,找到您已创建的ACK Serverless Pro集群,在右侧操作列下选择更多>删除

1.2 在删除集群对话框中,选中同时删除集群下的ALB资源同时删除集群下的PrivateZone资源我已知晓以上信息并确认删除集群,然后单击确定

说明:等待大约3~5分钟,ACK Serverless Pro集群即可删除成功。

  1. 释放微服务引擎MSE网关

2.1 前往MSE管理控制台

2.2 在左侧导航栏,选择云原生网关>网关列表

2.2 在网关列表页面,在页面顶部切换到网关所在地域华北2(北京),找到您的微服务引擎MSE网关资源,在右侧的操作列下单击 图标,然后单击释放实例

说明:如果您无法通过实验室页面无法切换到地域华北2(北京),你可以使用本机浏览器访问https://mse.console.aliyun.com/#/microgw,然后切换地域并释放微服务引擎MSE网关实例。

2.3 在释放面板中,选中是否同时删除网关创建时代购的SLB实例,然后单击确定,微服务引擎MSE网关删除完成。

实验地址:https://developer.aliyun.com/adc/scenario/de33e7d3065949f3b81db292b2dca5ea

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
人工智能 搜索推荐
AIGC工具——Stable Diffusion
【1月更文挑战第11天】AIGC工具——Stable Diffusion
364 2
AIGC工具——Stable Diffusion
|
3月前
|
前端开发 Linux PyTorch
Stable Diffusion 本地安装 | AIGC
今天要介绍Stable Diffusion webUI则第三方通过Gradio搭建的Stable Diffusion的web前端,功能丰富,而且所有功能都是开源的。 【1月更文挑战第7天】
305 0
|
3月前
|
人工智能 PyTorch 算法框架/工具
AI 容器镜像部署 Stable Diffusion
本文将基于阿里云 AMD 服务器和龙蜥 AI 容器服务,快速搭建出个人版文生图服务
|
10月前
|
存储 物联网 Serverless
玩转AIGC,基于函数计算一键部署 Stable Diffusion
玩转AIGC,基于函数计算一键部署 Stable Diffusion
835 0
|
数据可视化 物联网 PyTorch
Stable Diffusion模型魔搭最佳实践:训一只你的萌柯基
Stable Diffusion模型魔搭最佳实践:训一只你的萌柯基
|
2月前
|
人工智能 运维 Serverless
Serverless 应用引擎产品使用合集之如何安装stable diffusion
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
人工智能 运维 Serverless
Serverless 应用引擎产品使用合集之如何安装Stable Diffusion
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
缓存 运维 关系型数据库
Serverless 应用引擎产品使用合集之在部署Stable Diffusion应用时,无法生成图像,是什么导致的
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
运维 监控 Serverless
Serverless 应用引擎产品使用合集之如何在FC3.0部署Stable Diffusion
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
存储 运维 Kubernetes
Serverless 应用引擎产品使用合集之部署Stable Diffusion启动失败一般是什么导致的
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。