CKA考生注意:这些Deployment要点能助你一臂之力!

往期精彩文章 :

  • 提升CKA考试胜算:一文带你全面了解RBAC权限控制!
  • 揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
  • CKA认证必备:掌握k8s网络策略的关键要点
  • 提高CKA认证成功率,CKA真题中的节点维护全攻略!
  • 数据无忧,一学就会:掌握CKA认证必备的etcd备份与还原秘籍!
  • 提升你的云技能:深入了解CKA认证之k8s升级秘籍!
  • 揭秘CKA认证:Service四层代理的神秘面纱
  • 提升CKA认证成功率:Kubernetes Ingress七层代理全攻略!

什么是Deployment

在Kubernetes中,Deployment是一种API对象,用于定义和管理Pod的部署方式。它提供了一种声明性的方法,允许您描述应用程序的期望状态,而不必关心具体的部署细节。Deployment的主要目标是确保所定义的Pod副本数一直运行在集群中,并支持滚动更新和回滚操作。
以下是Deployment的关键特性和功能:

  1. 声明式配置: 使用Deployment,您可以通过YAML文件描述应用程序的期望状态,包括Pod的数量、所使用的镜像、端口等。
  2. 自动化的滚动更新: 当您需要更新应用程序时,可以通过修改Deployment的配置来实现。Deployment将负责逐步更新Pod,确保在整个过程中保持应用程序的可用性。
  3. 副本集管理: Deployment使用副本集(ReplicaSet)来确保指定数量的Pod实例一直运行。如果有Pod失败或被删除,Deployment会启动新的Pod来替代它们。
  4. 滚动回滚: 如果在更新中发现问题,您可以轻松地执行回滚操作,将Deployment回退到之前的版本,从而恢复到稳定状态。
  5. 自动修复: Deployment会自动监测Pod的运行状况,并在出现故障时尝试自动修复。如果Pod失败,Deployment将启动新的Pod,以确保所需数量的副本一直在运行。

Deployment基本使用

创建Deployment

创建Deployment资源有两种方式,一种是书写资源清单方式,一种是通过kubectl命令行的方式创建。下面的 yaml 文件定义了一个 Deployment,该 Deployment 将创建一个有 3 个 nginx Pod 副本的 ReplicaSet(副本集):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

在这个例子中:

  • 将创建一个名为 nginx-deployment 的 Deployment(部署),名称由.metadata.name字段指定
  • 该 Deployment 将创建 3 个 Pod 副本,副本数量由 .spec.replicas 字段指定
  • .spec.selector 字段指定了 Deployment 如何找到由它管理的 Pod。此案例中,我们使用了 Pod template 中定义的一个标签(app: nginx)。对于极少数的情况,这个字段也可以定义更加复杂的规则
  • .template 字段包含了如下字段:
    • .template.metadata.labels 字段,指定了 Pod 的标签(app: nginx)
    • .template.spec.containers[].image 字段,表明该 Pod 运行一个容器 nginx:1.7.9
    • .template.spec.containers[].name 字段,表明该容器的名字是 nginx执行命令以创建 Deployment执行命令以创建 Deployment

执行命令以创建 Deployment

kubectl apply -f nginx-deployment.yaml

或者通过下面的命令创建

kubectl create deploy  nginx-deployment --image=nginx:1.7.9 --port=80 --replicas=3

创建成功,可以通过下面的命令查询

controlplane $ kubectl get deploy
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           10s
controlplane $ kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-867765c857-24rdz   1/1     Running   0          54s
nginx-deployment-867765c857-6r86m   1/1     Running   0          54s
nginx-deployment-867765c857-xj7c5   1/1     Running   0          54s

Deploy扩容

通过修改 Deployment 的 spec.replicas 字段来指定期望的副本数。例如,现在需要把上述的nginx-deployment的副本数修改5。可以通过kubect edit deploy nginx-deployment进行修改。

spec.replicas从原来的3修改成5。保存退出编辑。然后通过如下命令查看,nginx-deployment就成功的从3个副本数变成了5个。

controlplane $ kubectl get deployments.apps 
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   5/5     5            5           5m17s
controlplane $ kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-867765c857-24rdz   1/1     Running   0          6m13s
nginx-deployment-867765c857-6r86m   1/1     Running   0          6m13s
nginx-deployment-867765c857-vfr55   1/1     Running   0          62s
nginx-deployment-867765c857-vrj4f   1/1     Running   0          62s
nginx-deployment-867765c857-xj7c5   1/1     Running   0          6m13s

或者也可通过下面的命令进行扩容

controlplane $ kubectl scale deployment nginx-deployment --replicas=5
deployment.apps/nginx-deployment scaled

滚动更新

滚动更新介绍

