4. kubernetes资源——deployment无状态负载

kubernetes资源——deployment无状态负载

  • 一、deployment无状态负载
    • 1、deployment无状态负载
  • 二、创建deployment
    • 1、创建deployment
    • 2、验证副本维护
  • 三、deployment滚动更新
    • 1、创建pod
    • 2、测试滚动更新流程
      • 2.1、修改镜像版本、或者副本数
      • 2.2、执行更新
      • 2.3、查看更新过程
      • 2.4、查看更新历史
      • 2.5、版本回退
      • 2.6、暂停更新

一、deployment无状态负载

1、deployment无状态负载

一种特殊的pod

优势:
1、支持副本自动维护
2、支持滚动更新

应用场景: 频繁更新的业务

deployment创建流程:
deployment -----> RS(副本集) -----> POD

标签选择器:
标签,就是个key:value对的数据
通过标签在RS和POD间建立对应关系

二、创建deployment

1、创建deployment

apiVersion: apps/v1
kind: Deployment
metadata:name: test1-nginx
spec:replicas: 4selector:matchLabels:app: nginx								// rs标签 template:metadata:labels:app: nginx						// pod标签 spec:containers:- name: test1-nginximage: nginx:1.16imagePullPolicy: IfNotPresent
// 查看无状态负载
[root@k8s-master deployTest]# kubectl get deploy
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
test1-nginx   4/4     4            4           52s// 查看rs副本集
[root@k8s-master deployTest]# kubectl get rs 
NAME                     DESIRED   CURRENT   READY   AGE
test1-nginx-5d858b7fc5   4         4         4       101s[root@k8s-master deployTest]# kubectl get pod 
NAME                           READY   STATUS    RESTARTS   AGE
test1-nginx-5d858b7fc5-74mps   1/1     Running   0          2m43s
test1-nginx-5d858b7fc5-kg8f7   1/1     Running   0          2m43s
test1-nginx-5d858b7fc5-ldx8s   1/1     Running   0          2m43s
test1-nginx-5d858b7fc5-x76z2   1/1     Running   0          2m43s// 查看pod的标签 
[root@k8s-master deployTest]# kubectl get pod --show-labels 
NAME                           READY   STATUS    RESTARTS   AGE     LABELS
test1-nginx-5d858b7fc5-74mps   1/1     Running   0          5m28s   app=nginx,pod-template-hash=5d858b7fc5
test1-nginx-5d858b7fc5-kg8f7   1/1     Running   0          5m28s   app=nginx,pod-template-hash=5d858b7fc5
test1-nginx-5d858b7fc5-ldx8s   1/1     Running   0          5m28s   app=nginx,pod-template-hash=5d858b7fc5
test1-nginx-5d858b7fc5-x76z2   1/1     Running   0          5m28s   app=nginx,pod-template-hash=5d858b7fc5

2、验证副本维护

[root@k8s-master deployTest]# kubectl get pod 
NAME                           READY   STATUS    RESTARTS   AGE
test1-nginx-5d858b7fc5-74mps   1/1     Running   0          7m39s
test1-nginx-5d858b7fc5-kg8f7   1/1     Running   0          7m39s
test1-nginx-5d858b7fc5-ldx8s   1/1     Running   0          7m39s
test1-nginx-5d858b7fc5-x76z2   1/1     Running   0          7m39s// 删除任意pod
[root@k8s-master deployTest]# kubectl delete pod test1-nginx-5d858b7fc5-ldx8s
pod "test1-nginx-5d858b7fc5-ldx8s" deleted// 再次查看pod
[root@k8s-master deployTest]# kubectl get pod 
NAME                           READY   STATUS    RESTARTS   AGE
test1-nginx-5d858b7fc5-74mps   1/1     Running   0          7m59s
test1-nginx-5d858b7fc5-kg8f7   1/1     Running   0          7m59s
test1-nginx-5d858b7fc5-wj6g6   1/1     Running   0          5s
test1-nginx-5d858b7fc5-x76z2   1/1     Running   0          7m59s

三、deployment滚动更新

1、创建pod

