k8s笔记 | StatefulSet 有状态

创建一个web.yaml

---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
    - port: 80
      name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  serviceName: "nginx" # 使用那个service来管理dns
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports: # 容器暴露的端口
            - containerPort: 80 # 具体暴露的端口号
              name: web #该端口配置的名字
          # volumeMounts:
          #   - name: www #指定加载那个数据券
          #     mountPath: /usr/share/nginx/html #加载到容器中的那个目录

操作步骤如下:

# 创建
kubectl create sts -f web.yaml
# 查看
kubeclt get sts,svc,po
# 查看ip信息
kubectl run -it --image busybox:1.28.4 dns-test /bin/sh
nslookup web-0.nginx

#打印信息如下
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      web-0.nginx
Address 1: 10.244.107.210 web-0.nginx.default.svc.cluster.local

# 扩容,缩容 两种方式,选择其一
kubectl scale statefulset web --replicas=5
kubectl patch statefulset web -p '{"spec":{"replicas":2}}'

# 查看描述信息
kubectl descrbe sts web

...
Events:
  Type    Reason            Age    From                    Message
  ----    ------            ----   ----                    -------
  Normal  SuccessfulCreate  28m    statefulset-controller  create Pod web-0 in StatefulSet web successful
  Normal  SuccessfulCreate  27m    statefulset-controller  create Pod web-1 in StatefulSet web successful
  Normal  SuccessfulCreate  9m13s  statefulset-controller  create Pod web-2 in StatefulSet web successful
  Normal  SuccessfulCreate  8m52s  statefulset-controller  create Pod web-3 in StatefulSet web successful
  Normal  SuccessfulCreate  8m32s  statefulset-controller  create Pod web-4 in StatefulSet web successful
  Normal  SuccessfulDelete  6m28s  statefulset-controller  delete Pod web-4 in StatefulSet web successful
  Normal  SuccessfulDelete  6m25s  statefulset-controller  delete Pod web-3 in StatefulSet web successful
  Normal  SuccessfulDelete  6m23s  statefulset-controller  delete Pod web-2 in StatefulSet web successful

镜像更新

kubectl patch sts web --type='json' -p='[{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"nginx:latest"}]'

# 这里有可能报错,那就把  "nginx:1.9.1" 改为 "nginx:1.26" 请注意到hub.docker.net去查看对应的版本

查看更新记录

# 查看所有
kubectl rollout history sts web

# 结果
statefulset.apps/web 
REVISION  CHANGE-CAUSE
1         <none>
2         <none>


# 指定查看对应的版本 
kubectl rollout history sts web --revision=2

# 结果
statefulset.apps/web with revision #2
Pod Template:
  Labels:       app=nginx
  Containers:
   nginx:
    Image:      nginx:1.9.1
    Port:       80/TCP
    Host Port:  0/TCP
    Environment:        <none>
    Mounts:     <none>
  Volumes:      <none>


# 查看状态
kubectl rollout status sts web

灰度发布

利用滚动更新中的partition 属性,可以实现简易的灰度发布效果

简介:加入我们有5个pod,如果当partition设置为3,那么此时滚动更新是,只会更新需要>=3的pod,利用该机制,我们可以通过控制partion来决定更新那一部分的内容,确定没有问题后,在逐渐增大更新pod的数量;如果partition为0 ,那表示所有的都更新

# 修改sts配置文件
kubectl edit sts web

# 修改partition:3  和 nignx:latest 
# 保存退出,通过kubectl describe po web-4  和 web-0 就能看到效果

StatefulSet的删除

# 练级删除 会删除sts和pod

kubectl delete sts web

# 非联级删除
kubectl delete sts web --cascade=false

# 删除services
kubectl delete svc nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/577683.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RGB灯珠的控制-单片机通用模板

RGB灯珠的控制-单片机通用模板 一、RGB控制的原理二、RGB.c的实现三、RGB.h的实现四、color色彩空间变换以及控制渐变一、RGB控制的原理 ①通过IO发送脉冲识别0/1编码,组合24Bit的RGB数据,从而控制RGB;②每个RGB灯珠通过DIN、DOU进行级联起来;③通过HSV色彩转换成RGB从而控…

BUUCTF--web(2)

1、[HCTF 2018]admin1 打开题目后发现有注册和登录两个页面&#xff0c;因为题目提示admin&#xff0c;尝试用admin进行爆破 爆破得到密码为123 登录得到flag 2、[护网杯 2018]easy_tornado1 打开题目后有三个文件&#xff0c;分别打开查看 在url地址栏中发现包含两个参数&a…

[图解]领域驱动设计伪创新-为什么互联网是重灾区-01

0 00:00:00,840 --> 00:00:03,270 今天我们来说一下 1 00:00:03,650 --> 00:00:06,255 领域驱动设计伪创新 2 00:00:06,255 --> 00:00:08,860 为什么互联网是重灾区 3 00:00:09,500 --> 00:00:12,610 这个我们分几个视频来讲 4 00:00:15,620 --> 00:00:17,5…

FIB和RIB基础

1.思考以下的topo从数据层面和控制层面分别是如何通信的 &#xff08;1&#xff09;数据层面&#xff1b;数据包从PC1经过AR1 AR2最后到达PC2&#xff0c;这就是数据层面的通信。 &#xff08;2&#xff09;控制层面&#xff1a;PC2所在的网段192.168.2.0/24是经过AR2传递给AR…

TCN-LSTM时间卷积网络长短期记忆网络多输入多输出回归预测