滚动更新是一种自动化程度较高的发布方式,用户体验比较平滑,是目前成熟型技术组织所采用的主流发布方式,一次滚动发布一般由若干个发布批次组成,每批的数量一般是可以配置的(可以通过发布模板定义),例如第一批1台,第二批10%,第三批50%,第四批100%。每个批次之间留观察间隔,通过手工验证或监控反馈确保没有问题再发下一批次,所以总体上滚动式发布过程是比较缓慢的。

查看控制器策略

可以通过kubectl explain deploy.spec.strategy查看控制器策略。如下图:

deploy更新方式

支持两种更新,**Recreate****RollingUpdate**

  • Recreate是重建式更新,删除一个更新一个
  • RollingUpdate 滚动更新,定义滚动更新的更新方式的,也就是pod能多几个,少几个,控制更新力度的。
RollingUpdate

通过kubectl explain deploy.spec.strategy.RollingUpdate查看滚动更新帮助文档。如下图:

**maxSurge(最大扩展的值)和maxUnavailable(最大不可用)用来控制滚动更新的策略,**取值范围分为数值和百分比

  1. 先来看百分比
    • maxUnavailable: [0%, 100%] 向下取整,比如10个副本,5%的话==0.5个,但计算按照0个
    • maxSurge: [0%, 100%] 向上取整,比如10个副本,5%的话==0.5个,但计算按照1个
  2. 再来看数值
    • maxUnavailable: [0, 副本数]
    • maxSurge: [0, 副本数]
Recreate

把deploy更新策略变成Recreate

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  strategy:
    type: Recreate
...省略...

通过以下命令更新。

kubectl apply -f deploy-demo1.yaml

#另一个窗口实时监控
kubectl get pods -w

输出的结果如下:

详细deployment的使用可以参考如下
介绍 Deployment
Deployments

CKA真题

  1. 真题截图

  1. 中文解析

切换 k8s 集群环境:kubectl config use-context k8s
Task
loadbalancer 的 deployment 管理的 Pod 的副本数扩容成 6 个。

  1. 参考文档

Deployments

  1. 解题作答
    • 切换集群环境
kubectl config use-context k8s
  • 检查现有的Pod数量
kubectl get deploy loadbalancer  -o wide
  • 扩容loadbalancer 的 deployment 管理的 Pod 的副本数扩容成 6 个
kubelct scale deploy loadbalancer  --replicas=6
  • 检查Pod的数量
kubectl get pod  

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

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

相关文章

蓝桥杯集训·每日一题2024 (前缀和)

笔记&#xff1a; 例题&#xff1a; #include<bits/stdc.h> using namespace std; const int N 5000010; char str[N]; int s[N]; int main(){int t;cin>>t;for(int a1;a<t;a){int n;cin>>n;scanf("%s",str1);for(int i1;i<n;i){s[i]s[i-1]…

重磅!交通领域顶级会议TRB会议将进行重大改革

美国交通研究委员会年会&#xff08;Transportation Research Board annual meeting,以下简称TRB会议&#xff09;是由美国交通研究委员会举办的交通领域的国际顶级会议。该会议每年举办一次&#xff0c;在华盛顿特区召开。TRB会议是交通研究领域知名度最高的学术会议之一&…

AI又进化了

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 一直想做但没做的板块&#xff0c;整理一段时间内AI领域的前沿动态&#xff08;符合大多粉丝研究领域/感兴趣方向&#xff09;&#xff0c;了解了解外面世界发展成啥样了&#xff0c;一起看看吧~ 谷歌…

跟 AI 学 StarRocks:简介

因为要支持公司的 BI 建设&#xff0c;团队引入了 StarRocks 数据库&#xff0c;此前我没有了解过此项技术&#xff0c;不过因为有架构师引入了此项技术栈&#xff0c;就顺便学习一下。 一、什么是 MPP 数据库&#xff1f; MPP 数据库指的是大规模并行处理&#xff08;Massiv…

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列&#xff08;2&#xff09;——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…

DDR5 新特性概述

主页&#xff1a; 元存储博客 文章目录 前言1. SDR 与 DDR2. DDR5 的新特点总结 前言 DDR5 带来更快的处理速度和更大的存储空间&#xff0c;为云计算、大数据等领域的发展提供了强有力的支持。 1. SDR 与 DDR single data rate&#xff0c; 1 个时钟周期做一次数据传输 do…

更改elementui的箭头图片以及位置

//更改箭头位置 .el-tree-node__content > .el-tree-node__expand-icon {position: absolute;right: 12px; }//更改箭头图片 .el-tree-node__expand-icon {transform: rotate(-90deg); } .el-tree-node__expand-icon.expanded {transform: rotate(0deg); } // 有子节点 且已…

使用QEMU搭建U-Boot+LinuxKernel+busybox+NFS嵌入式开发环境