apiVersion: apps/v1
kind: Deployment
metadata:name: test2-nginx
spec:replicas: 6selector:matchLabels:app: nginx2strategy:type: RollingUpdate					// 更新策略为滚动更新rollingUpdate:maxSurge: 2							// 每次更新的数量,可以是绝对数字、百分比数字maxUnavailable: 3				// 最大无效数量,可以是绝对数字、百分比数字template:metadata:labels:app: nginx2spec:containers:- name: test2-nginximage: nginx:1.16imagePullPolicy: IfNotPresent
[root@k8s-master deployTest]# kubectl get rs
NAME                     DESIRED   CURRENT   READY   AGE
test2-nginx-569d77d6cb   6         6         6       85s[root@k8s-master deployTest]# kubectl get pod 
NAME                           READY   STATUS    RESTARTS   AGE
test2-nginx-569d77d6cb-4xmpw   1/1     Running   0          88s
test2-nginx-569d77d6cb-57xpk   1/1     Running   0          88s
test2-nginx-569d77d6cb-5bs4n   1/1     Running   0          88s
test2-nginx-569d77d6cb-9nsqb   1/1     Running   0          88s
test2-nginx-569d77d6cb-qstqr   1/1     Running   0          88s
test2-nginx-569d77d6cb-tqbkn   1/1     Running   0          88s

2、测试滚动更新流程

2.1、修改镜像版本、或者副本数

2.2、执行更新

[root@k8s-master deployTest]# kubectl apply -f test2-nginx.yaml 

2.3、查看更新过程

[root@k8s-master deployTest]# kubectl get pod
NAME                           READY   STATUS              RESTARTS   AGE
test2-nginx-569d77d6cb-46tjl   0/1     Terminating         0          6m48s
test2-nginx-569d77d6cb-88qwt   0/1     Terminating         0          6m46s
test2-nginx-569d77d6cb-8s8r9   1/1     Running             0          6m48s
test2-nginx-569d77d6cb-f7pdw   1/1     Running             0          6m48s
test2-nginx-569d77d6cb-jgtcx   0/1     Terminating         0          6m48s
test2-nginx-569d77d6cb-ttm7s   0/1     Terminating         0          6m45s
test2-nginx-569d77d6cb-vh7xh   1/1     Terminating         0          6m45s
test2-nginx-57c7d85bfd-5k87b   1/1     Running             0          4s
test2-nginx-57c7d85bfd-64vdn   1/1     Running             0          4s
test2-nginx-57c7d85bfd-9h7wv   0/1     ContainerCreating   0          2s
test2-nginx-57c7d85bfd-c9bbg   0/1     ContainerCreating   0          2s
test2-nginx-57c7d85bfd-df8nx   1/1     Running             0          4s
test2-nginx-57c7d85bfd-k7db6   0/1     ContainerCreating   0          2s
test2-nginx-57c7d85bfd-q5x2f   1/1     Running             0          4s
test2-nginx-57c7d85bfd-sbbkw   1/1     Running             0          4s
test2-nginx-57c7d85bfd-t8f5z   0/1     ContainerCreating   0          1s
test2-nginx-57c7d85bfd-x58dd   0/1     ContainerCreating   0          2s
[root@k8s-master deployTest]# kubectl describe deploy test2-nginx 
Name:                   test2-nginx
Namespace:              default
CreationTimestamp:      Thu, 25 Jul 2024 16:34:04 +0800
Labels:                 <none>
Annotations:            deployment.kubernetes.io/revision: 4
Selector:               app=nginx2
Replicas:               10 desired | 10 updated | 10 total | 10 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  3 max unavailable, 2 max surge
Pod Template:Labels:  app=nginx2Containers:test2-nginx:Image:        nginx:1.18Port:         <none>Host Port:    <none>Environment:  <none>Mounts:       <none>Volumes:        <none>
Conditions:Type           Status  Reason----           ------  ------Available      True    MinimumReplicasAvailableProgressing    True    NewReplicaSetAvailable
OldReplicaSets:  test2-nginx-569d77d6cb (0/0 replicas created)
NewReplicaSet:   test2-nginx-57c7d85bfd (10/10 replicas created)
Events:Type    Reason             Age                    From                   Message----    ------             ----                   ----                   -------Normal  ScalingReplicaSet  13m                    deployment-controller  Scaled up replica set test2-nginx-569d77d6cb to 6Normal  ScalingReplicaSet  9m51s                  deployment-controller  Scaled up replica set test2-nginx-57c7d85bfd to 2Normal  ScalingReplicaSet  9m51s                  deployment-controller  Scaled down replica set test2-nginx-569d77d6cb to 3 from 6Normal  ScalingReplicaSet  9m51s                  deployment-controller  Scaled up replica set test2-nginx-57c7d85bfd to 5 from 2Normal  ScalingReplicaSet  9m49s                  deployment-controller  Scaled down replica set test2-nginx-569d77d6cb to 2 from 3Normal  ScalingReplicaSet  9m49s                  deployment-controller  Scaled up replica set test2-nginx-57c7d85bfd to 6 from 5Normal  ScalingReplicaSet  9m48s                  deployment-controller  Scaled down replica set test2-nginx-569d77d6cb to 1 from 2Normal  ScalingReplicaSet  9m48s                  deployment-controller  Scaled down replica set test2-nginx-569d77d6cb to 0 from 1Normal  ScalingReplicaSet  9m1s                   deployment-controller  Scaled up replica set test2-nginx-57c7d85bfd to 10 from 6Normal  ScalingReplicaSet  2m17s (x18 over 9m1s)  deployment-controller  (combined from similar events): Scaled up replica set test2-nginx-57c7d85bfd to 5 from 2

