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

Kubernetes(k8s) 增量更新 po

文章目录

  • 前言
    • k8s 增量更新 po
      • 1. 导出要新建po 的控制器配置
      • 2. 配置详解
      • 3. 重新生效

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


k8s 增量更新 po

1. 导出要新建po 的控制器配置

为了方便,直接导出现有的控制器配置。
查询配置:

kubectl get deploy -n <命名空间> | grep <过滤字符串>

在这里插入图片描述
导出 干净的“可 apply”版本命令:

kubectl get deploy <my-deploy> -n <命名空间> -o yaml \| sed -e '/^  uid:/d' \-e '/^  resourceVersion:/d' \-e '/^  creationTimestamp:/d' \-e '/^  generation:/d' \-e '/^status:$/,/^[^ ]/d' \> deploy_20250905.yaml

额外清理:

  • 删掉 managedFields 整块(这是冗余的操作记录,API 会自己维护)。
  • 删掉 fieldsType / fieldsV1 / manager / operation / time(都属于 managedFields 的子字段)。

2. 配置详解

在这里插入图片描述
脱敏详细配置:

apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "7"meta.helm.sh/release-name:demo-service-bjmeta.helm.sh/release-namespace: demo-bjlabels:app:demo-service-bj-taskapp.kubernetes.io/instance:demo-service-bjapp.kubernetes.io/managed-by: Helmapp.kubernetes.io/name: demo-serviceapp.kubernetes.io/version: "2.0"helm.sh/chart: demo-service-0.1.1name:demo-service-bj-tasknamespace: magic2-bj
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:app:demo-service-bj-taskstrategy:rollingUpdate:maxSurge: 50%maxUnavailable: 50%type: RollingUpdatetemplate:metadata:annotations:kubectl.kubernetes.io/restartedAt: "2025-05-22T09:58:54+08:00"creationTimestamp: nulllabels:app:demo-service-bj-taskspec:containers:- command:- /bin/sh- -c- 'java -Xms1024M -Xmx2024M demo.jar 'env:- name: NACOSURLvalue: yzy:8848image: 镜像imagePullPolicy: IfNotPresentlivenessProbe:exec:command:- /bin/sh- -c- /usr/bin/curl -X GET -s '存活接口(存活探针,检查容器是否健康运行,不健康会被重启)'| grep instanceIdfailureThreshold: 5initialDelaySeconds: 60periodSeconds: 20successThreshold: 1timeoutSeconds: 3name: appports:- containerPort: 8080protocol: TCPreadinessProbe:exec:command:- /bin/sh- -c- /usr/bin/curl -X GET -s '请求接口(就绪探针,检查容器是否可对外服务)'| grep instanceIdfailureThreshold: 3periodSeconds: 10successThreshold: 1timeoutSeconds: 1resources:limits:cpu: "2"memory: 4000Mirequests:cpu: 100mmemory: 500MiterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /etc/localtimename: host-timereadOnly: true- mountPath: /home/app/jarsname: yzydnsPolicy: ClusterFirstnodeSelector:kubernetes.io/hostname: <ip>restartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}serviceAccount:demo-service-bjserviceAccountName:demo-service-bjterminationGracePeriodSeconds: 30volumes:- hostPath:path: /etc/localtimetype: ""name: host-time- hostPath:path: /data/demo/jarstype: Directoryname: yzy
配置块说明(通用讲解)
apiVersion / kind定义资源类型,这里是 Deployment。
metadata元数据:名称、命名空间、标签、注解(一般用于标识应用、Helm 信息、运维追踪)。
spec.replicas副本数量,决定 Pod 的数量。
spec.selector选择器,Deployment 根据标签找到自己要管理的 Pod。
spec.strategy更新策略,常见是 RollingUpdate(滚动更新),可配置 maxSurge / maxUnavailable。
template.metadata.labelsPod 模板里的标签,要和 selector 匹配。
containers.image容器镜像地址,定义运行环境和应用内容。
containers.command容器启动命令,一般用来启动主程序(如 java -jar xxx.jar)。
containers.env环境变量:可以是固定值(配置中心地址),也可以是动态值(如 Pod 名称)。
containers.ports容器对外暴露的端口。
livenessProbe存活探针,检查容器是否健康运行,不健康会被重启。
readinessProbe就绪探针,检查容器是否可对外服务,失败则不会接收流量。
resources.requests最低资源需求(CPU/内存)。
resources.limits资源上限,防止容器无限占用。
volumeMounts容器内挂载点,通常用于挂载配置文件、日志目录、本地时间等。
volumesPod 使用的存储卷定义(如宿主机目录、ConfigMap、Secret)。
nodeSelector节点选择器,强制 Pod 调度到某些节点上。
serviceAccountNamePod 使用的 ServiceAccount,用于 RBAC 权限控制。
restartPolicy重启策略,Deployment 下通常是 Always。
terminationGracePeriodSeconds优雅关闭等待时间,默认 30 秒。

