StatefulSet 主要用于管理有状态的应用,创建的 Pod 拥有根据规范创建的持久型标识符。Pod 迁移或销毁重启后,标识符仍会保留。 在需要持久化存储时,您可以通过标识符对存储卷进行一一对应。如果应用程序不需要持久的标识符,建议您使用 Deployment 部署应用程序。
latest
时,使用 Always 策略,否则使用 IfNotPresent 策略。apiVersion: v1
kind: Service ## 创建一个 Headless Service,用于控制网络域
metadata:
name: nginx
namespace: default
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet ### 创建一个 Nginx的StatefulSet
metadata:
name: web
namespace: default
spec:
selector:
matchLabels:
app: nginx
serviceName: "nginx"
replicas: 3 # by default is 1
template:
metadata:
labels:
app: nginx
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "cbs"
resources:
requests:
storage: 10Gi
更多参数详情可查看 Kubernetes StatefulSet 官方文档。
kubectl create -f StatefulSet YAML 文件名称
例如,创建一个文件名为 web.yaml 的 StatefulSet YAML 文件,则执行以下命令:kubectl create -f web.yaml
kubectl get StatefulSet
返回类似以下信息,即表示创建成功。NAME DESIRED CURRENT AGE
test 1 1 10s
执行以下命令,查看 StatefulSet 的更新策略类型。
kubectl get ds/<daemonset-name> -o go-template='{{.spec.updateStrategy.type}}{{"\n"}}'
StatefulSet 有以下两种更新策略类型:
执行以下命令,更新 StatefulSet。
kubectl edit StatefulSet/[name]
此方法适用于简单的调试验证,不建议在生产环境中直接使用。您可以通过此方法更新任意的 StatefulSet 参数。
执行以下命令,更新指定容器的镜像。
kubectl patch statefulset <NAME> --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"<newImage>"}]'
建议保持 StatefulSet 的其他参数不变,业务更新时,仅更新容器镜像。
如果更新的 StatefulSet 是滚动更新方式的策略,可执行以下命令查看更新状态:
kubectl rollout status sts/<StatefulSet-name>
执行以下命令,删除 StatefulSet。
kubectl delete StatefulSet [NAME] --cascade=false
--cascade=false 参数表示 Kubernetes 仅删除 StatefulSet,且不删除任何 Pod。如需删除 Pod,则执行以下命令:
kubectl delete StatefulSet [NAME]
更多 StatefulSet 相关操作可查看 Kubernetes官方指引。
一、多态 1.假设实现一个动物发出的叫声方法,我们知道不同的动物,它们的叫声是...
祝顺民认为,云计算驱动了网络的变革。随着数字化进程的深入,越来越多的企业上...
大数据不再只是一个流行词,而是一个强大的行业。据预测,到2021年,平均每人每...
编程很像写作 你应该从一个能用的不完美的初稿开始,再通过两三次修改,逐个解决...
伴随着安防大数据时代的来临,安防行业原有的存储技术已经无法满足行业发展新需...
以下从我常用的一些提高生产力的小技巧说起,毕竟人生苦短。 一、自定义快捷按钮...
搬迁本地数据至OBS的方案如下: 表1 搬迁方案 搬迁方式 适用数据量 要求 耗时 费...
Zabbix5.4部署: 一、关闭防火墙、selinux并重启 sed -i s/SELINUX=enforcing/SE...
2021阿里云峰会——全链路数据服务-数据库分论坛 《一站式的云原生在线数据平台D...
您在进行 服务器租用 或者 服务器托管 之后,除非重装操作系统等特殊情况,都不需...