2.4、查看更新历史

[root@k8s-master deployTest]# kubectl rollout history deploy test2-nginx 
deployment.apps/test2-nginx 
REVISION  CHANGE-CAUSE
2         <none>
3         <none>

2.5、版本回退

[root@k8s-master deployTest]# kubectl rollout undo deployment test2-nginx --to-revision=2 
deployment.apps/test2-nginx rolled back

2.6、暂停更新

[root@k8s-master deployTest]# kubectl rollout pause deployment test2-nginx 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低代码+工作流:拔高企业效率的数字化神器

前言 传统的软件开发过程中&#xff0c;随着产品业务的不断更新迭代&#xff0c;会产生大量的重复性的工作。这些重复性的工作其实是遵循着某种特定的规则&#xff0c;假如在开发阶段我们没有做好很好的抽象&#xff0c;在后期做新业务新产品时&#xff0c;我们仍然要花费大量…

AutoMySQLBackup execution.. Backup failed Docker部署mysql 自动备份失败!!

摘要&#xff1a; Docker容器部署的mysql5.7版本遇到使用AutoMYSQLBackup备份失败了&#xff0c;反复修改automysqlbackup.conf也不起效。这里推荐一种新的办法绕开老路子直接备份。 目录 一、环境介绍 二、AutoMYSQLBackup 三、问题描述 四、解决思路 4.1第一种解决思…

Java黑色界面陪玩高端小程序源码陪练APP源码H5公众号源码电竞系统

&#x1f680;【电竞新纪元】解锁高端陪玩小程序源码 & 陪练APP秘籍&#xff0c;H5公众号全攻略&#xff01; &#x1f3ae; 开篇&#xff1a;电竞热潮下的新机遇 Hey游戏迷们&#xff01;随着电竞行业的蓬勃发展&#xff0c;你是否也想在这股浪潮中分得一杯羹&#xff1…

opencascade AIS_Manipulator源码学习

前言 AIS_Manipulator 是 OpenCASCADE 库中的一个类&#xff0c;用于在3D空间中对其他交互对象或一组对象进行局部变换。该类提供了直观的操控方式&#xff0c;使用户可以通过鼠标进行平移、缩放和旋转等操作。 详细功能 交互对象类&#xff0c;通过鼠标操控另一个交互对象…

【网络安全】构建稳固与安全的网络环境:从“微软蓝屏”事件中汲取的教训

发生什么事了&#xff1f; 近日&#xff0c;一次由微软视窗系统软件更新引发的全球性“微软蓝屏”事件&#xff0c;不仅成为科技领域的热点新闻&#xff0c;更是一次对全球IT基础设施韧性与安全性的深刻检验。这次事件&#xff0c;源于美国电脑安全技术公司“众击”提供的一个…

Layui Selcet选择框动态选择问题

前言 时隔多日我也是重新回归写作&#xff0c;高考已经完毕&#xff0c;我将继续我的文章创作&#xff0c;今天我将分享的是我在开发我自己的一个新项目所遇到的问题&#xff0c;这里预告一下我的新项目: VitaApi管理系统 这个系统可以看作是萌新源api管理系统的延续&#xff…

HarmonyOS鸿蒙应用开发-ZRouter让系统路由表变得更简单

介绍 ZRouter是基于Navigation系统路由表和Hvigor插件实现的动态路由方案。 系统路由表是API 12起开始支持的&#xff0c;可以帮助我们实现动态路由的功能&#xff0c;其目的是为了解决多个业务模块&#xff08;HAR/HSP&#xff09;之间解耦问题&#xff0c;从而实现业务的复…

Redis高可用技术之持久化

一、Redis高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是一年有多少秒可以提供正常服务&#xff08;99.9%、99.99%、99.999%等&#xff09;。但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证提供…

MySQL InnoDB事务隔离和并发控制面试题详解

1. 为什么 MySQL 使用 B+ 树作为索引而不是 B 树? MySQL 选择使用 B+ 树作为索引主要有以下几个原因: 减少 IO 次数,提高效率:B+ 树的所有数据都存储在叶子节点,非叶子节点只存储索引,树的高度较低,因此查找路径较短,减少了磁盘 IO 次数。查询效率更加稳定:由于数据仅…

