StatefulSets
目录
理解 StatefulSets创建 StatefulSets使用 CLI 创建 StatefulSet前提条件YAML 文件示例通过 YAML 创建 StatefulSet使用 Web 控制台创建 StatefulSet前提条件操作步骤 - 配置基本信息操作步骤 - 配置 Pod操作步骤 - 配置容器操作步骤 - 创建健康检查管理 StatefulSets使用 CLI 管理 StatefulSet查看 StatefulSet扩缩容 StatefulSet更新 StatefulSet(滚动更新)删除 StatefulSet使用 Web 控制台管理 StatefulSet查看 StatefulSet更新 StatefulSet删除 StatefulSet理解 StatefulSets
请参考 Kubernetes 官方文档:StatefulSets
StatefulSet 是 Kubernetes 的一种工作负载 API 对象,旨在通过以下方式管理有状态应用:
- 稳定的网络身份:DNS 主机名格式为
<statefulset-name>-<ordinal>.<service-name>.ns.svc.cluster.local。 - 稳定的持久存储:通过
volumeClaimTemplates实现。 - 有序部署/扩缩容:Pod 按顺序创建/删除:Pod-0 → Pod-1 → Pod-N。
- 有序滚动更新:Pod 按逆序号更新:Pod-N → Pod-0。
在分布式系统中,可以部署多个 StatefulSets 作为独立组件来提供专门的有状态服务(例如 Kafka brokers、MongoDB shards)。
创建 StatefulSets
使用 CLI 创建 StatefulSet
前提条件
- 确保已配置好
kubectl并连接到集群。
YAML 文件示例
通过 YAML 创建 StatefulSet
使用 Web 控制台创建 StatefulSet
前提条件
获取镜像地址。镜像来源可以是平台管理员通过工具链集成的镜像仓库,也可以是第三方平台的镜像仓库。
-
对于前者,管理员通常会将镜像仓库分配给您的项目,您可以使用其中的镜像。如果找不到所需的镜像仓库,请联系管理员进行分配。
-
对于第三方平台的镜像仓库,请确保当前集群可以直接拉取镜像。
-
如果镜像仓库需要认证,您需要配置相应的镜像拉取密钥。详情请参见 向 ServiceAccount 添加 ImagePullSecrets。
操作步骤 - 配置基本信息
-
在 Container Platform 中,左侧导航栏进入 Workloads > StatefulSets。
-
点击 Create StatefulSet。
-
选择或输入镜像,点击 Confirm。
注意:使用 Web 控制台集成的镜像仓库时,可以通过 Already Integrated 过滤镜像。Integration Project Name 例如 images (registry-projectname),其中包含该 Web 控制台中的项目名 projectname 以及镜像仓库中的项目名 containers。
在 Basic Info 部分,配置 StatefulSet 工作负载的声明式参数:
操作步骤 - 配置 Pod
Pod 部分,请参见 Deployment - 配置 Pod
操作步骤 - 配置容器
Containers 部分,请参见 Deployment - 配置容器
操作步骤 - 创建
点击 Create。
健康检查
管理 StatefulSets
使用 CLI 管理 StatefulSet
查看 StatefulSet
您可以查看 StatefulSet 以获取应用信息。
-
检查 StatefulSet 是否已创建。
-
获取 StatefulSet 详细信息。
扩缩容 StatefulSet
-
修改现有 StatefulSet 的副本数:
-
示例:
更新 StatefulSet(滚动更新)
当修改 StatefulSet 的 Pod 模板(例如更改容器镜像)时,Kubernetes 默认执行滚动更新(如果 updateStrategy 设置为 RollingUpdate,且这是默认值)。
-
先编辑 YAML 文件(如 example-statefulset.yaml)并应用更改:
-
然后监控滚动更新进度:
删除 StatefulSet
删除 StatefulSet 及其关联的 Pods:
默认情况下,删除 StatefulSet 不会删除其关联的 PersistentVolumeClaims (PVCs) 或 PersistentVolumes (PVs),以防止数据丢失。若需同时删除 PVC,请显式执行:
或者,如果您的 volumeClaimTemplates 使用了 reclaimPolicy 为 Delete 的 StorageClass,则在删除 PVC 时,PV 及其底层存储会自动被删除。
使用 Web 控制台管理 StatefulSet
查看 StatefulSet
- 在 Container Platform 中,进入 Workloads > StatefulSets。
- 找到您想查看的 StatefulSet。
- 点击 StatefulSet 名称查看 详情、拓扑、日志、事件、监控 等信息。
更新 StatefulSet
- 在 Container Platform 中,进入 Workloads > StatefulSets。
- 找到您想更新的 StatefulSet。
- 在 Actions 下拉菜单中选择 Update,进入编辑 StatefulSet 页面,可更新
Replicas、image、updateStrategy等参数。
删除 StatefulSet
- 在 Container Platform 中,进入 Workloads > StatefulSets。
- 找到您想删除的 StatefulSet。
- 在 Actions 下拉菜单中,点击操作列中的 Delete 按钮并确认。