当前位置:网站首页 > 编程语言 > 正文

查看k8s版本信息的命令是(k8s查看deployment的命令)



  • 操作系统:CentOSStream9 CPU - 2核 内存 - 4GB 硬盘 - 60G
  • 安装了docker及k8s(CentOS9安装docker及k8s)

通过更新 Deployment 的 PodTemplateSpec,声明 Pod 的新状态 。 新的 ReplicaSet 会被创建,Deployment 以受控速率将 Pod 从旧 ReplicaSet 迁移到新 ReplicaSet。 每个新的 ReplicaSet 都会更新 Deployment 的修订版本。

为了解析更新Deployment,先创建一个Deployment

下面是一个 Deployment 示例。其中创建了一个 ReplicaSet,负责启动三个 nginx Pod:

 
  

执行下面命令创建Deployment

 
  

执行下面命令查看Deployment

 
  

在这里插入图片描述

执行下面命令查看上线状态

 
  

在这里插入图片描述

仅当 Deployment Pod 模板(即)发生改变时,例如模板的标签或容器镜像被更新, 才会触发 Deployment 上线。其他更新(如对 Deployment 执行扩缩容的操作)不会触发上线动作。

更新 nginx Pod 以使用 nginx:1.16.1 镜像,而不是 nginx:1.14.2 镜像

 
  

或者使用下面命令

 
  

在这里, 表明 Deployment 的名称,nginx 表明需要进行更新的容器, 而 nginx:1.16.1 则表示镜像的新版本以及它的标签
在这里插入图片描述
或者,可以对 Deployment 执行 edit 操作并将 从 nginx:1.14.2 更改至 nginx:1.16.1

 
  

输出类似于:

 
  
 
  

在这里插入图片描述

Deployment的变化情况

 
  

在这里插入图片描述
ReplicaSet的变化情况
运行 kubectl get rs 以查看 Deployment 通过创建新的 ReplicaSet 并将其扩容到 3 个副本并将旧 ReplicaSet 缩容到 0 个副本完成了 Pod 的更新操作

 
  

在这里插入图片描述
下次要更新这些 Pod 时,只需再次更新 Deployment Pod 模板即可。

Deployment 可确保在更新时仅关闭一定数量的 Pod。默认情况下,它确保至少所需 Pod 的 75% 处于运行状态(最大不可用比例为 25%)。

Deployment 还确保仅所创建 Pod 数量只可能比期望 Pod 数高一点点。 默认情况下,它可确保启动的 Pod 个数比期望个数最多多出 125%(最大峰值 25%)。

例如,如果仔细查看上述 Deployment ,将看到它首先创建了一个新的 Pod,然后删除旧的 Pod, 并创建了新的 Pod。它不会杀死旧 Pod,直到有足够数量的新 Pod 已经出现。 在足够数量的旧 Pod 被杀死前并没有创建新 Pod。它确保至少 3 个 Pod 可用, 同时最多总共 4 个 Pod 可用。 当 Deployment 设置为 4 个副本时,Pod 的个数会介于 3 和 5 之间

Pod的变化情况

 
  

在这里插入图片描述

 
  

输出:(仅截取nginx-deployment部分)

 
  

根据事件可以看到,当第一次创建 Deployment 时,它创建了一个 ReplicaSet(nginx-deployment-d556bf558) 并将其直接扩容至 3 个副本。更新 Deployment 时,它创建了一个新的 ReplicaSet (nginx-deployment-7dbfbc79cf),并将其扩容为 1,等待其就绪;然后将旧 ReplicaSet 缩容到 2, 将新的 ReplicaSet 扩容到 2 以便至少有 3 个 Pod 可用且最多创建 4 个 Pod。 然后,它使用相同的滚动更新策略继续对新的 ReplicaSet 扩容并对旧的 ReplicaSet 缩容。 最后,你将有 3 个可用的副本在新的 ReplicaSet 中,旧 ReplicaSet 将缩容到 0

Deployment 控制器每次注意到新的 Deployment 时,都会创建一个 ReplicaSet 以启动所需的 Pod。 如果更新了 Deployment,则控制标签匹配 但模板不匹配的 Pod 的现有 ReplicaSet 被缩容。 最终,新的 ReplicaSet 缩放为 个副本, 所有旧 ReplicaSet 缩放为 0 个副本。

当 Deployment 正在上线时被更新,Deployment 会针对更新创建一个新的 ReplicaSet 并开始对其扩容,之前正在被扩容的 ReplicaSet 会被翻转,添加到旧 ReplicaSet 列表 并开始缩容。

例如,假定你在创建一个 Deployment 以生成 nginx:1.14.2 的 5 个副本,但接下来 更新 Deployment 以创建 5 个 nginx:1.16.1 的副本,而此时只有 3 个 nginx:1.14.2 副本已创建。在这种情况下,Deployment 会立即开始杀死 3 个 nginx:1.14.2 Pod, 并开始创建 nginx:1.16.1 Pod。它不会等待 nginx:1.14.2 的 5 个副本都创建完成后才开始执行变更动作。

通常不鼓励更新标签选择算符。建议你提前规划选择算符。 在任何情况下,如果需要更新标签选择算符,请格外小心, 并确保自己了解这背后可能发生的所有事情。

  • 添加选择算符时要求使用新标签更新 Deployment 规约中的 Pod 模板标签,否则将返回验证错误。 此更改是非重叠的,也就是说新的选择算符不会选择使用旧选择算符所创建的 ReplicaSet 和 Pod, 这会导致创建新的 ReplicaSet 时所有旧 ReplicaSet 都会被孤立。
  • 选择算符的更新如果更改了某个算符的键名,这会导致与添加算符时相同的行为。
  • 删除选择算符的操作会删除从 Deployment 选择算符中删除现有算符。 此操作不需要更改 Pod 模板标签。现有 ReplicaSet 不会被孤立,也不会因此创建新的 ReplicaSet, 但请注意已删除的标签仍然存在于现有的 Pod 和 ReplicaSet 中
到此这篇查看k8s版本信息的命令是(k8s查看deployment的命令)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 做网站代码(网站代码示例)2025-06-19 19:09:09
  • yml文件怎么读(yml文件怎么写)2025-06-19 19:09:09
  • 手机蓝牙地址不可用是什么意思(手机蓝牙地址不可用是什么意思呀)2025-06-19 19:09:09
  • pass 平台(pass平台和sass平台)2025-06-19 19:09:09
  • 网页聊天代码怎么用(网页聊天系统源码)2025-06-19 19:09:09
  • 程序员从哪开始学(程序员从哪开始学比较好)2025-06-19 19:09:09
  • iphone15多少钱(iPhone15多少钱百度优选)2025-06-19 19:09:09
  • 易梯认证码(易梯认证码分享截图)2025-06-19 19:09:09
  • 接口500错误(接口报500是什么错误)2025-06-19 19:09:09
  • 安卓 划词翻译(划词翻译插件)2025-06-19 19:09:09
  • 全屏图片