Kubernetes StatefulSet
【摘要】 什么是StatefulSet?
StatefulSet表示一组具有唯一持久身份标识和稳定主机名的有状态Pod,无论Pod在哪一个Node上运行,身份标识及持久化的数据其都会保留。一般用于持久化存储、固定网络标记、有序部署、有伸缩等场景。
什么是有状态应用?
有状态应用是将数据或应用程序状态持久化到关联的存储中,例如MySQL、Kafka、Zookeeper等应用场...
什么是StatefulSet?
StatefulSet表示一组具有唯一持久身份标识和稳定主机名的有状态Pod,无论Pod在哪一个Node上运行,身份标识及持久化的数据其都会保留。一般用于持久化存储、固定网络标记、有序部署、有伸缩等场景。
什么是有状态应用?
有状态应用是将数据或应用程序状态持久化到关联的存储中,例如MySQL、Kafka、Zookeeper等应用场景,需要对其进行唯一持久身份的标识及数据的永久保存到存储中。
StatefulSet操作
像Deployment一样StatefulSet管理基于相同容器规范的Pod。但唯一不同的是StatefulSet为其每个Pod维护一个标识身份,StatefulSet需要Headless Service来负责Pod的网络身份。每个Pod具有一个存储类及存储声明,无论Pod被调度到哪一个节点,相关的存储挂载将伴随Pod。在删除Pod或者Stateful时,不会删除掉关联的PersistentVolume及PersistentVolumes。
通过yaml资源定义清单创建
kubectl apply -f nginx-statefulset.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
labels: app: nginx
spec:
ports:
- port: 80
clusterIP: None
selector: app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector: matchLabels: app: nginx serviceName: "nginx"
replicas: 3
template: metadata: labels: app: nginx spec: terminationGracePeriodSeconds: 10 containers: - name: nginx image: nginx:1.16 volumeMounts: - name: www mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata: name: www spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi
查看StatefulSet列表
kubectl get statefulset
查看StatefulSet描述信息
kubectl describe statefulset
StatefulSet更新策略
通过指定 spec: updateStrategy
中定义的更新策略来确定如何处理更新。
OnDelete:
当手动删除旧的Pod时,新的Pod才会被自动被创建。
RollingUpdate:
默认的更新策略。旧的Pod自动被删除,新的Pod也自动创建。
分区
通过指定 .spec.updateStrategy.rollingUpdate.partition
中定义的来对 RollingUpdate 更新策略进行分区,如果指定了分区,则当 StatefulSet 的 .spec.template 更新时,具有大于或等于分区序数的所有 Pod 将被更新。具有小于分区的序数的所有 Pod 将不会被更新,即使删除它们也将被重新创建。
如果 StatefulSet 的 .spec.updateStrategy.rollingUpdate.partition 大于其 .spec.replicas,则其 .spec.template 的更新将不会传播到 Pod。一般情况下不需要使用分区,在金丝雀、预发布等场景下是比较有用的。
文章来源: blog.csdn.net,作者:叶康铭,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/m0_38030719/article/details/103976739
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)