自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

因上努力,果上随缘。但行好事,莫问前程。

有志者自有千方百计,无志者只感千难万难。

  • 博客(426)
  • 资源 (2)
  • 收藏
  • 关注

原创 k8s最佳实践合集(持续更新)

【代码】k8s实用命令大全(持续更新)

2025-05-09 10:37:34 323

原创 Linux基础命令大全(持续更新)

【代码】Linux基础命令大全(持续更新)

2023-12-13 10:22:49 3035

原创 节点NotReady后容器驱逐时间调整

早期k8s版本中,Kubernetes Controller Manager 有一些相关参数,用于控制节点监控和 Pod 驱逐的行为。--node-monitor-grace-period=40s(节点失联后等待多久才标记为不健康)--node-monitor-period=30s(Controller Manager 检查节点状态的频率)--pod-eviction-timeout=5m0s(节点标记为不健康后,等待多久才开始驱逐 Pod)

2025-12-12 10:45:39 346

原创 StatefulSet 的每个 Pod 单独创建 Service

假设我们有一个 StatefulSet,名称为my-db我们想为每个 Pod 创建一个对应的 Service,让它们可以被,如:my-db-0 → 可通过或访问my-db-1 → 可通过或访问。

2025-12-03 14:40:52 249

原创 K8S Node 异常问题排查

可使用 kubectl 命令行对 K8S Node 异常做初步定位,方法几乎适用于所有 K8S 集群。

2025-12-03 14:26:58 361

原创 pod内核参数调优的方式

Kubernetes 将 sysctl 参数分为和。的 sysctl 参数除了需要设置恰当的命名空间外,在同一节点上的不同 Pod 之间也必须是。这意味着 Pod 上设置sysctl 参数时:必须不能影响到节点上的其他 Pod必须不能损害节点的健康必须不允许使用超出 Pod 的资源限制的 CPU 或内存资源。至今为止,大多数sysctl 参数不一定被认为是的。以下几种 sysctl 参数是(从 Kubernetes 1.18 开始),(从 Kubernetes 1.22 开始)。

2025-12-03 14:03:07 213

原创 kubeconfig自动化创建

给单个命名空间设置所有者权限,通过脚本自动创建kubeconfig配置。

2025-12-01 15:46:49 178

原创 Kubernetes DNS解析实战

只有当 Pod 通过就绪探针(Readiness Probe)并成为状态时,它才会被加入到对应的 Endpoint 对象中,CoreDNS 才会提供该 Pod 的 DNS 记录(仅限于这种格式)。:Service 的解析记录在时就会立刻添加到 CoreDNS 中,其后端是否有任何就绪的 Pod。

2025-08-29 18:16:54 324

原创 calico-apiserver认证失败

现象一:calico-apiserver状态为False现象二:删除命名空间报错。

2025-08-25 17:37:11 562

原创 节点NotReady自动清理sts类型的Pod

当statefulset类型的pod所在节点notready时,不会被驱逐,一直处于Terminating状态。

2025-07-22 16:52:24 270

原创 etcd操作key的命令

【代码】etcd查询key的命令。

2025-07-02 16:00:48 219

原创 coredns&etcd黄金监控指标

2025-05-28 10:16:06 293

原创 Harbor支持推送Helm chart包

在 Harbor 安装时需配置harbor.yml,启用 ChartMuseum 组件。确保本地已安装 Helm(版本建议 ≥ v3),并添加 Harbor 仓库。

2025-05-20 13:57:47 667

原创 vmstorage横向扩容

vmstorage 是 VictoriaMetrics 时序数据库系统中的核心存储组件,负责时间序列数据的持久化存储和查询服务。

2025-05-14 16:55:28 419

原创 kubelet指标采集和监控告警

k8s版本:v1.16.2k8s版本:v1.20.8v1.16.2版本通过selflink调用apiserver接口来获取集群中node节点信息,高版本去掉了此功能,无法再通过vmservicescrape来进行指标采集,只能通过vmnodescrape对象。

2025-05-09 09:57:26 430

原创 etcd数据压缩

当etcd的数据较大时,会导致某些组件连接etcd超时,响应变慢。

2025-05-07 14:53:41 147

原创 Etcd集群恢复方案

【代码】Etcd集群恢复方案。

2025-04-15 17:24:58 2

