自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

海鸥

在网络的世界里留下彩色印记

  • 博客(208)
  • 问答 (1)
  • 收藏
  • 关注

原创 Kubernetes 节点提前拉取 / 预热镜像所有方案汇总

下面一份的 Kubernetes 节点所有方案汇总,覆盖:手动、原生资源、Operator、节点启动、离线、镜像缓存等全部场景。

2026-03-03 13:49:52 543

原创 Pod 关联的 PVC/PV 存在 挂载残留 / 绑定状态异常

核心原因:Pod删除后,PVC/PV的绑定关系、节点上的卷挂载残留/锁未被清理,新Pod复用旧PVC时无法正常挂载卷,而删除PVC会触发卷的全链路状态重置(解绑PV、清理挂载残留、释放锁),新PVC能建立干净的绑定关系,让Pod正常挂载;关键差异:K8s中Pod删除仅释放容器资源,不清理存储卷状态;PVC删除是存储卷的「状态重置操作」,会清理绑定关系和节点挂载残留;高发场景:强制删Pod、StatefulSet有状态服务、hostPath/本地存储、节点/CSI插件异常;规避方法。

2026-02-06 13:52:25 830

原创 k8s中Jenkins 配置文件「 更新不了 」

该操作是应急修复 K8s 上 Jenkins 侧车容器(config-reload)的异常进程,解决配置无法更新的问题,核心是杀死重复启动的sidecar.py进程(PID 8),保留正常的 PID 1 进程;核心问题根源是sidecar.py脚本异常/僵尸进程泄露/容器资源不足,导致多个sidecar.py进程并存,干扰配置重载功能;临时修复用kill 异常PID,长期优化需「脚本加异常处理+容器加资源/探针+日志监控」,从根源避免问题复现;

2026-01-30 16:14:06 791

原创 ArgoCD 中资源存在不可变字段修改的含义和举例