目录 0.课程大纲1.为什么要使用QEMU学习嵌入式QEMU简介使用QEMU可以做哪些事情?当前嵌入式行业现状如何适应这种变化使用QEMU学习嵌入式有哪些好处?驱动开发技能为什么要学习Linux 2.搭建嵌入式开发基本环境2.1.安装u-boot-tools2.2.安装交叉编译工具什么是ABI和EABI 3.QEMU安…

DSI2协议之BTA行为理解

概念: DSI协议spec支持总线控制权在master和slave之间发生交换,即通过bus turn around来实现; BUS TURN AROUND: BTA 的实现是通过controller—>cdphy的turnrequest信号来实现; 关于控制器发出turnrequest给phy,phy通过lvds/trio线输出turnaround sequence如下图中…

C++基于多设计模式下的同步异步日志系统day3

C基于多设计模式下的同步&异步日志系统day3 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C基于多设计模式下的同步&异步日志系统 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&am…

C习题002:澡堂洗澡

问题 输入样例 在这里给出一组输入。例如&#xff1a; 2 5 1 3 3 2 3 3 输出样例 在这里给出相应的输出。例如&#xff1a; No代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB 代码 #include<stdio.h> int main() {int N,W,s,t,p;int arr_s[…

投影和定义投影的区别

Arcmap中关于投影的工具有四个&#xff0c;分别是定义投影、投影、投影栅格、批量投影。这四个工具既有相同之处也有不同之处&#xff0c;下面我将一一介绍。 ①定义投影&#xff1a;Arcmap中关于定义投影工具是这样描述的&#xff1a;“所有地理数据集均具有一个用于显示、测…

小白必看的Python函数讲解

定义函数 我们通过斐波那契数列来理解定义函数 >>> def fib(n): # 将斐波那契数列打印到 n ... """将斐波那契数列打印到 n""" ... a, b 0, 1 ... while a < n: ... print(a, end ) ... a, b b, …

【Linux安装软件命令及vim、gcc使用说明】

安装软件命令 Linux安装软件的命令首先要进入管理员权限 首先在终端输入sudo su切换到管理员界面 输入对应的密码&#xff0c;注意这里的密码不会显示出来&#xff0c;输完密码之后回车即可。当出现root就代表已经是管理员界面了。 如果相应退出管理员界面输入exit即可。 注…

出现这6点症状,不要拖延,不然植物神经紊乱会找到你!

植物神经紊乱&#xff0c;是一种由于自主神经系统失衡引起的疾病。自主神经系统主要负责调节人体内脏器官的功能&#xff0c;包括心脏、血管、消化系统等&#xff0c;一旦失衡将导致一系列不适症状。植物神经紊乱的主要原因包括长期的焦虑、压力、过度疲劳、情绪波动、生活节奏…

从零开始的二进制漏洞挖掘(1)路由器漏洞挖掘(去实战版)

前言 路由器的洞大部分都是栈溢出&#xff0c;如果想要了解一些相关的知识&#xff0c;可以去看我的pwn和二进制安全虚拟机Protostar靶场系列文章&#xff0c;传送门&#xff1a; https://blog.csdn.net/qq_45894840/category_12002228.html?spm1001.2014.3001.5482ghidra安…

2024全新手机软件下载应用排行、平台和最新发布网站,采用响应式织梦模板

这是一款简洁蓝色的手机软件下载应用排行、平台和最新发布网站&#xff0c;采用响应式织梦模板。 主要包括主页、APP列表页、APP详情介绍页、新闻资讯列表、新闻详情页、关于我们等模块页面。 地 址 &#xff1a; runruncode.com/php/19703.html 软件程序演示图&#xff1a;…

领域驱动设计(Domain-Driven Design DDD)——战略设计1

一、概述 随着系统的增长&#xff0c;它会越来越复杂&#xff0c;当我们无法通过分析对象来理解系统的时候&#xff0c;就需要掌握一些操纵和理解大模型的技术了。 最负雄心的企业欲实现一个涵盖所有业务、紧密集成的系统。因大型公司的业务模型巨大且复杂&#xff0c;很难把它…

Elasticsearch:如何创建搜索引擎

作者&#xff1a;Jessica Taylor 搜索引擎是生活中我们认为理所当然的事情之一。 每当我们寻找某些东西时&#xff0c;我们都会将一个单词或短语放入搜索引擎&#xff0c;就像魔术一样&#xff0c;它会为我们提供一个匹配结果列表。 现在可能感觉不那么神奇了&#xff0c;因为这…

【CSS】(标准流部分)易忘知识点汇总

一、元素 块元素 常见的块元素&#xff1a; <h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>行内元素 常见的行内元素&#xff1a; <a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins&…