kubernetes实践之四十二:StatefulSet
                                            
                                                
            一: 前言
1.使用StatefulSet的场景
a.稳定、唯一的网络标识
b.稳定、持久的存储
c.按照顺序、优雅的部署和扩容
d.按照顺序、优雅的删除和终止
e.按照顺序、自动滚动更新
2.StatefulSet的限制
a.在Kubernetes 1.9版本之前是beta版本,在Kubernetes 1.5版本之前是不提供的。
b.Pod存储由PersistentVolume(storage类或者管理员预先创建)提供。
c.删除或者缩容StatefulSet不会删除与StatefulSet关联的数据卷,这样能够保证数据的安全性。
d.当前的StatefulSets需要一个Headless服务来为Pod提供网络标识,此Headless服务需要通过手工创建。
二:存储供应模式
1.静态资源供应模式,通过PV和PVC完成绑定。

2.动态资源供应模式,通过StorageClass和PVC完成资源动态绑定

三: StatefulSet Nginx 应用实例
1. 创建三个pv (name分别为glusterfs-nginx-0,glusterfs-nginx-1,glusterfs-nginx-2)
						
2.创建三个pvc (name分别为glusterfs-nginx-0,glusterfs-nginx-1,glusterfs-nginx-2)
						3.创建Headless服务
						4.创建StatefulSet
						四:备注
1.StatfuleSet Pod拥有一个唯一的身份标识,它由顺序、稳定的网络标识和稳定的存储所组成。此身份标识一直跟随着Pod,不过它被调度到那个Node上。
2.对于拥有N个副本集的StatefulSet,在StatefulSet中的每一个Pod都会被指派一个整型的序数,此序数在0和N之间,在整个集合中是唯一的。
3.在StatefulSet中,每一个Pod的主机名称都由StatefulSet的名称和序数所组成。Pod的主机名称的格式:$(statefulset name)-$(ordinal)。如果创建了三个Pod,这他们的主机名称为web-0,web-1,web-2。StatefulSet能够使用Headless服务来控制Pod的域。Service管理的域的格式为:$(service name).$(namespace).svc.cluster.local,cluster.local是集群域。对于每一个被创建的Pod,它将得到一个DNS子域,格式为: $(podname).$(governing service domain),这里的管理服务在StatefulSet中,通过serviceName设置。
当前文章:kubernetes实践之四十二:StatefulSet
URL标题:http://www.scyingshan.cn/article/jephhg.html
                                            
                                        1.使用StatefulSet的场景
a.稳定、唯一的网络标识
b.稳定、持久的存储
c.按照顺序、优雅的部署和扩容
d.按照顺序、优雅的删除和终止
e.按照顺序、自动滚动更新
2.StatefulSet的限制
a.在Kubernetes 1.9版本之前是beta版本,在Kubernetes 1.5版本之前是不提供的。
b.Pod存储由PersistentVolume(storage类或者管理员预先创建)提供。
c.删除或者缩容StatefulSet不会删除与StatefulSet关联的数据卷,这样能够保证数据的安全性。
d.当前的StatefulSets需要一个Headless服务来为Pod提供网络标识,此Headless服务需要通过手工创建。
二:存储供应模式
1.静态资源供应模式,通过PV和PVC完成绑定。

2.动态资源供应模式,通过StorageClass和PVC完成资源动态绑定

三: StatefulSet Nginx 应用实例
1. 创建三个pv (name分别为glusterfs-nginx-0,glusterfs-nginx-1,glusterfs-nginx-2)
点击(此处)折叠或打开
成都创新互联公司联系电话:028-86922220,为您提供成都网站建设网页设计及定制高端网站建设服务,成都创新互联公司网页制作领域十载,包括成都被动防护网等多个领域拥有多年的网站营销经验,选择成都创新互联公司,为网站锦上添花。
- 
				apiVersion: v1
 
- 
				kind: PersistentVolume
 
- 
				metadata:
 
- 
				  name: glusterfs-nginx-0
 
- 
				  namespace: default
 
- 
				spec:
 
- 
				  capacity:
 
- 
				    storage: 1Gi
 
- 
				  accessModes:
 
- 
				    - ReadWriteOnce
 
- 
				  glusterfs:
 
- 
				    endpoints: "glusterfs-cluster"
 
- 
				    path: "k8s-volume"
 
- readOnly: false
2.创建三个pvc (name分别为glusterfs-nginx-0,glusterfs-nginx-1,glusterfs-nginx-2)
点击(此处)折叠或打开
- 
				kind: PersistentVolumeClaim
 
- 
				apiVersion: v1
 
- 
				metadata:
 
- 
				  name: glusterfs-nginx-0
 
- 
				  namespace: default
 
- 
				spec:
 
- 
				  accessModes:
 
- 
				    - ReadWriteOnce
 
- 
				  resources:
 
- 
				    requests:
 
- storage: 1Gi
点击(此处)折叠或打开
- 
				apiVersion: v1
 
- 
				kind: Service
 
- 
				metadata:
 
- 
				     name: nginx
 
- 
				     labels:
 
- 
				        name: nginx
 
- 
				spec:
 
- 
				   ports:
 
- 
				   - port: 80
 
- 
				     targetPort: 80
 
- 
				   clusterIP: None
 
- 
				   selector:
 
- role: mongo
点击(此处)折叠或打开
- 
				apiVersion: apps/v1beta1
 
- 
				kind: StatefulSet
 
- 
				metadata:
 
- 
				     name: nginx
 
- 
				spec:
 
- 
				   serviceName: "nginx"
 
- 
				   replicas: 3
 
- 
				   template:
 
- 
				      metadata:
 
- 
				           labels:
 
- 
				              role: nginx
 
- 
				      spec:
 
- 
				         terminationGracePeriodSeconds: 10
 
- 
				         containers:
 
- 
				         - name: nginx
 
- 
				           image: nginx
 
- 
				           ports:
 
- 
				           - containerPort: 80
 
- 
				           volumeMounts:
 
- 
				           - name: glusterfs
 
- 
				             mountPath: /usr/share/nginx/html
 
- 
				   volumeClaimTemplates:
 
- 
				   - metadata:
 
- 
				        name: glusterfs
 
- 
				     spec:
 
- 
				      accessModes: ["ReadWriteOnce" ]
 
- 
				      resources:
 
- 
				        requests:
 
- storage: 1Gi
1.StatfuleSet Pod拥有一个唯一的身份标识,它由顺序、稳定的网络标识和稳定的存储所组成。此身份标识一直跟随着Pod,不过它被调度到那个Node上。
2.对于拥有N个副本集的StatefulSet,在StatefulSet中的每一个Pod都会被指派一个整型的序数,此序数在0和N之间,在整个集合中是唯一的。
3.在StatefulSet中,每一个Pod的主机名称都由StatefulSet的名称和序数所组成。Pod的主机名称的格式:$(statefulset name)-$(ordinal)。如果创建了三个Pod,这他们的主机名称为web-0,web-1,web-2。StatefulSet能够使用Headless服务来控制Pod的域。Service管理的域的格式为:$(service name).$(namespace).svc.cluster.local,cluster.local是集群域。对于每一个被创建的Pod,它将得到一个DNS子域,格式为: $(podname).$(governing service domain),这里的管理服务在StatefulSet中,通过serviceName设置。
当前文章:kubernetes实践之四十二:StatefulSet
URL标题:http://www.scyingshan.cn/article/jephhg.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 