当前位置: 首页 > news >正文

k8s statefulSet 学习笔记

文章目录

  • 缩写: sts
  • web-sts.yaml
  • 创建sts
  • 扩缩容
  • 金丝雀发布
  • OnDelete 删除时更新

缩写: sts

通过 kubectl api-resources 可以查到:

NAMESHORTNAMESAPIVERSIONNAMESPACEDKIND
statefulsetsstsapps/v1trueStatefulSet

web-sts.yaml

apiVersion: v1
kind: Service
metadata:name: nginxlabels:app: nginx
spec:ports:- port: 80name: web-sts-svcclusterIP: Noneselector:app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:name: web
spec:serviceName:  "nginx"replicas: 2updateStrategy:rollingUpdate:partition: 0type: RollingUpdateselector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.7.9ports:- containerPort: 80name: web

创建sts

kubectl create -f web-sts.yaml

在这里插入图片描述

扩缩容

扩容:kubectl scale sts web --replicas=5

在这里插入图片描述

缩容:kubectl scale sts web --replicas=3

在这里插入图片描述

金丝雀发布

更新逻辑:
金丝雀发布会将大于等于partition的pod更新为最新设置的镜像。小于partition的pod则保留不动。
这样的更新方式就可以让新旧并存,防止新镜像有问题而导致整个服务不可用。

  1. 首先创建一个带有5个pod的sts

kb describe sts web 查看sts的状态信息, 成功创建了5个pod
在这里插入图片描述
每个pod的镜像信息如下:
在这里插入图片描述

  1. 修改sts的更新策略

kb edit sts web, 找到partition,把它从0改为2。
在这里插入图片描述

  1. 修改镜像,开始更新。

kb edit sts web,修改image。保存退出。
在这里插入图片描述

  1. 查看更新结果。

kb describe sts web,删除了pod2,3,4。并创建了新的pod。
在这里插入图片描述

再次查看更新后的镜像
在这里插入图片描述

OnDelete 删除时更新

设置更新策略为OnDelete之后,pod被删除后重建时就会更新为最新的的镜像。
这样可以精确指定要更新的pod

  1. 创建带有两个pod的sts
    在这里插入图片描述
    在这里插入图片描述

  2. kubectl edit sts web 修改更新策略为OnDelete;edit命令是运行时修改,也可以在yaml提前改好。
    在这里插入图片描述

  3. kubectl edit sts web 修改镜像为1.9.1,保存退出。
    在这里插入图片描述

  4. 再次检查pod的镜像信息,这个时候镜像还是老的,没有变化。
    在这里插入图片描述

  5. kb delete po web-0 删除pod web-0,并再检查新创建的pod-0的镜像信息。可以看到新创建的pod镜像是1.9.1
    在这里插入图片描述

http://www.lryc.cn/news/209189.html

相关文章:

  • gitlab 通过变量连接自建K8S
  • LuatOS-SOC接口文档(air780E)--mcu - 封装mcu一些特殊操作
  • 第14期 | GPTSecurity周报
  • 【数据结构】优先级队列
  • c语言宏相关高级用法
  • 新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP
  • 前端开发---在vue项目中使用openLayers
  • C语言之结构体和共用体详解
  • iOS插件
  • Maven第四章:配置文件详解
  • 计算机网络基础一
  • 搜维尔科技:Touch触觉式力反馈设备与Touch X力反馈设备对比分析
  • SAP保持系统长时间在线
  • 威联通NAS进阶玩法之使用Docker搭建个人博客教程
  • 模型对象CSS2DObject始终在画布的左上角(问题解决)
  • LabVIEW开发基于图像处理的车牌检测系统
  • Data Analysis With Python
  • 【Selenium】提高测试爬虫效率:Selenium与多线程的完美结合
  • ElCLib类解析
  • 栈、队列、矩阵的总结
  • PCL 半径滤波剔除噪点
  • Android SurfaceFlinger做Layer合成时,如何与HAL层进行交互
  • 华为eNSP配置专题-策略路由的配置
  • JAVA实现智能停车场管理系统 开源
  • 深入理解Docker之:存储卷相关概念详解和分析
  • Node.js的基本概念node -v 和npm -v 这两个命令的作用
  • mysql bin_log日志恢复数据
  • C++系列之list的模拟实现
  • 什么情况下你会使用AI工具(chatgpt、bard)?
  • 【go】两数求和