一: 前言1.使用StatefulSet的場(chǎng)景
a.穩(wěn)定、唯一的網(wǎng)絡(luò)標(biāo)識(shí)
b.穩(wěn)定、持久的存儲(chǔ)
c.按照順序、優(yōu)雅的部署和擴(kuò)容
d.按照順序、優(yōu)雅的刪除和終止
e.按照順序、自動(dòng)滾動(dòng)更新
2.StatefulSet的限制
a.在Kubernetes 1.9版本之前是beta版本,在Kubernetes 1.5版本之前是不提供的。
b.Pod存儲(chǔ)由PersistentVolume(storage類或者管理員預(yù)先創(chuàng)建)提供。
c.刪除或者縮容StatefulSet不會(huì)刪除與StatefulSet關(guān)聯(lián)的數(shù)據(jù)卷,這樣能夠保證數(shù)據(jù)的安全性。
d.當(dāng)前的StatefulSets需要一個(gè)Headless服務(wù)來(lái)為Pod提供網(wǎng)絡(luò)標(biāo)識(shí),此Headless服務(wù)需要通過(guò)手工創(chuàng)建。
二:存儲(chǔ)供應(yīng)模式1.靜態(tài)資源供應(yīng)模式,通過(guò)PV和PVC完成綁定。
2.動(dòng)態(tài)資源供應(yīng)模式,通過(guò)StorageClass和PVC完成資源動(dòng)態(tài)綁定
三: StatefulSet Nginx 應(yīng)用實(shí)例1. 創(chuàng)建三個(gè)pv (name分別為glusterfs-nginx-0,glusterfs-nginx-1,glusterfs-nginx-2)
-
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.創(chuàng)建三個(gè)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
3.創(chuàng)建Headless服務(wù)
-
apiVersion: v1
-
kind: Service
-
metadata:
-
name: nginx
-
labels:
-
name: nginx
-
spec:
-
ports:
-
- port: 80
-
targetPort: 80
-
clusterIP: None
-
selector:
-
role: mongo
4.創(chuàng)建StatefulSet
-
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擁有一個(gè)唯一的身份標(biāo)識(shí),它由順序、穩(wěn)定的網(wǎng)絡(luò)標(biāo)識(shí)和穩(wěn)定的存儲(chǔ)所組成。此身份標(biāo)識(shí)一直跟隨著Pod,不過(guò)它被調(diào)度到那個(gè)Node上。
2.對(duì)于擁有N個(gè)副本集的StatefulSet,在StatefulSet中的每一個(gè)Pod都會(huì)被指派一個(gè)整型的序數(shù),此序數(shù)在0和N之間,在整個(gè)集合中是唯一的。
3.在StatefulSet中,每一個(gè)Pod的主機(jī)名稱都由StatefulSet的名稱和序數(shù)所組成。Pod的主機(jī)名稱的格式:$(statefulset name)-$(ordinal)。如果創(chuàng)建了三個(gè)Pod,這他們的主機(jī)名稱為web-0,web-1,web-2。StatefulSet能夠使用Headless服務(wù)來(lái)控制Pod的域。Service管理的域的格式為:$(service name).$(namespace).svc.cluster.local,cluster.local是集群域。對(duì)于每一個(gè)被創(chuàng)建的Pod,它將得到一個(gè)DNS子域,格式為: $(podname).$(governing service domain),這里的管理服務(wù)在StatefulSet中,通過(guò)serviceName設(shè)置。
文章題目:kubernetes實(shí)踐之四十二:StatefulSet
URL網(wǎng)址:http://www.rwnh.cn/article46/jephhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站制作、用戶體驗(yàn)、網(wǎng)站建設(shè)、網(wǎng)站排名、搜索引擎優(yōu)化
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)