Hyper-V 安装 CentOS 8.5

前言 Hyper-V安装文档:在 Windows 10 上安装 Hyper-VCentOS 系统下载:CentOS 国内镜像源 8.5.2111作者:易墨发布时间:2023.10.01原文地址:https://www.cnblogs.com/morang/p/devops-hyperv-centos-install.html使用命令安装 以管理员身份运行 PowerShell 命令: Enable-…

c++初阶知识——string类详解

目录 前言&#xff1a; 1.标准库中的string类 1.1 auto和范围for auto 范围for 1.2 string类常用接口说明 1.string类对象的常见构造 1.3 string类对象的访问及遍历操作 1.4. string类对象的修改操作 1.5 string类非成员函数 2.string类的模拟实现 2.1 经典的string…

GAMES104:05游戏引擎中的渲染系统2:渲染中的光照、材质和shader-学习笔记

文章目录 一、渲染方程及其挑战二、基础光照解决方案-简化版简化光源简化材质简化阴影 三、基于预计算的全局光照3.1挑战和计算思路傅里叶变换球谐函数&#xff08;Spherical Harmonics&#xff09; 3.2 SH Lightmap&#xff1a;预计算 GI3.3 探针 Probe&#xff1a;Light Prob…

无涯·问知财报解读,辅助更加明智的决策

财报解读就像是给公司做一次全面的体检&#xff0c;是理解公司内部运作机制和市场表现的一把钥匙&#xff0c;能够有效帮助投资者、分析师、管理层以及所有市场参与者判断一家公司的健康程度和发展潜力。 星环科技无涯问知的财经库内置了企业年报及财经类信息&#xff0c;并对…

Linux:传输层(1) -- UDP协议

1. 端口号 同一台主机的不同端口号(Port)标记了主机上不同的进程&#xff0c;如下图所示&#xff1a; 在 TCP/IP 协议中 , 用 " 源IP", "源端口号", "目的IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信 ( 可…

制作excel模板,用于管理后台批量导入船舶数据

文章目录 引言I 数据有效性:基于WPS在Excel中设置下拉框选择序列内容II 数据处理:基于easyexcel工具实现导入数据的持久化2.1 自定义枚举转换器2.2 ExcelDataConvertExceptionIII 序列格式化: 基于Sublime Text 文本编辑器进行批量字符操作引言 需求: excel数据导入模板制…

基于 HTML+ECharts 实现的大数据可视化平台模板(含源码)

构建大数据可视化平台模板&#xff1a;基于 HTML 和 ECharts 的实现 大数据的可视化对于企业决策、市场分析和业务洞察至关重要。通过直观的数据展示&#xff0c;团队可以快速理解复杂的数据模式&#xff0c;发现潜在的业务机会。本文将详细介绍如何利用 HTML 和 ECharts 实现一…

js逆向——origin/refer请求头反爬

今日受害网站&#xff1a; https://www.regulations.gov/docket/FDA-2016-D-1399/document 最终目标&#xff1a;爬取该网站中的新闻摘要 首先打开网页&#xff0c;刷新一下&#xff0c;观察都返回了哪些数据 然后我们ctrlf进行关键字搜索 进一步&#xff0c;只过滤含有docu…

Linux_实现TCP网络通信

目录 1、实现服务器的逻辑 1.1 socket 1.2 bind 1.3 listen 1.4 accept 1.5 read 1.6 write 1.7 服务器代码 2、实现客户端的逻辑 2.1 connect 2.3 客户端代码 3、实现服务器与客户端的通信 结语 前言&#xff1a; 在Linux下&#xff0c;实现传输层协议为TCP…

MySQL数据库-备份恢复

一、MySQL日志管理 1.为什么需要日志 用于排错用来做数据分析了解程序的运行情况&#xff0c;了解MySQL的性能 2.日志作用 在数据库保存数据时&#xff0c;有时候不可避免会出现数据丢失或者被破坏&#xff0c;这样情况下&#xff0c;就必须保证数据的安全性和完整性&#…

鸿蒙SDK开发能力

什么是鸿蒙SDK&#xff1a;HarmonyOS(Software Development Kit)是面向应用和服务开发的开放能力合集,本质就是工具集&#xff0c;与JDK、AndroidSDK在逻辑上有相似之处 18N&#xff1a;1指的是手机&#xff0c;8指的是车机、音箱、耳机、手表/手环、平板、大屏、PC、AR/VR&am…