- 博客(138)
- 资源 (2)
- 收藏
- 关注
原创 k8s的etcd的一键备份和故障恢复
现有的2套kubernete环境是基于官方开源工具kubeadm部署的kubernete版本,容器运行时是docker,有3master+56worker节点规模。核心组件:etcd 集群(与 Master 节点共部署,3 节点高可用架构)、kube-apiserver、kube-controller-manager、kube-scheduler 等。K8s集群突然崩了,etcd数据丢了一半,etcd是K8s的“数据大脑”,所有集群资源(Pod、Service、ConfigMap)、状态信息都存在这里。
2026-01-08 09:25:54
588
原创 基于prometheus监控redis集群和rabbitmq集群
以下是针对实际生产环境部署prometheus、alertmanager、grafana+black_explorer、node_explorer和redis_explorer等监控组件实现监控主机,端口探测,redis集群、rabbitMQ集群,并通过alertmanager实现企业微信告警的功能,能够快速发现监控问题,及时介入处理。导入node_explorer,redis,rabbitmq等模版,可通过官网搜索导入,以下是导入的截图。conf.d/node.yaml,单独放的监控主机的配置。
2025-12-30 11:17:54
350
原创 kubernetes安装traefik Gateway API,应对Ingress NGINX停止维护
将在停止维护,之后不会再有新 bug 修复或安全补丁。这次官方宣布停止维护Ingress NGINX主要原因还是因为,还有一个原因是大量 NGINX 自定义配置、各种注解(annotations)、自定义模板,使得开发者几乎“被锁定”在老旧架构中。“停止维护”并不等于服务立即停止或失效:目前系统继续运行不会因为公告立即宕掉。但风险增加:未来若有新漏洞或安全事件,使用者将无法获得官方补丁,自行承担风险。所以短期内还可以继续使用,后期就需要考虑替代品了。
2025-12-27 15:18:50
820
原创 redis8.0三主三从集群基于prometheus+grafana监控
现在管理的redis集群是有3套,其中2套是3主3从,1套是5主5从,redis版本是8.0.22,目前业务反馈偶发慢的问题,为了时刻监控redis集群的运行状态,考虑基于现有的prometheus+grafana集群监控redis集群运行状态,并实现redis集群异常告警。分配替换配置文件中的redis的地址以及为exporter地址及端口,特别注意为exporter地址及端口要和redis_exporter进程的配置对应。-redis.password "1234565" redis的口令。
2025-12-26 23:22:44
382
原创 kubeadm安装的k8s集群涉及etcd数据库的参数优化
一.问题原因搭建正常运行好几年的基于kubeadm安装的kubernetes集群,针对etcd数据库路陆续出现以下问题etcd io经常报延迟过高, 会有leader频繁切换的情况执行命令发现延迟高, 延迟100-200ms以上, 已经换了ssd,还是100ms左右或以上;etcd集群运行直接挂掉了(晚上半夜12点),集中式存储关掉了写缓存,造成存储IO性能下降75%,etcd集群频繁重启进而造成数据库文件文件坏了,自动恢复不了的问题二.问题分析。
2025-12-25 16:34:41
1158
原创 k8s集群容器创建报failed to write 10087 to cgroup.procs处理
批量修改的backup=yes 会在修改前生成 .bak 后缀的备份文件,若修改出错可通过 cp /var/lib/kubelet/config.yaml.bak-$date /var/lib/kubelet/config.yaml 恢复,恢复后再重启kubelet即可。但由于出现问题的Pod的比较多,在前期未完全定位原因的情况下的临时缓解措施。),让 Deployment 重建 Pod,就绪探针的问题应该会解决。经检查发现在/var/lib/kubelet/config配置的。
2025-12-25 10:02:32
739
原创 Ingress NGINX将彻底停止维护,研究和验证kubernetes安装traefik ingress,替换原来的nginx-ingress
DaemonSet 模式可让 Traefik 运行在每个节点,通过 HostPort 暴露 80/443 端口(如果nginx-ingress已经使用这些端口,修改进行替换其他端口),适合生产环境。现有环境的k8s集群的ingress集群,原来使用的是nginx-ingress,现在想替换为traefik ingress,以下是实施步骤。Traefik 需要访问 K8s API 来监听 Ingress、Service 等资源,创建。1.首先梳理现有 Nginx-Ingress 的关键信息,避免冲突。
2025-12-24 22:08:14
200
原创 通过ansible分发免密公钥、清理不再使用的公钥及验证公钥状态
ansible使用authorized_key模块分发ansible控制机上的ssh公钥,文件是/root/.ssh/id_rsa.pub 公钥,分发到远端节点的。,可通过先添加新的,在移除老的,具体如下。4.节点组的公钥状态,看是否添加或者删除。实现批量清理特定免密登录权限的目的。
2025-12-23 17:48:47
246
原创 kubernetes的etcd数据库的二进制部署
公司的kubeadm部署的3个master节点的kubernetes集群,其etcd数据库是和master混布。kubernetes集群在运行过程中出现过由于底层存储IO异常造成etcd集群崩溃,进而造成整个集群异常。为了应对再次出现类似问题,研究重新使用二进制新建集群,再恢复数据。
2025-12-23 11:30:51
391
原创 kubeadm部署的kubernetes集群的etcd由默认静态pod改为二级制的etcd集群
一.背景公司的kubeadm部署的3个master节点的kubernetes集群,其etcd数据库是和master混布。kubernetes集群在运行过程中出现过由于底层存储IO异常造成etcd集群崩溃,进而造成整个集群异常。为了应对再次出现类似问题,研究在复用现有kubeadm部署集群时生成的etcd证书,重新使用二进制新建集群。
2025-12-23 11:03:15
453
原创 Kubernetes 的 ServiceAccount、Token 与 Pod 身份认证
ServiceAccount 本身 没有任何权限。权限来自 RBAC 绑定关系,具体赋权可基于RBAC规则对ServiceAccount进行授权。在 Kubernetes 中,Pod 不只是跑业务代码的容器,它还经常需要访问以下对象,Pod 只能使用 ServiceAccount来访问。ServiceAccount → Role / ClusterRole → API 权限。2.新版:Bound ServiceAccount Token(推荐)5.ServiceAccount 与 RBAC 的关系。
2025-12-23 10:25:10
943
原创 使用acme.sh批量更新多域名的证书
使用acme.sh批量更新多域名的证书,主要是的目的是实现公司k8s集群的对外业务域名实现https的加密访问。
2025-12-22 15:54:23
583
原创 k8s部署metrics-server
k8s部署是 Kubernetes 实现资源监控(如、HPA 自动扩缩容)的核心组件,在部署过程中遇到过以下问题k8s.gcr.io部署步骤如下1.步骤 1:下载官方部署文件(并修改)2.步骤 2:修改关键配置打开3. 添加启动参数(解决证书 / 连接问题)在Deployment的args部分,新增以下参数(关键!4.可选:调整资源限制(根据集群规模)5.部署metrics-server6.验证部署。
2025-12-17 15:42:54
339
原创 k8s部署 nfs-client-provisioner
需提前准备一台 NFS 服务器(如 CentOS/Ubuntu),并创建共享目录.如果有单独的NFS存储,此步骤可忽略。3.1创建命名空间,本次使用的是kube-system命名空间,可忽略。是 Kubernetes 中实现 NFS 动态存储供应的核心方式。3.3部署 nfs-client-provisioner 应用。3.2创建 ServiceAccount 和 RBAC 权限。所有 K8s 节点安装 NFS 客户端(避免挂载失败)3.4创建 StorageClass(存储类)
2025-12-17 15:31:41
201
原创 清理三主三从redis集群的过期key和键值超过10M的key
实现单节点的 Key 筛选与删除(可直接在 Redis 节点执行)在 Redis 三主三从集群中使用 Lua 脚本清理。针对 Redis 三主三从集群,要实现。一.基于shell脚本进行删除。以下是基于shell脚本实现。二.基于lua脚本删除。
2025-12-15 10:13:41
243
原创 基于虚拟化环境下测试虚拟机的磁盘IO
测试k8s集群的master节点的io,主要是应对etcd的IO需求,当虚拟机底层为 SATA SSD 盘时,测试需结合 SATA SSD 的特性(如 IOPS、延迟、吞吐量的典型表现),并针对性优化测试参数以充分发挥 SSD 性能,同时规避虚拟化层的潜在瓶颈。以下是。
2025-12-09 09:14:27
820
原创 kubeadm安装的三个masterd的k8s的etcd数据库故障,如何通过备份数据进行恢复
当 kubeadm 部署的三 master 节点 K8s 集群中 etcd 数据库发生故障时,需结合 etcd 的备份文件(快照)进行恢复。
2025-12-08 14:57:31
511
原创 基于docker安装jenkins+gitlab+harbor
5.Jenkins Pipeline参考。4.部署Jenkins CI/CD引擎。3.部署Harbor镜像仓库。
2025-12-06 21:32:44
280
原创 k8s的ETCD故障处理
在 3 节点 Master 的 etcd 集群(Raft 共识集群)中,数据恢复需区分和(3 节点 etcd 集群需至少 2 个节点达成共识,因此全量恢复需先重置集群再重建)。
2025-12-06 15:13:07
1072
原创 Kafka 概念与部署手册
Kafka 依赖 ZooKeeper 存储集群元数据(如 Broker 列表、分区副本信息等),需先部署 ZooKeeper 集群。多个消费者组成的组,共同消费一个主题的消息。Kafka 的部署架构是一个分布式系统设计,核心目标是实现高可用、高吞吐量和水平扩展。分区内消息的唯一序号,消费者通过记录 Offset 确定已消费位置,支持消息回溯。向 Kafka 集群发送消息的客户端,可将消息发布到指定的主题(Topic)。从 Kafka 集群读取消息的客户端,通过订阅主题消费消息。分区的备份,用于容错。
2025-10-21 21:46:01
714
原创 linux服务器排查进程CPU使用率高的思路
CPU使用率100%并不代表CPU真正在"工作",wa高的情况下CPU实际是在等待,优化方向完全不同。有些情况下,CPU高占用并非应用代码问题,而是系统级资源瓶颈导致。:单个进程占用的CPU百分比(注意多核服务器可能超过100%):通常是应用程序代码执行导致,如死循环、复杂计算、正则匹配等。• 非自愿切换过多,说明进程/线程数过多,CPU调度压力大。:可能是系统调用过多、网络包处理、进程创建销毁频繁等。:磁盘I/O性能瓶颈,CPU在等待磁盘响应。: 改变过优先级的进程消耗的CPU时间。
2025-10-17 17:22:30
577
原创 使用 OpenSSL 吊销 Kubernetes(k8s)的 kubeconfig 里的用户证书
1. 准备工作 你得有自签名 CA 的私钥(通常是 .key 文件)、CA 证书(通常是 .crt 文件)以及证书吊销列表(CRL)文件。若还没有 CRL 文件,就需要创建一个。
2025-05-06 17:03:48
1074
原创 kubernetes下的etcd备份脚本以及处理etcdserver: mvcc: database space exceeded的脚步整理
kubernetes下的etcd备份脚本以及处理etcdserver: mvcc: database space exceeded的脚步整理
2024-12-10 20:27:50
377
原创 k8s的数据库etcd报 etcdserver: mvcc: database space exceeded的处理办法
公司的k8s集群的etcd配置是默认配置,其磁盘配置为2GB的配额,目前出现了数据写入失败的情况,报错Error: etcdserver: mvcc: database space exceeded。以下排查路径涉及到的证书,根据自己的实际情况指定。1.查看etcd的endpoint。
2024-12-03 18:52:14
1137
原创 rocylinux9.4安装prometheus监控
具体的软件包如下,其中kubernetes-mixin是下载的监控kubernetes的一些监控规则、dashbaordd等。2.编辑peometheus的启动文件。三.部署Node Exporter。1.安装Node Exporter。四.安装alertmanager。1.promethes软件安装。二.Prometheus配置。
2024-11-28 11:43:42
642
原创 oracle linux源码安装rabbitMQ并部署三节点rabbitmq集群
启动rabbitmq之后会在~/.erlang.cookie或/var/lib/rabbitmq/下生成一个.erlang.cookie隐藏文件,即使你把这个文件给删除了运行rabbitmq-server也会再次生成新的.erlang.cookie。Rabbitmq是现阶段比较常用的一个消息队列服务,是基于erlang语言开放的,需要首先安装erlang,并且rabbitmq和erlang的版本是有关系的。1.基础依赖软件(主要是是编译和erlang安装的时候的一些依赖软件)将erlang写入环境变量。
2024-08-01 15:36:01
738
原创 LVM逻辑卷元数据丢失恢复-数据不丢失
公司一台数据库服务器,断电重启后,发现操作系统启动不了,系统卡在Control-D to continue界面。系统启动过程中有报错,磁盘挂载不上,去掉该磁盘挂载系统可以启动正常。发现异常 mount: special device /dev/mapper/datavg-datalv does not exist。修改/etc/fstab,注释掉 /data的挂载,可正常进入操作系统。通过以上发现没有datavg对应的lvm信息。执行挂载命令,正常挂载,数据也未丢失。2.检查lvm元数据备份。
2024-07-24 17:25:19
983
2
原创 公司内部docker搭建openvpn实现远程VPN访问(实测)
客户端系统环境:Windows。3.启动openvpn服务。二.openVPN环境安装。1.获取openvpn镜像。3.初始化服务器端证书。根据下面的脚本进行创建。
2024-06-21 16:59:45
4137
原创 linux服务器的LVM动态扩容时提示physical volumes missing
公司数据库服务器磁盘空间不足,通过LVM动态扩容磁盘卷,提示physical volumes missing。磁盘/dev/sde和/dev/sdb的Attr属性值的m已经不存在,恢复正常,可以正常针对lv进行处理了。通过vgextend --restoremissing centos /dev/sde即可恢复。发现有/dev/sdb 和/dev/sde的Attr的值是a-m,磁盘missing。通过以上确认物理磁盘没有问题,只是LVM的VG认为磁盘丢失。1.登录到服务器,通过pvs查看磁盘。
2024-06-21 16:58:36
520
原创 kubernetes集群报 unable to load bootstrap kubeconfig处置思路
k8s 集群出现问题:"unable to load bootstrap kubeconfig的处理办法
2024-03-22 15:03:33
3722
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