文章目录 效果一览文章概述 订阅专栏只能获取一份代码部分源码参考资料 效果一览 文章概述 TCN-LSTM时间卷积网络长短期记忆网络多输入多输出回归预测 matlab2021 订阅专栏只能获取一份代码 部分源码 %------------------------------------------------------------------…

SpringBoot模块化时遇到Could not autowire. No beans of ‘xxxService‘ type found.错误

SpringBoot模块化时遇到Could not autowire. No beans of xxxService type found.错误 一、SpringBoot模块化时遇到Could not autowire. No beans of xxxService type found.错误二、解决办法一三、解决办法二 一、SpringBoot模块化时遇到Could not autowire. No beans of ‘xx…

快手面试算法真题

按照html中的标签层数遍历节点名。 例如&#xff1a;html代码如下&#xff1a;(上面的数字表示层数) <!-- 1 --><div class"div1"><!-- 2 --><span class"span1"></span><!-- 2 --><p class"p1"><…

架构师系列- JVM(三)- 类加载

通过字节码&#xff0c;我们了解了class文件的结构 通过运行数据区&#xff0c;我们了解了jvm内部的内存划分及结构 接下来&#xff0c;让我们看看&#xff0c;字节码怎么进入jvm的内存空间&#xff0c;各自进入那个空间&#xff0c;以及怎么跑起来。 4.1 加载 4.1.1 概述 …

天线驻波比参数测试方法

驻波比也叫电压驻波比&#xff0c;是指传输线中最大电压与最小电压的比值&#xff0c;是衡量天线与馈线匹配程度的重要参数&#xff0c;影响着信号传输的质量和效率。因此&#xff0c;驻波比测试是天线测试的重要环节。那么&#xff0c;天线驻波比测试都有哪些测试方法呢&#…

[C++ QT项目实战]----C++ QT系统登陆界面设计

前言 在C QT项目开发过程中&#xff0c;设计系统登录界面可以使用QT框架来实现。以下是一个简单的系统登录界面设计示例&#xff1a; 创建登录界面UI&#xff1a;可以使用QT Designer来设计登录界面的UI&#xff0c;包括用户名输入框、密码输入框、登录按钮等。在QT Designer中…

C++ 头文件/宏冲突问题解决?如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

untiy avpro播放超过8K视频的解决方案

安转LAV Filters解码器&#xff0c;然后指定Avpro使用这个解码器播放即可 第一步 安装解码器 下载链接 第二步 AVPro设置 MediaPlayer脚本中一共两处

element 分页切换时:current-page无效 页数不会跟着一起切换

问题回溯&#xff1a;使用el-pagination组件 选择切换当前分页 页数为2 问题结果&#xff1a;el-pagination组件 当前页切换失败 一直都是 1&#xff0c;接口传参分页数据是2&#xff0c;打印当前分页也是2 解决方案1&#xff1a;使用 current-page参数 .sync 修饰符 解决方案2…

服务器数据恢复—Storwize V3700存储数据恢复案例

服务器存储数据恢复环境&#xff1a; 某品牌Storwize V3700存储&#xff0c;10块硬盘组建了2组Mdisk加入到一个存储池中&#xff0c;一共创建了1个通用卷来存放数据&#xff0c;主要数据为oracle数据库。 服务器存储故障&#xff1a; 其中一组Mdisk中两块磁盘出现故障离线&…

PDF 书签制作与调整 从可编辑、不可编辑 PDF 文档创建书签的方法

本文是对以前发表的旧文拆分&#xff0c;因为原文主题太多&#xff0c;过长&#xff0c;特另起一篇分述。 第一部分 由可编辑 PDF 文档创建书签 方法 1. Adobe Acrobat Pro autobookmark AutoBookmark 是一个可用于 Adobe Acrobat 自动生成书签的插件。 官方下载地址&…

c语言指针的应用场景

​ 1.什么是指针&#xff1f; 当我们提起指针的时候&#xff0c;可能第一反应会露出惊喜的表情 &#xff08;但是我们其实没必要那么慌&#xff0c;因为当我们随着我们学习的越来越深入就会发现&#xff0c;指针虽然看起来难&#xff0c;实际上也不怎么简单。哈哈哈开玩笑的&a…

Vitis HLS 学习笔记--Syn Report解读(1)

目录 1. 介绍 2. 示例一 2.1 HLS 代码 2.2 Report 解读 2.2.1 General Information 2.2.2 Timing Estimate 2.2.3 Performance & Resource Estimates 2.2.4 HW interfaces 2.2.4.1 硬件接口报告 2.2.4.2 导出至 Vivado 中的 IP 2.2.4.3 Port-Level Protocols 端…

如何安全进行速卖通自养号测评操作?

对于新加入的卖家而言&#xff0c;进行销量测评显得尤为关键。速卖通平台上的新店往往难以获得活动的扶持&#xff0c;且初始流量相当有限。因此&#xff0c;开店的首要任务便是积极展开测评工作&#xff0c;努力积累初始的评论和销售记录。测评的益处颇为显著&#xff0c;它不…

【Redis 开发】Redisson

Redisson RedissonRedisson分布式锁Redisson可重入锁Redission解决超时释放的问题Redission解决锁的判断一次性问题Redission分布式锁主从一致性问题 Redisson Redisson是一个在Redis的基础上实现的java驻内存数据网格&#xff0c;就是提供了一系列的分布式的java对象 官方地址…

嵌入式学习Day19

输入一个数字&#xff0c;实现数字的逆置&#xff0c;不使用字符串截取的方式 代码&#xff1a; #&#xff01;/bin/bash echo number reverse read -p "please number:" num t0 while [ $num -ne 0 ] dot$((t*10num%10))((num/10)) done echo $t运行结果&#xff…
最新文章