创建 StatefulSet
适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
本文介绍如何创建、更新和删除 StatefulSet,这些 StatefulSet 用于在 Azure Arc 启用的 AKS 中的 AKS 部署中维护超出 Pod 生命周期的应用程序的状态。
StatefulSet 概述
StatefulSet:维护超出单个 Pod 生命周期的应用程序的状态。 与部署一样,StatefulSet 创建并管理至少一个具有唯一、持久标识和稳定主机名的相同 Pod。 StatefulSet 中的副本使用顺序方法来进行部署、缩放和升级。
StatefulSet 适合需要稳定且唯一的标识符、持久存储、有序部署和缩放的应用程序。 这类应用的例子包括 MySQL、MongoDB、Kafka 和 Cassandra。 无状态应用程序(如 Apache 和 Tomcat)不关心它们正在使用的网络,也不需要持久存储。
StatefulSet 的主要组件是永久性卷预配程序以及无外设服务。 有关详细信息,请参阅 StatefulSet。
如何创建 StatefulSet
使用 kubectl create
或 kubectl apply
命令创建 StatefulSet。 例如:
kubectl create –f statefulset.yaml
在同一清单 YAML 文件中,也可以创建 StatefulSet 使用的无外设服务。
若要查看为 StatefulSet 创建的组件,请运行以下命令:
kubectl get statefulset
如果要查看永久性卷,请运行 kubectl get pv
。 若要查看永久性卷声明,请运行 kubectl get pvc
。
更新 StatefulSet
若要更新 StatefulSet,请编辑清单文件,并运行创建 StatefulSet 时使用的相同命令: kubectl apply –f statefulset.yaml
。
可以使用 OnDelete 更新或 滚动 更新作为更新策略:
- 使用 OnDelete 更新时,在应用清单时不会替换 Pod,但必须在创建新版本之前手动删除现有的 StatefulSet Pod。
- 在滚动更新中,在应用清单时,将删除 StatefulSet Pod,然后按倒序替换这些 Pod。
删除 StatefulSet
使用 kubectl delete
命令删除 StatefulSet 并单独删除无外设服务。 若要删除 StatefulSet,请运行以下命令:
kubectl delete statefulset <statefulset_NAME>
然后,若要删除无外设服务,请运行以下命令:
kubectl delete service <svc_NAME>
若要删除永久性卷和永久性卷声明,请分别使用 kubectl delete pv
和 kubectl delete pvc
命令。 为防止数据丢失,在删除 StatefulSet 时,不会删除永久性卷和永久性卷声明。
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