Kubernetes 1.20.5实验记录--StatefulSet控制器

Kubernetes 1.20.5实验记录–StatefulSet控制器

1、配置NFS服务器:

2、Worker节点安装nfs-utils:

yum -y install nfs-utils

在这里插入图片描述

3、创建PV:

文件pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsstor
    server: 192.168.0.100

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv1
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsstor
    server: 192.168.0.100

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv2
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsstor
    server: 192.168.0.100

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv3
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsstor
    server: 192.168.0.100

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv4
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsstor
    server: 192.168.0.100

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv5
spec:
  capacity:
    storage: 1Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsstor
    server: 192.168.0.100
kubectl apply -f pv.yaml

在这里插入图片描述

4、查看PV状态:

kubectl get pv

在这里插入图片描述

创建6个PV,分别给6个Pod使用

5、创建StatefulSet:

文件statefulset.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    run: statefulset
  name: statefulset
spec:
  serviceName: service
  replicas: 2
  selector:
    matchLabels:
      run: statefulset
  template:
    metadata:
      labels:
        run: statefulset
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: statefulset
        image: nginx
        ports:
        - containerPort: 80
          name: port
        volumeMounts:
        - name: pvc
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: nfs
kubectl apply -f statefulset.yaml

在这里插入图片描述

6、查看StatefulSet状态:

kubectl get statefulset

在这里插入图片描述

7、查看StatefulSet详细信息:

kubectl describe statefulset statefulset

在这里插入图片描述

8、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

Pod被顺序创建,并有唯一序号标识

9、查看PVC状态:

kubectl get pvc

在这里插入图片描述

10、创建Service:

文件service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: service
  name: service
spec:
  ports:
  - port: 80
    name: service-port
  selector:
    run: statefulset
  type: ClusterIP
kubectl apply -f service.yaml

在这里插入图片描述

11、查看Service状态:

kubectl get service

在这里插入图片描述

12、创建网页文件:

在这里插入图片描述

13、测试Service:

curl 10.103.177.124

在这里插入图片描述

14、对StatefulSet进行Scale Up:

文件statefulset-scaleup.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    run: statefulset
  name: statefulset
spec:
  serviceName: service
  replicas: 6
  selector:
    matchLabels:
      run: statefulset
  template:
    metadata:
      labels:
        run: statefulset
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: statefulset
        image: nginx
        ports:
        - containerPort: 80
          name: port
        volumeMounts:
        - name: pvc
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: nfs
kubectl apply -f statefulset-scaleup.yaml

在这里插入图片描述

15、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

Pod被顺序创建,并有唯一序号标识

16、查看PVC状态:

kubectl get pvc

在这里插入图片描述

17、对StatefulSet进行Rolling Update:

文件statefulset-rollingupdate.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    run: statefulset
  name: statefulset
spec:
  serviceName: service
  replicas: 6
  selector:
    matchLabels:
      run: statefulset
  template:
    metadata:
      labels:
        run: statefulset
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: statefulset
        image: nginx:1.18
        ports:
        - containerPort: 80
          name: port
        volumeMounts:
        - name: pvc
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: nfs
kubectl apply -f statefulset-rollingupdate.yaml

在这里插入图片描述

kubectl get pod -w

在这里插入图片描述

Pod被倒序删除及创建,唯一序号保持不变

18、删除Service:

kubectl delete -f service.yaml

在这里插入图片描述

19、删除StatefulSet:

kubectl delete -f statefulset.yaml

在这里插入图片描述

20、查看PVC状态:

kubectl get pvc

在这里插入图片描述

21、删除PVC:

kubectl delete pvc pvc-statefulset-0
kubectl delete pvc pvc-statefulset-1
kubectl delete pvc pvc-statefulset-2
kubectl delete pvc pvc-statefulset-3
kubectl delete pvc pvc-statefulset-4
kubectl delete pvc pvc-statefulset-5

在这里插入图片描述

22、查看PV状态:

kubectl get pv

在这里插入图片描述

23、删除PV:

kubectl delete -f pv.yaml

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值