StatefulSet应用部署

简介: 本场景带您体验如何使用k8s的原生命令kubectl部署一个StatefulSet应用的镜像到k8s集群中,并对该StatefulSet应用进行伸缩操作。

StatefulSet应用部署


1. 创建实验资源

开始实验之前,您需要先创建云服务器ECS和ACK集群资源。

说明:在实验资源创建过程中,ECS会安装命令行工具kubectl并连接ACK集群,方便您在后续实验中通过ECS中的Kubernetes命令行工具kubectl来管理ACK集群以及应用。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:资源创建过程需要7~10分钟。

2. 部署StatefulSet应用

本步骤指导你如何部署statefulset应用到k8s集群中,并查看statefulset应用中的Pod和PVC情况。

  1. 执行如下命令,创建statefulset.yaml文件。
vi statefulset.yaml
  1. i键进入编辑模式,将如下代码复制到文件中。

说明:storageClassName配置为alicloud-disk-ssd,表示使用的是阿里SSD类型的云盘。

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: disk-ssd
          mountPath: /data
  volumeClaimTemplates:
  - metadata:
      name: disk-ssd
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "alicloud-disk-ssd"
      resources:
        requests:
          storage: 20Gi
  1. ECS键退出编辑模式,输入:wq,然后回车保存并退出文件。
  2. 执行如下命令,部署StatefulSet应用。
kubectl create -f statefulset.yaml
  1. 执行如下命令,查看Pod按照次序部署。
kubectl get pod -w -l app=nginx

返回结果如下 ,您可查看到Pod按照次序部署

  1. 输入Ctrl+C键,停止查看。
  2. 执行如下命令,查看已部署的Pod。
kubectl get pod

返回结果如下,您可查看到有两个已部署的Pod。

  1. 执行如下命令,查看PVC
kubectl get pvc

返回结果如下 ,您可查看到有两个PVC


3. 扩容StatefulSet应用

本步骤指导你如何扩容StatefulSet应用的Pod,并查看Pod和PVC的变化情况。

  1. 执行如下命令,扩容StatefulSet应用为3个Pod
kubectl scale sts web --replicas=3
  1. 执行如下命令,查看扩容后的Pod
kubectl get pod

返回结果如下,您可查看到扩容后的StatefulSet应用有3个Pod。

  1. 执行如下命令,查看扩容后的PVC
kubectl get pvc

返回结果如下,您可查看到扩容后的StatefulSet应用有3个PVC。


4. 缩容StatefulSet应用

  1. 执行如下命令,缩减StatefulSet应用为2个Pod,并查看Pod和PVC的变化情况。。
kubectl scale sts web --replicas=2
  1. 执行如下命令,查看缩容后的Pod。
kubectl get pod

返回结果如下,你可查看到StatefulSet应用已缩减到2个Pod。

  1. 执行如下命令,查看缩容后的PVC。
kubectl get pvc

返回结果如下,您可查看到PVC和PV并没有随Pod一起缩减。


5. 再次扩容StatefulSet应用

本步骤指导你如何扩容StatefulSet应用的Pod,并查看Pod和PVC的变化情况。

  1. 执行如下命令,扩容StatefulSet应用到3个Pod
kubectl scale sts web --replicas=3
  1. 执行如下命令,查看扩容后的Pod
kubectl get pod

返回结果如下,您可查看到扩容后的StatefulSet应用有3个Pod。

  1. 执行如下命令,查看扩容后的PVC
kubectl get pvc

返回结果如下,您可查看到扩容后新创建的Pod仍会使用原来的PVC和PV。


6. 删除StatefulSet应用的Pod

本步骤指导你如何删除StatefulSet应用的Pod,并查看Pod和PVC的变化情况。

  1. 执行如下命令,查看名称为web-1的Pod所引用的PVC。
kubectl describe pod web-1 | grep ClaimName

返回结果如下,您可查看到名称为web-1的Pod所引用的PVC。

  1. 执行如下命令,删除名称为web-1的Pod。
kubectl delete pod web-1
  1. 执行如下命令,查看Pod
kubectl get pod

返回结果如下,重新创建的Pod与删除前的Pod名称一致。

  1. 执行如下命令,查看PVC。
kubectl get pvc

返回结果如下,重新创建的Pod所使用的PVC与删除前的Pod所使用的PVC一致。


实验链接:https://developer.aliyun.com/adc/scenario/e561256759444baab1f8b302fe94ed43


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 安全 Linux
Podman入门全指南:安装、配置与运行容器
Podman入门全指南:安装、配置与运行容器
11693 1
|
4天前
|
云安全 人工智能 运维
阿里云SecOps Agent,全新安全跨产品执行体验
自然语言驱动 云安全中心/WAF/CFW/ 等多款安全产品联动
1594 2
|
1天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
344 121
|
3天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
570 3
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
14天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
15天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
909 11
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
7天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
643 0
|
2天前
|
消息中间件 人工智能 Kafka
AI 时代,实时入湖正在告别 ETL:从 Kafka 到 Iceberg 的架构减法
本文围绕“零 ETL”这一趋势,讨论流数据入湖为什么需要做架构减法,并结合 Kafka × Table Bucket 的实践,分析一种将通用入湖能力前移到消息与表存储链路中的方案,如何在降低复杂度的同时,兼顾实时性、一致性、Schema 演进、CDC 语义与开放生态兼容。
189 121
|
2天前
|
人工智能 监控 前端开发
Electron 监控:让桌面 Agent 监控触手可及
一行代码实现Electron桌面端全景监控,自动还原崩溃现场、预警内存泄漏、全链路追踪、 SSE流式响应与交互埋点,让 AI 助手运行状态清晰可见,助力快速恢复稳定与流畅。
180 125