不可变字段」是指K8s 资源创建完成后,不允许被修改的字段(K8s 设计上禁止更新,强行修改会报错),这类字段通常是资源的「核心配置」,修改后会导致资源的本质属性发生变化,K8s 无法通过「更新」实现,只能删除旧资源后重建。ArgoCD 同步时,若检测到「Git 仓库中的资源配置」与「集群中已存在的资源配置」在不可变字段上有差异,就会提示「资源存在不可变字段修改」,且无法通过直接更新,只能选择「重建资源」(「不可变字段」是 K8s 资源创建后禁止修改的核心字段,修改后只能删除重建,无法直接更新;

2026-01-30 09:33:54 612

原创 argocd 提示信息:The resources will be synced using ‘kubectl replace/create‘ command that.....

该提示是 ArgoCD 的安全预警,触发原因是配置了或资源存在不可变字段修改,同步会重建资源;临时同步手动输入y,脚本/批量同步加--yes,全局关闭需修改argocd-cm且生产环境谨慎;核心原则:同步前确认资源重建的业务影响,优先保留安全预警,避免误操作导致故障。

2026-01-30 09:29:45 781

原创 argocd 命令使用详解

核心流程login(登录)→app create(创建应用)→app sync(同步应用)→app get(排查故障),覆盖日常大部分操作;应急命令(终止卡壳同步)、(强制同步)、(备份),解决高频故障;最佳实践:复杂配置用 YAML 文件创建应用,不可变资源添加注解,避免手动操作引入风险。这份指南足够覆盖日常运维场景,若需某一命令的更细节用法,可执行argocd <命令> --help查看官方详细说明(如。

2026-01-29 10:09:17 562

原创 理解 envFrom.secretRef 应用

核心理解是「批量将 Secret 中的敏感键值对注入为容器环境变量」的简洁方式,避免敏感信息硬编码在 Deployment 中;应用步骤:创建 Secret → Deployment 中配置→ 部署验证 → 应用代码读取环境变量;关键要点:命名空间一致、配置 Reloader 自动重启、遵循最小权限/定期轮换的安全原则。通过这套流程,你可以安全、高效地管理应用的敏感配置,符合 K8s 云原生的最佳实践。

2026-01-21 11:04:44 549

原创 Kubespray离线部署详细方案

在金融、军工、政务等网络隔离环境中,无法直接访问互联网获取部署依赖资源,导致Kubernetes集群部署难度增加。本方案基于Kubespray(Ansible-based部署工具),通过“联网构建机预制资源+内网服务分发+离线执行部署”的思路,实现无网络环境下Kubernetes集群的生产级部署,确保集群组件完整、配置可定制、部署过程可复现。环境类型节点角色核心作用网络要求联网环境构建机下载Kubespray源码、依赖资源(镜像/包/二进制)

2026-01-19 11:19:40 702

原创 ArgoCD App of Apps 模式详解

App of Apps 是 ArgoCD 规模化管理集群的标准模式,其核心是通过一个根 Application 批量管理所有子 Application,实现集群资源的全生命周期 GitOps 化。一键集群初始化:新集群快速部署所有资源;分层管理:职责清晰,便于多团队协作;声明式变更:所有修改通过 Git 提交,可追溯、可回滚;无缝集成自管理:实现 ArgoCD 自身的 GitOps 管理。生产环境中,建议结合 ArgoCD 项目、同步波次、健康检查等特性,构建稳定、高效的 GitOps 流水线。

2026-01-16 16:51:18 684

原创 argocd, app (especially CiliumIdentity) is constantly marked as Out-Of-Sync

全局排除:修改argocd-cm的,是最彻底、推荐的方案;可选补充:排除其他 Cilium 动态资源(如),避免后续同类问题;验证生效:同步 ArgoCD 配置,重启控制器,确认 Out-Of-Sync 状态消失。

2026-01-16 15:56:10 563

原创 kubectl 命令速查手册(日常使用必备)

kubectl 命令速查手册

2026-01-14 13:57:33 533

原创 Docker 常用命令 大全

docker命令总复习

2026-01-14 13:34:16 647

原创 k8s 国内无法下载docker images的分析

核心问题:服务器到网易云镜像仓库的网络链路不通,且高版本镜像未同步;终极方案:离线下载镜像→拷贝到服务器→加载镜像→创建集群,完全绕开网络限制;关键版本:优先选 v1.28.0(稳定、镜像源覆盖全),避免 v1.35.0 这类高版本;验证重点:加载镜像后用确认标签正确,创建集群时加跳过校验。如果执行后仍有报错,提供完整的错误输出,我会帮你进一步定位问题。

2026-01-14 10:16:42 661

原创 K8s 的 command/args 会覆盖 Dockerfile 的 CMD/ENTRYPOINT

核心规则:K8s会覆盖 Dockerfile 的,你的脚本替代了镜像原本的启动命令;args 特殊点args是传给command的脚本,执行完就退出,必须启动长期进程;exec 的作用:替换 shell 进程为 Python 进程,让 Python 成为容器主进程;关键结论:不是args有“特殊说明”,而是 K8s 容器必须有一个长期运行的主进程——不加,脚本执行完就退出,容器自然启动失败。

2026-01-13 15:27:32 673 1

原创 k8s中items.key的解析和实例

核心逻辑volumes定义“数据源(Secret)”,items精准筛选Secret的key并自定义文件名,把卷挂载到容器内具体路径;关键注意name要前后一致、secretName必须存在、用八进制420而非644;使用场景:适用于只需要挂载Secret中的部分key,且需要重命名挂载文件的场景(比如应用只认clone.conf,但Secret里的key是conf.china。

2026-01-13 14:58:29 685

原创 K8S中使用 reloader 实现滚动升级

K8S中使用 reloader 实现滚动升级

2026-01-07 13:47:51 1011

原创 Job 对应的 Pod 运行成功后未被删除 小结

核心结论:Completed 状态的 Job/Pod 主要占用节点磁盘(卷数据)和Etcd 元数据,挂载卷的场景下磁盘占用是核心风险;最佳实践为所有 Job 配置自动清理;CronJob 严格限制;挂载 PVC 的 Job 需手动/自动释放存储资源,避免持久化存储浪费。/bin/bashset -e# 删除所有Completed Pod# 删除所有Completed状态的Jobecho "清理完成!

2025-12-18 09:03:48 756

原创 in argocd ‘/tmp/_argocd-repo/../.git/index.lock‘: No space left on

可以补充完整的执行环境(如 Pod 名称固定前缀、节点权限等),我会针对性完善。(仅拥有者有写入+执行权限,无读取权限),且你当前执行命令的用户不是。ArgoCD 支持配置仓库缓存的 TTL(过期时间),修改。临时文件,最终 checkout 失败。(目录属主),导致无法遍历目录统计大小。若仅需清理空间,无需统计大小,可直接用。,导致 Git 拉取代码时无法创建。用户(Pod 内默认属主),或用。的 Deployment,为。用户强制删除目录(Pod 内。Deployment 中,给。

2025-12-17 12:45:08 979

原创 ArgoCD 中无用 ReplicaSet 问题全解析

基础配置:所有 Deployment 统一设置,从根源控制版本数;日常运维:通过 CronJob 每天清理超 24 小时的无用 ReplicaSet;应用生命周期:删除 ArgoCD 应用时启用级联删除,避免残留;风险兜底:清理前先通过--dry-run验证,或保留最近 1 天的 ReplicaSet 不清理。ArgoCD 中无用的 ReplicaSet(无 Pod 运行的旧版本)

2025-12-10 10:37:03 719

原创 Descheduler for Kubernetes

基础配置image:tag: v0.29.0 # 适配 K8s 1.24+,按需选择版本# 调度策略配置(核心)policy:profiles:- name: "RemoveDuplicates" # 驱逐重复 Pod(同一节点多副本)args:- name: "LowNodeUtilization" # 驱逐低资源利用率节点的 Podargs:cpu: 20 # 节点CPU利用率低于20%触发memory: 20cpu: 50 # 目标利用率50%memory: 50。

2025-12-09 13:16:28 676

原创 比较 SeaweedFS 与 Longhorn

SeaweedFS是主打高吞吐的分布式文件/对象存储,Longhorn是K8s原生的分布式块存储,二者适配K8s场景的性能特点、核心优缺点差异显著,以下结合具体数据、适用场景及官方信息展开详细对比:二者的性能优化方向不同,SeaweedFS侧重小文件高吞吐和快速寻址,Longhorn侧重块存储的一致性与稳定性,具体性能数据如下:

2025-11-12 14:08:14 878

原创 在k8s中seaweedfs中,weed 命令详细举例说明

在 Kubernetes 环境中使用weed命令行工具操作 SeaweedFS 时,需先确保weed客户端能连接到集群内的 SeaweedFS 服务(通常是 Filer 或 Master)。以下是,涵盖文件/目录的上传、下载、删除、查看等操作,结合 Kubernetes 环境的网络特性进行说明。

2025-11-12 13:07:44 763

原创 在k8s中部署seaweedfs,上传文件到seaweedfs方法

若已通过 SeaweedFS CSI 驱动创建了 PV/PVC,可将卷挂载到 Pod 中,直接在 Pod 内读写文件(文件会自动存储到 SeaweedFS)。确保 S3 Gateway 已部署(通常作为 Deployment 或 StatefulSet),并通过 Service 暴露端口(默认 8333)。在 K8s Pod 中通过 FUSE 挂载 SeaweedFS 目录,直接像操作本地文件一样上传,适合应用需要直接读写文件系统的场景。等工具上传,适合习惯 S3 操作的场景。(注意:需确保容器有。

2025-11-05 10:12:25 595

原创 新的pvc是否可以指定pv, 而这个pv已经被另一个pvc绑定,状态为bound

结论:新 PVC 无法指定已处于Bound状态的 PV(已绑定其他 PVC),Kubernetes 会主动拒绝该绑定请求。核心逻辑:PV 与 PVC 的绑定是排他性的,避免多业务共享同一卷导致数据安全风险。数据复用方案:需通过“快照 + 克隆”创建新卷,或在Retain策略下释放 PV 后复用(需手动操作)。

2025-10-14 16:44:01 392

原创 用helm安装SeaweedFS时,指定了persistentVolumeClaim

在使用 Helm 安装 SeaweedFS 时指定 persistentVolumeClaim(PVC)配置,核心意义是为 SeaweedFS 的关键组件(如 master、filer、volume 节点)提供持久化存储,确保数据在 Pod 重启、重建或集群故障时不丢失。

2025-10-14 09:17:12 587

原创 Descheduler for Kubernetes(K8s 重调度器)

Descheduler 的行为由ConfigMap配置(默认名称# descheduler-config.yaml(ConfigMap 内容) apiVersion : v1 kind : ConfigMap metadata : name : descheduler - config namespace : kube - system data : policy.yaml : | apiVersion: "descheduler/v1alpha2"

2025-10-10 16:01:39 660

原创 在K8s中,seaweedFS 和 Longhorn 的比较

SeaweedFS和Longhorn在K8s中的使用有以下一些比较:

2025-10-10 10:02:29 494

原创 seaweedfs中,通过 Filer 接口写入测试文件,会存储到哪里

从用户视角(通过 Filer 接口访问):文件位于逻辑路径。从系统存储视角:文件数据分散存储在一个或多个 Volume Server 的数据卷中,由 Filer 统一管理映射关系。这也是为什么通过能看到文件(访问 Filer 的逻辑路径),但 Pod 内看不到的核心原因——若 Pod 挂载的逻辑路径与写入路径不匹配,就无法通过 Pod 内的目录访问到文件。

2025-10-09 14:48:42 411

原创 Helm Chart 中,SeaweedFS的 master.data.type 选择

对比维度hostPath数据可靠性低(依赖单节点磁盘)高(依赖集群级存储)部署复杂度简单(无需提前配置)稍复杂(需 PV/StorageClass)动态调度支持不支持(Pod 迁移后数据丢失)支持(PV 可跟随 Pod 调度)高级特性(快照等)不支持支持(依赖后端存储)适用场景开发测试、临时场景生产环境、正式部署建议开发测试用hostPath快速部署;生产环境必须用。

2025-09-30 15:34:30 918

原创 主流工作法简介

这些方法各有侧重,实际应用中常结合使用(例如用SMART设定OKR,用PDCA优化Scrum迭代,用80/20优先级配合GTD执行),需根据具体场景灵活选择。

2025-09-19 16:47:23 475

原创 从S3上以目录形式下载文件

从S3上可以以目录形式下载文件。你可以使用AWS命令行工具、AWS SDK或者一些第三方工具来实现。

2025-09-05 14:22:39 522

原创 在S3中,如何指定一个文件不受lifecycle的影响,不要被删除。

在S3中,要确保一个文件不受生命周期(Lifecycle)规则影响(即不被自动删除或转换存储类),核心思路是,或。

2025-09-05 14:19:31 880

原创 Argo CD 中部署的 Helm Chart 中的 Job 不定时自动重启

在 Argo CD 中部署的 Helm Chart 中的 Job 不定时自动重启,通常与以下几种机制或配置有关。Argo CD 默认会定期检查集群状态与期望状态的差异(即 “自动同步”),如果发现 Job 不存在或未完成,可能会触发重新部署。若 Helm Chart 中的其他资源(如 ConfigMap、Secret)发生变化,可能触发整个 Chart 的重新部署。若 Job 被标记为不健康,可能触发重新部署。若 Chart 中意外混入了 CronJob 配置,会导致定时触发。

2025-07-16 08:59:28 708

原创 在 Jenkins Master 上设置一个全局环境变量

所有 Agent(节点)和后续的 Pipeline 都可以访问它。如果有进一步问题(如权限管理、变量覆盖优先级等),可以继续探讨!这段 Groovy 脚本定义了一个函数。中添加或修改一个环境变量(

2025-07-10 14:42:52 847

原创 helm chart的chart.yaml 中,version: 0.0.8, appVersion: “0.0.6“ 区别

在 Helm Chart 的。主版本.次版本.补丁。

2025-07-02 14:04:24 520

原创 S3中 client.get_usage_stats() 和 client.list_buckets() 区别详解

是 Amazon S3 客户端的两个不同方法,用于获取不同类型的信息。:实际上,AWS SDK 中并没有。

2025-06-27 15:52:29 396

原创 K8S: etcdserver: too many requests

通过以上步骤,您可以有效解决etcd请求过载问题,并优化Kubernetes集群的长期稳定性。如果问题持续存在,建议进一步分析具体请求来源,可能需要对特定组件进行代码级优化。错误时,表明etcd数据库接收到的请求量超过了其处理能力。etcd作为Kubernetes的核心组件,存储着集群的所有状态数据,处理请求过载会导致集群不稳定。对etcd集群进行滚动更新时,每次只更新一个节点,确保集群可用性。当Kubernetes集群出现。

2025-06-23 14:13:25 1870 1

原创 Helm 回滚部署操作指南

当新版本部署出现问题(如配置错误、服务异常或功能故障)时,通过回滚可快速恢复到之前稳定的版本,减少故障影响时间。默认情况下,Helm 回滚会使用历史版本的配置。若需保留当前配置(如仅回滚代码而非配置),添加。通过以上步骤,可高效完成 Helm 部署的回滚操作,保障系统在出现问题时快速恢复到稳定状态。命令回滚到指定的历史版本(

2025-06-19 09:18:22 714

原创 Kubernetes证书过期后更新证书的过程中,正在运行的 Pod 是否受有影响

通过合理规划和操作,可以最大程度减少证书更新对 Pod 的影响。

2025-06-17 09:49:30 647

原创 Helm 的 Chart.yaml 文件中,version 和 appVersion 详解

【代码】Helm 的 Chart.yaml 文件中,version 和 appVersion 详解。

2025-06-16 10:08:32 818

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除