kubernetes 入门实践-有状态的服务 StateFulSet

ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(合理的安排时间就等于节约时间 -培根)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ在这里插入图片描述
上一篇:kubernetes 入门实践-操作k8s集群

该教程将演示k8s有状态服务的核心概念和部署,如果没有部署过k8s应用,建议先看一下kubernetes 入门实践-操作k8s集群后再来看这篇文章

StatefulSets 动态存储

StatefulSets是同来管理有状态服务的k8s api
它和无状态服务Deployments的区别是

  • 稳定的、唯一的网络标识符
    • 从0-1的顺序标记pod名称的后缀,比如vue-pod-0 vue-pod-1 vue-pod-2
    • pod内部的hostname也会保持不变
  • 稳定的、持久的存储
    • 基于PVC,Pod重新调度后仍能访问到相同的持久化数据
  • 有序的、优雅的部署和缩放
    • 按照顺序依次执行,下一个pod结束之前,之前的pod都需要删除完成
  • 有序的、自动的滚动更新
    • 按照顺序一次部署,下一个pod部署之前,之前的pod必须部署完成
编写statefulset应用部署文件

test-statefulset.yaml

apiVersion: v1
kind: Service
metadata:
  name: vue-service-statefulset
  namespace: vue
  labels:
    app: vue-service-labels-statefulset
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: vue-pod-statefulset

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
  namespace: vue
spec:
  selector:
    matchLabels:
      app: vue-pod-statefulset # has to match .spec.template.metadata.labels
  serviceName: "nginx"
  replicas: 3 # by default is 1
  template:
    metadata:
      name: vue-pod-statefulset
      labels:
        app: vue-pod-statefulset # has to match .spec.selector.matchLabels
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: vue-container
        image: zhangzwmmm/cgame:vue-master-2919c3e2acd37a1d69cfd2fe1b943d03eb02ac68
        ports:
        - containerPort: 80
          name: web
应用配置文件
kubectl apply -f test-statefulset.yaml
查看部署结果

有序的pod名称

根据pod序号有序的部署服务

部署中
在这里插入图片描述
部署完成
在这里插入图片描述

缩减服务

按照序号 倒叙的进行缩减
在这里插入图片描述

扩容服务

按照序号 正序的进行增加

在这里插入图片描述

访问部署服务

查看其中一个pod的ip
##### 查看当前的pod列表
访问
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值