原创 容器TCP半链接队列内核参数修改手册

【代码】容器TCP半链接队列内核参数修改手册。

2025-04-10 16:20:08 308

原创 Etcd修改存储配额限制

原因:etcd默认存储配额是2G,超出2G会变成只读状态。

2025-04-10 16:16:59 18

原创 etcd数据备份添加监控告警

说明:当备份文件小于 1 MB(异常情况)时触发报警。说明:当备份失败(状态为 0)时触发报警。数据类型:数字 (integer)数据类型:数字 (integer)类型:Zabbix Agent。类型:Zabbix Agent。

2025-01-16 14:23:02 324

原创 k8s中的CriticalAddonsOnly容忍配置

Kubernetes 中,是一种用于关键组件的容忍配置,主要目的是确保集群核心功能组件在资源紧张或节点发生问题时能够继续运行。不过,它本身并不是直接与某些特定的污点(Taints)绑定的,而是可以和节点上任何污点配合使用,因为它采用了Exists操作符。

2024-12-06 13:58:01 467

原创 journald日志保留时长修改

systemd程序是进程 ID 为 1 的进程,它负责以所需的方式初始化系统,能保证机器启动后系统正常初始化,并提供按需启动守护程序功能,很适合K8s基础组件的管理。是systemd提供的管理日记的系统服务,会根据从内核、用户进程、标准输入和系统服务错误收到的日志记录信息,维护结构化的索引日记,并以此方式来收集和储存日志记录数据。

2024-11-25 16:05:18 734

原创 假死docker容器强制删除

查看docker日志可以看到docker一直在强制杀死某一个容器,但是就是杀不死。

2024-11-22 14:22:49 896

原创 LVM云盘创建及扩容

通过云平台console页面,创建云磁盘SSD,关联云实例。

2024-10-22 11:09:45 280

原创 k8s多集群管理(只读用户)

其他集群重复此操作,这样就可以实现通过一台只读机,切换集群上下文的方式,访问各个k8s集群了。

2024-09-25 13:52:48 515 1

原创 k8s-ingress报错:<error: endpoints “default-http-backend“ not found>

在Kubernetes中,默认后端是指当没有其他后端服务匹配到入口的请求时,流量将被发送到的地方。在Ingress资源中,你可以通过定义一个名为的服务来配置默认后端。

2024-07-15 12:15:31 1506 3

原创 k8s部署jenkins(手撕yaml)

配置NodePort(目的是让webhook钩子直接使用ip)

2024-07-02 15:41:45 497

原创 Mongo产品迁移操作手册

MongoShake是一个以golang语言进行编写的通用的平台型服务,通过读取MongoDB集群的Oplog操作日志,对MongoDB的数据进行复制,后续通过操作日志实现特定需求。日志可以提供很多场景化的应用,为此,我们在设计时就考虑了把MongoShake做成通用的平台型服务。通过操作日志,我们提供日志数据订阅消费PUB/SUB功能,可通过SDKKafkaMetaQ等方式灵活对接以适应不同场景如日志订阅、数据中心同步、Cache异步淘汰等。

2024-05-20 09:44:13 610

原创 Redis产品迁移操作手册

