创建 StatefulSet

StatefulSet 是 Kubernetes 中的一种控制器,旨在管理有状态应用程序,通过协调具有稳定网络标识和持久存储的 Pod 实例。在单一的应用架构中,您可以作为离散组件部署多个 StatefulSet,以提供专门的服务,同时保持有序的部署、扩展和滚动更新。

前提条件

获取镜像地址。镜像的来源可以是平台管理员通过工具链集成的镜像仓库,也可以是第三方平台的镜像仓库。

  • 对于前者,管理员通常会将镜像仓库分配给您的项目,您可以使用其中的镜像。如果找不到所需的镜像仓库,请联系管理员进行分配。

  • 如果是第三方平台的镜像仓库,请确保当前集群可以直接从中拉取镜像。

操作步骤

  1. 进入 Container Platform,在左侧导航栏中,单击 Workloads > StatefulSets

  2. 单击 创建 StatefulSet

  3. 选择输入 镜像,然后单击 确认

    注意:仅在使用本平台集成的镜像仓库中的镜像时,您可以通过选择的方式筛选镜像。例如,集成项目名称如 containers(docker-registry-projectname) 中包括本平台的项目名称 projectname 和镜像仓库中的项目名称 containers

配置基本信息

基本信息 部分,配置声明性参数以进行 Deployment 工作负载:

参数说明
实例数定义 Deployment 中期望的 Pod 副本数量(默认为 1)。根据工作负载需求进行调整。请根据实际业务请求量进行设置。
更新策略控制 StatefulSet 滚动更新中的分阶段更新:
1. 分区值
  • 指定 Pod 更新的序号阈值。
2. 行为
  • 序号 ≥ 分区值的 Pods 将立即更新。
  • 序号 < 分区值的 Pods 保留先前模板。
3. 无效情况
  • 如果分区值 > 副本数量,将视为 0。
示例
  • 实例数=5(Pods: web-0 ~ web-4)
  • 分区=3 → 仅更新 web-3 和 web-4。
卷声明模板volumeClaimTemplates 是 StatefulSets 的一个关键特性,支持 动态按 Pod 持久存储的供给。StatefulSet 中的每个 Pod 副本会自动根据预定义模板获得其专用的持久卷声明 (PVC)。
1. 动态 PVC 创建:为每个 Pod 自动创建唯一 PVC:
  • 命名模式:<statefulset-name>-<claim-template-name>-<pod-ordinal>
  • 示例:web-data-0web-data-1
2. 访问模式:支持所有 Kubernetes 访问模式:
  • ReadWriteOnce (RWO):单节点读/写
  • ReadOnlyMany (ROX):多节点读
  • ReadWriteMany (RWX):多节点读/写
3. 存储类:通过 storageClassName 指定存储后端:
  • 如果未指定,则使用集群的默认 StorageClass
  • 支持云/本地存储类型 (SSD、HDD 等)
容量:通过 resources.requests.storage 配置容量:
  • 示例:100Gi
  • 支持动态卷扩展(如果启用)

配置 Pod

Pod 部分,请参考 创建部署 - 配置 Pod

配置容器

容器 部分,请参考 创建部署 - 配置容器

创建

单击 创建