k8s-StatefulSet简单使用

StatefulSet是用来创建有状态应用,可以通过过某种方式记录这些状态,然后在 Pod 被重新创建时,能够为新 Pod 恢复这些状态
首先是需要有数据的持久化,及时Pod被重启后,也能恢复,与重启前保持一致。然后是应用创建的所有pod有依赖关系,顺序的创建、需要运行在指定的宿主机上,并且都有对应的网络标志
创建statefulset前提 先创建好StorageClasse 来动态创建pv
动态创建StorageClasse连接https://blog.csdn.net/ltgsoldier1/article/details/127283739
查看stsfulset命令

 k get sts -n sts

创建ststefulset配置文件

#测试statefulset
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
  namespace: sts
spec:
  selector:
    matchLabels:
      app: nginx #必须匹配 .spec.template.metadata.labels
  serviceName: "nginx"  #声明它属于哪个Headless Service.
  replicas: 3 #副本数
  template:
    metadata:
      labels:
        app: nginx # 必须配置 .spec.selector.matchLabels
    spec:
      terminationGracePeriodSeconds: 10 #调整优雅终止时间
      containers:
      - name: nginx
        image: nginx:1.21.1
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: nginx-pvc
          mountPath: /usr/share/nginx/html

  volumeClaimTemplates:   #可看作pvc的模板
  - metadata:
      name: nginx-pvc
    spec:
      accessModes: [ "ReadWriteOnce" ] #读写权限
      storageClassName: "csi-disk"  #存储类storageClass名
      resources:
        requests:
          storage: 1Gi

创建service

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: sts
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx

pod内通过服务名进行访问 通过dns来查找服务地址 pod删除重建 也会通过同一个服务地址访问到 数据也会被保存

# 通过服务名访问 可提供稳定网络访问地址 pod删除重建也不会改变
 #    pod名.svc名.namespace名称.svc.cluster.local
curl web-0.nginx.sts.svc.cluster.local
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值