Kubernetes详解(四十六)——statefulset控制器实战

今天继续给大家介绍Linux运维相关知识,本文主要内容是statefulset控制器实战。

一、NFS配置

在前文Kubernetes详解(四十五)——statefulset控制器原理中,我们介绍了StatefulSet控制器的相关知识,今天我们来进行StatefulSet控制器的实战。
在进行实战前,我们首先配置好NFS服务,和Kubernetes集群的PV,有关NFS服务的配置可以参考文章NFS配置实战,有关Kubernetes的NFS配置PV可以参考文章Kubernetes详解(三十八)——NFS对PVC和PV使用实战
最终,我们配置的结果如下所示:
在这里插入图片描述

二、StatefulSet资源清单配置

首先,我们先配置StatefulSet控制器的资源清单。创建statefulset.yaml文件,并向文件中写入如下内容:

apiVersion: v1
kind: Service
metadata:
  name: headless-svc
  labels:
    employ: statefulset
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    pod: statefulset
----
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: statefulset-exp
spec:
  serviceName: headless-svc
  replicas: 3
  selector:
    matchLabels:
      pod: statefulset
  template:
    metadata:
      labels:
        pod: statefulset
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        volumeMounts:
        - name: volume-exp
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: volume-exp
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 1Gi

在上述资源清单中,我们创建了一个Service和一个StatefulSet控制器。在Service中,我们的ClusterIP为Node,即表示一个Headless Service;在StatefulSet控制器中,我们声明了该控制器下的Pod模板,以及PVC。
配置完成后的Service资源清单如下所示:
在这里插入图片描述
StatefulSet资源清单如下所示:
在这里插入图片描述

三、StatefulSet创建

接下来,我们就可以创建StatefulSet控制器了,执行命令:

kubectl apply -f statefulset.yaml

创建资源清单中配置的Headless Service和StatefulSet,该命令执行结果如下所示:
在这里插入图片描述
创建后,我们查看Kubernetes集群中的Pod,结果如下:
在这里插入图片描述
从上图中可以看出,我们的StatefulSet控制器与Deployment、ReplicaSet等控制器的区别在于,该控制器所控制的Pod是有顺序的。
PV的挂载情况如下:
在这里插入图片描述
PVC的信息如下:
在这里插入图片描述

四、效果展示

之后,我们尝试删除该StatefulSet控制器,执行命令:

kubectl delete -f statefulset.yaml

在执行上述创建命令时,如果我们同时打开一个终端,执行命令:

kubectl get pods -w

以便动态的查看Pod的情况,结果如下:
在这里插入图片描述
从上图中可以看出,我们的StatefulSet控制器在删除时,也是按照顺序删除的。
之后,我们再次创建该StatefulSet控制器,删除其中的Pod。并查看PV和PVC的相关信息,结果如下所示:
在这里插入图片描述
从上图中可以看出,当我们Pod重建后,挂载的PV依旧是原来的PV卷。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124486624