借助DTS和迁移工具,云数据库Redis为您提供了多种数据迁移方案,结合现场实际情况我们选择了模式做redis产品的全量和增量数据迁移。迁移链路如下图:二、迁移前准备2.1 迁移实例信息环境IP内网端口超管账号/密码ah-16379**ah-26379**2.2 迁移工具介绍是阿里云自研的开源Redis数据传输工具,支持对Redis数据进行解析(decode)、恢复(restore)、备份(dump)和同步(sync或rump。

2024-05-11 15:16:22 578

原创 k3s报错:Error: Kubernetes cluster unreachable: Get “http://localhost:8080/version“: dial tcp [::1]:xxx

而helm使用的是kubectl默认的配置文件,对于k3s环境,需要设置一下KUBECONFIG的值即可。设置完成之后,就可以使用helm工具了,从这里也能看到k3s的一些第三方插件也是通过helm部署的。

2024-03-26 10:15:06 1917

原创 容器运行时-Containerd容器管理

容器基本操作主要是 ctr image 命令,查看命令帮助。

2024-03-21 10:03:57 2560

转载 DevOps(从入门到放弃)

基础集群组件SpringCloud 业务组件。

2024-01-19 17:39:55 1325 1

原创 如何查找overlayfs对应的POD

客户生产环境监控发现在所有主机夜间2-3点,/home/t4目录磁盘使用率会暴涨后回落,由于时间范围比较固定,疑似某服务或主机设置定时任务导致,但和客户沟通在此时间段并未设置定时计划任务,和产研确认产品在此时间段也未设置定时计划任务。如此一来,就需要我们自己通过脚本抓取/home/t4下具体哪个目录导致的磁盘增长。

2024-01-19 15:30:17 1865

原创 wireshark根据请求头过滤包

请求头在应用程序中是可以自定义的。在问题排查过程中需要根据请求头过滤http包,本文描述如何在wireshark中根据请求头过滤http包。添加需要过滤的header名,如mgw-traceid、operation-type等,添加好后确定。打开wireshark“首选项”(perfreences),点击“协议”下拉找到HTTP,点击custom http header fileds。添加好后,就可以根据http.haeader.xxx进行过滤了。

2024-01-18 15:29:35 1083

原创 /hbase/.oldlogs 存储空间过多如何清理

打开http://${master}:${port}/cm.jsp 账号密码均为hbase输入密码后,页面如下:调整master的log保留时间由默认的3天改成1天(注意数据安全,尽量在存储空间无风险的情况不要进行改操作)hbase.master.logcleaner.ttl 该值默认为259200000,代表3天,将该修改为86400000 1天如下:点击load使得该值被加载。

2024-01-17 15:30:08 712

原创 MySQL清理千万级表数据脚本

【代码】MySQL清理千万级表数据脚本。

2024-01-15 15:00:50 561

原创 Etcd集群故障恢复

【代码】Etcd故障恢复。

2023-12-21 16:28:07 670

原创 docker pull镜像报错:‘invalid checksum digest format‘

这个命令将返回镜像的 manifest(元数据),其中包含有关镜像的详细信息,包括层(layers)和配置。通过多次执行docker push可以发现,连接会重置到443端口上,返回的类似是一个html的内容。可以看到已经有服务监听了443端口,我们需要把这个服务给停掉。然后,你可以提取 manifest 中的层信息,并使用。最终可以拉取成功,证明registry服务正常。可以看到,已经配置了registry的安全连接。镜像可以导入本地,证明镜像没有问题。最终镜像可以正常推拉到镜像仓库!

2023-12-08 15:49:20 1530

转载 为啥有的configMap要重启Pod才生效

metadata:data:env方式envFrom方式volumes方式。env方式envFrom方式volumes方式。env方式和envFrom方式方式说白了是往容器里注入了环境变量,在容器启动的时候,就已经注入了,无法修改。每次修改configMap的key-value,需要重启Pod才能生效。volumes方式的方式,实际上把configMap的key-value写入到了容器对应的volume卷下,而且每次configMap变更,都会把最新值写入到volume卷下,这样容器每次都能取到最新值。

2023-11-23 16:16:17 1432

转载 3 种方法限制 K8s Pod 磁盘容量使用

超过软限制后,仍然可以正常使用,但是登陆后会收到警告,在 grace time 倒计时完毕之前,用量低于软限制后,一切恢复正常。也就是说,如果你创建一个文件,打开文件,写入 1GB,然后删除文件,这种情况下 inode 仍然存在(直到你关闭文件),空间仍然被占用,但是 Kubelet 却没有算这 1GB.对于 Pod 级别的隔离,Pod 总用量限制,是每个容器限制之和。如果文件被创建、然后删除,但是它的文件描述符仍然处于打开状态,这种情况下,它仍然消耗空间,不会出现周期性扫描的那种漏统计的问题。

2023-11-23 15:23:30 1290

2022年最新DevOps和CI CD 常见面试题汇总

2022年最新DevOps和CI CD 常见面试题汇总 适用人群:devops工程师 帮你轻松应对各大厂面试,拿高薪!

2022-06-09

2022年最新Docker 常见面试题汇总

2022年最新Docker 常见面试题汇总 适用人群:即将要面试docker容器管理岗位的小伙伴,也适用于后期打算往docker容器化方向发展的小伙伴 内容概要:面试题较新,帮你轻松应对各大厂面试哦!

2022-06-09

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

TA关注的人

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