Statefulset
  TEZNKK3IfmPf 2023年11月14日 27 0
简介
statefulset 管理的Pod是有序的,后缀是通过-1,-2等数字拼接而成
创建statefulset资源时,必须创建service
stafulset 管理的Pod资源,删除Pod并新建,新建的Pod和删除的Pod名称一致
statefulset具有volumeclaimtemplate这个字段,是卷申请模板,会自动创建pv、pvc
statefulset创建的Pod,具备域名: pod-name.svc-name.svc-namespace.svc.cluster.local
Yam 示例
apiVersion: v1
kind: Service
metadata:
name: nginx-test
labels:
app: redis-test
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: redis-test
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: redis-test
serviceName: "nginx-test"
replicas: 2
template:
metadata:
labels:
app: redis-test
spec:
containers:
- name: nginx
image: docker.io/library/nginx
imagePullPolicy: IfNotPresent
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html/
ports:
- containerPort: 80
name: web
volumeClaimTemplates:
- metadata:
name: www
spec:
storageClassName: "nfs"
accessModes: ['ReadWriteOnce']
resources:
requests:
storage: 1Gi
updateStrategy更新策略
apiVersion: v1
kind: Service
metadata:
name: nginx-test
labels:
app: redis-test
spec:
ports:
- port: 80
name: web
selector:
app: redis-test
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: redis-test
serviceName: "nginx-test"
updateStrategy:
rollingUpdate:
maxUnavailable: 0
partition: 1 # 针对statefulset,更新序号为1的Pod
replicas: 2
template:
metadata:
labels:
app: redis-test
spec:
containers:
- name: nginx
image: docker.io/janakiramm/myapp:v1
imagePullPolicy: IfNotPresent
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html/
ports:
- containerPort: 80
name: web
volumeClaimTemplates:
- metadata:
name: www
spec:
storageClassName: "nfs"
accessModes: ['ReadWriteOnce']
resources:
requests:
storage: 1Gi
onDelete 不会自动更新,需删除
apiVersion: v1
kind: Service
metadata:
name: nginx-test
labels:
app: redis-test
spec:
ports:
- port: 80
name: web
selector:
app: redis-test
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: redis-test
serviceName: "nginx-test"
updateStrategy:
type: OnDelete
replicas: 2
template:
metadata:
labels:
app: redis-test
spec:
containers:
- name: nginx
image: docker.io/janakiramm/myapp:v2
imagePullPolicy: IfNotPresent
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html/
ports:
- containerPort: 80
name: web
volumeClaimTemplates:
- metadata:
name: www
spec:
storageClassName: "nfs"
accessModes: ['ReadWriteOnce']
resources:
requests:
storage: 1Gi
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

TEZNKK3IfmPf