3. 重新生效

kubectl apply -f deploy_20250905.yaml -n <命名空间>

注:对象存在就 增量更新,不存在就 新建;Deployment 更新会 触发滚动发布。


文章转载自:

http://qYJFkIRz.gjqnn.cn
http://x9VyXrgW.gjqnn.cn
http://LMAumXM4.gjqnn.cn
http://pdUND448.gjqnn.cn
http://R2dtyAkZ.gjqnn.cn
http://j2ZSZnyR.gjqnn.cn
http://lt2esNLo.gjqnn.cn
http://xqfYxuZo.gjqnn.cn
http://xNHZefXW.gjqnn.cn
http://LWC4mPX1.gjqnn.cn
http://GvyREaAR.gjqnn.cn
http://aVlvr4Ch.gjqnn.cn
http://NQXaXeBv.gjqnn.cn
http://wjGawuaM.gjqnn.cn
http://iXzEgBe6.gjqnn.cn
http://unefuJgd.gjqnn.cn
http://hK4Leb3u.gjqnn.cn
http://R4EsOrqY.gjqnn.cn
http://byZIpyCS.gjqnn.cn
http://QhyJJqW0.gjqnn.cn
http://RBegEwdd.gjqnn.cn
http://N2Ewjt6u.gjqnn.cn
http://UtTBFlRe.gjqnn.cn
http://JC4VdnIi.gjqnn.cn
http://rxKhwVKm.gjqnn.cn
http://8RAb9trq.gjqnn.cn
http://UTq5rCky.gjqnn.cn
http://qgh0Si88.gjqnn.cn
http://N74I2H15.gjqnn.cn
http://nap9Ngcw.gjqnn.cn
http://www.dtcms.com/a/368144.html

相关文章:

  • 还在为第三方包 bug 头疼?patch-package 让你轻松打补丁!
  • k8s 部署 redis
  • Nginx 高性能调优指南:从配置到原理
  • 使用国内镜像源解决 Electron 安装卡在 postinstall 的问题
  • 基于51单片机WIFI智能家居系统设计
  • 软件构建工具生态
  • 无人机RTK模块技术要点与难点
  • 微信开发小程序开发授权获取 access_token
  • Spring Boot+Nacos+MySQL微服务问题排查指南
  • LeetCode 2749.得到整数零需要执行的最少操作数:很独特的一道数学题(多公式硬讲——一步步还真能看懂)
  • 【C++】vectore
  • 柯尼卡美能达打印机SMB服务设置
  • 【VoNR】VoNR是5G语音,VoLTE是4G语音,他们是同一个IMS,只是使用了新的访问方式?
  • Android/Java 泛型全面详解
  • 国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
  • html+css+vue实现增删改查
  • 在Unity中实现DTLN-AEC处理音频文件的功能
  • 关于kubernetes和docker版本的一些总结
  • 图像的几种成像方式简介
  • AI 基础设施新范式,百度百舸 5.0 技术深度解析
  • 中创中间件适配HGDB
  • 没 iCloud, 如何数据从iPhone转移到iPhone
  • 【技术教程】如何将文档编辑器集成至基于Java的Web应用程序
  • 基于华为云平台的STM32F103C8T6工业生产线温湿度监控系统
  • js设计模式-状态模式
  • 一文从零部署vLLM+qwen0.5b(mac本地版,不可以实操GPU单元)
  • Python核心基础:运算符、流程控制与字符串操作详解
  • Follow 幂如何刷屏?拆解淘宝闪购×杨幂的情绪共振品牌营销
  • 嵌入式学习4——硬件
  • 数据标注:人工智能视觉感知的基石