- 博客(32)
- 收藏
- 关注
原创 K8s 集群巡检
平台巡检是一种监测和评估底层系统运行状况的工具,可帮助您快速发现系统中存在的潜在风险并给出相应修复建议。该工具可用于扫描集群中的各个方面,包括系统性能瓶颈、业务组件运行状态、资源使用情况和配置问题等,以提高系统的性能、稳定性和可用性。
2024-08-23 20:42:28
1074
原创 K8s CPU Throttle 优化方案
受内核调度控制周期(cfs_period)影响,容器的 CPU 利用率往往具有一定的欺骗性,下图展示了某容器一段时间的 CPU 使用情况(单位为0.01核),可以看到在 1s 级别的粒度下(图中紫色折线),容器的 CPU 用量较为稳定,平均在 2.5 核左右。本以为这已经保留了充足的弹性空间,然而若我们将观察粒度放大到 100ms 级别(图中绿色折线),容器的 CPU 用量呈现出了严重的毛刺现象,峰值达到 4 核以上。是用于匹配 Pod 的 label 的,匹配成功,则 Pod 应用 策略。
2024-08-23 20:39:14
687
原创 将 oVirt 虚拟机迁移到 KubeVirt
本集群使用 Coredns + NodeLocalDNS 方案首先在 Coredns 上修改配置文件,然后重启hosts {然后在 NodeLocalDNS 上修改配置文件 ,然后重启# .53 下面的 forward 进行修改,此处为 CoreDNS 地址force_tcp。
2024-07-01 20:47:17
587
原创 K8s 驱逐场景以及规避方案
较安全驱逐 & 提高稳定性的良性驱逐API 发起驱逐,典型案例:kubectl drainNode Not Ready 时,Controller Manager 发起的驱逐有风险的驱逐节点压力驱逐节点磁盘空间不足、内存不足 或 Pid 不足, kubelet 发起驱逐节点内存不足,内核发起 OOM节点打污点(NoExecute),导致 Pod 被驱逐,或者移除亲和性标签,导致 Pod 被驱逐, Controller Manager 发起的驱逐。
2024-07-01 20:46:38
873
原创 从0开始装一套 KubeVirt 1.2.1
固定 IP 能力:网络需要支持具备固定 IP 的能力, 这里选用 Calico数据持久化:dataVolume、hostDisk、PVC ,这里选用 dataVolume,可以动态创建 PVC, 并将镜像填充进去SC 选用 local-storage,性能最好,灾备首先磁盘 RAID 做了冗余,其次在应用层实现高可用灾备。
2024-07-01 20:46:03
1007
原创 K8s 多集群思考、实践和探索
以上多集群项目主要功能为资源分发和调度,还有如多云基础设施管理 cluster-api,多集群检索 Clusterpedia,多集群 pod 互通 submariner,multicluster-ingress 解决多集群的 ingress,服务治理和流量调度 Service Mesh,如 istio、cilium 等网络组件实现的 multi cluster mesh 解决跨集群的 mesh 网络管理,以及结合存储相关项目实现跨集群存储管理和迁移等。因此实际的总副本数可能会和配置的总副本数不一致。
2024-07-01 20:45:27
923
原创 CoreDNS 概述及运维实践
域名系统DomainNameSDNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。DNS 不仅方便了人们访问不同的互联网服务,更为很多应用提供了,动态服务发现和全局负载均衡(Global Server Load Balance,GSLB)的机制。这样,DNS 就可以选择离用户最近的 IP 来提供服务。即使后端服务的 IP 地址发生变化,用户依然可以用相同域名来访问。DNS 协议在 TCP/IP 栈中属于应用层。
2024-07-01 20:44:54
1027
原创 参会感-SRE 精英联盟-线下 Meetup
2003年,Google 启动了一个全新的团队——“SRE 团队”,该团队旨在通过软件工程的方法提高应用系统的可靠性。2016年,孙宇聪翻译出版了首部 SRE 著作《SRE:Google 运维解密》。2020年,赵成在极客时间开设了课程《SRE 实战手册》,牵头成立SRE 研讨社区。
2024-04-22 20:07:22
463
原创 Etcd 概述及运维实践
Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于 Go 语言实现。名字由来,它源于两个方面,unix的“/etc”文件夹和分布式系统(“D”istribute system)的D,组合在一起表示etcd是用于存储分布式配置的信息存储服务。
2024-04-22 20:05:27
358
原创 kube on kube 实现思路分享
这里的 kube on kube , 是指建立 K8s 元集群,纳管其他业务 K8s 集群,管理集群的创建、增删节点等。参考 https://github.com/kubean-io/kubean 源码进行编写,进行了裁剪。开源!👍👍。
2024-04-22 20:03:15
526
原创 我们的虚拟化变革之旅
译自:https://blog.taboola.com/our-journey-of-virtualization-change/
2024-04-22 20:00:58
278
原创 K8s 无备份,不运维
Kubernetes 集群备份主要是备份etcd集群。而恢复时,主要考虑恢复整个顺序:停止Kube-apiserver --> 停止etcd --> 恢复数据 --> 启动etcd --> 启动kube-apiserver。
2024-04-22 19:55:02
694
原创 巧用 shell-operator 配置 K8s Pod 保护策略
Shell-operator 是一个在 Kubernetes 集群中运行事件驱动脚本的工具。该操作器不是针对特定软件产品的操作器,例如 prometheus-operator 或 kafka-operator。Shell-operator 通过将脚本视为由事件触发的钩子,提供了 Kubernetes 集群事件和 Shell 脚本之间的集成层。您可以将其视为 operator-sdk,但用于脚本。
2024-04-22 19:49:04
691
原创 Linux 性能基准测试工具及测试方法
上篇文章 todo ,给我们的经验教训,就是上线前,基准测试的重要性,这篇文章着重介绍一下「Linux 性能基准测试工具及测试方法」还是老规矩,先请性能领域的大师布伦丹·格雷格(Brendan Gregg)登场 👏👏👏整理测试指标如下图测试环境说明: CentOS7, 4c8g。
2024-03-04 19:56:21
557
原创 什么?相同型号物理机 容器性能不如虚拟机?
CPU-动态节能技术cpufreq 是一个动态调整 CPU 频率的模块,可支持五种模式。为保证服务性能应选用 performance 模式,将 CPU 频率固定工作在其支持的最高运行频率上,从而获取最佳的性能,一般都是默认 powersave,可以通过 cpupower frequency-set 修改。# 查看当前 CPU 性能模式# 查看当前 CPU 使用频率# 综合查看方式# 设置为 performance 模式。
2024-03-04 19:54:53
1074
原创 SRE学习路线
(Site Reliability Engineering)站点可靠性工程是一种结合软件工程和运维运营原则的角色和方法论,旨在在系统、服务或产品的设计、开发、部署和运维过程中,采取一系列措施来确保其持续稳定运行、可靠性和可用性。欢迎订阅我的公众号「SRE运维进阶之路」或关注我的 Github https://github.com/clay-wangzhi/wiki 查看最新文章。💡 SRE 主要工作是保障稳定性,稳定性就是不出故障,围绕着故障周期,整理出 SRE 稳定性保障体系。
2024-03-04 19:54:07
470
原创 使用ChatGPT进行百度SRE岗面试复盘
做SLO 的指标标准是怎么来的, 比如某个SLI 达到多少是异常 , 大于500ms是异常,这个是怎么评估的?tracing 怎么做的?
2024-03-04 19:53:13
792
原创 K8s 一条默认参数引起的性能问题
应用性能问题,放到一边,在 K8s 层面,有坑需要我们额外注意enableServiceLinks 参数 默认为开启状态,但是大多数情况我们是不需要的,笔者建议统一关闭,有 DNS 的情况下,没多大用途,也有相关 issue 提出将 enableServiceLinks 默认值改为 false如果不需要服务环境变量(因为可能与预期的程序冲突,可能要处理的变量太多,或者仅使用DNS等),则可以通过在 pod spec 上将 enableServiceLinks 标志设置为 false 来禁用此模式。
2024-03-04 19:51:53
776
原创 云原生实践总结
自动化运维平台(面向开发):容器生命周期管理、Ingress 生命周期管理、HPA 生命周期管理、扩缩容&升降配、容器资源预留、Java Dump & GCLog、屏蔽/恢复告警。SRE 平台(面向运维):集群安装、集群扩缩容、集群升级、插件安装、Ingress 节点扩缩容、Web Kubectl、集群自动化巡检、多集群迁移。发布系统(面向开发):Java/Nodejs/静态资源模版、自定义镜像、自定义模版、滚动发布、灰度发布、启动日志查看。应用从 KVM 迁移到 容器 后,资源利用率为何发生变化?
2024-01-21 18:22:34
966
原创 云原生落地实践
CPU节流是一种资源调度的现象,当一个进程或任务需要的CPU资源超过了其分配的CPU配额时,操作系统或虚拟化管理程序会限制其对CPU的使用,从而导致其性能下降。这种限制是为了平衡系统中各个进程或任务之间的资源使用,防止某个进程过度使用CPU而影响其他进程的正常运行。在Linux系统中,CPU节流通常是由CFS(Completely Fair Scheduler,完全公平调度器)实现的。CFS是Linux内核默认的调度器,用于公平地分配CPU时间片给各个运行中的进程和线程。
2023-12-04 20:47:27
56
原创 容器化后无损上下线解决方案
应用上下线关注啥,可灰度,可观测性,可灰度,第一阶段完成后,我们将更加关注流量的无损发布,本文详解无损发布的具体解决方案
2023-11-20 20:51:18
61
原创 Etcd 故障排查
auto-compaction-retention=1000 保留近1000个revision,每5分钟自动压缩 ”latest revision” - 1000。,需要升级 ETCD 集群的空间(默认为2G的磁盘使用空间),或者压缩老数据,升级空间后,需要使用 etcd命令,取消此报警信息,否则集群依旧无法使用。etcd默认的空间配额限制为2G,超出空间配额限制就会影响服务,所以需要定期清理。quota-backend-bytes 设置etcd最大容量为8G。查看ETCD集群报警情况。
2023-06-23 14:10:51
377
原创 #Etcd 监控
完成集群部署、了解成员管理、构建好监控及告警体系并添加好定时备份策略后,这时终于可以放心给业务使用了。Grafana 大盘: https://github.com/clay-wangzhi/grafana-dashboard/blob/master/etcd/etcd-dash.json。参考ServiceMonitor和EtcdBackup机制,同样可以通过CRD的方式描述此巡检任务,然后通过相应的Operator实现此巡检任务。新增 etcd secret。
2023-06-21 20:48:18
114
原创 评估 Etcd 性能及可靠性
来评估存储 I/O 性能, 该指标记录了 WAL 文件系统调用 fsync 的延迟分布,当 99% 样本的同步时间小于 10 毫秒就可以认为存储性能能够满足 etcd 的性能要求。,发现3节点集群,在停止一个 etcd 节点的 etcd 进程后,其他 etcd 节点能够顺利接管其工作,确保 Kubernetes 集群的正常运行。SLO(Service Level Objective):服务等级目标,指的就是我们设定的稳定性目标,比如“几个 9”这样的目标。最后 source 生效。给定较高的磁盘优先级。
2023-06-20 20:44:39
414
原创 Etcd 高可用故障演练
通过本次演练,我们验证了 Kubernetes 的 etcd 子系统的高可用性,并了解了在一个节点发生故障的情况下,其他节点是如何接管其工作的。在实际生产环境中,我们建议对 Kubernetes 集群的 etcd 子系统进行高可用性测试,以确保集群能够稳定、可靠地运行。此外,我们还应定期检查 Kubernetes 集群的各个组件状态,确保其正常运行,避免出现故障导致的服务中断。
2023-06-19 22:34:15
147
原创 Etcd 概述
Etcd 是 CoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于 Go 语言实现。名字由来,它源于两个方面,unix的“/etc”文件夹和分布式系统(“D”istribute system)的D,组合在一起表示etcd是用于存储分布式配置的信息存储服务。
2023-06-18 23:18:07
379
原创 Prometheus Operator 安装配置
首先Prometheus整体监控结构略微复杂,一个个部署并不简单。另外监控Kubernetes就需要访问内部数据,必定需要进行认证、鉴权、准入控制,那么这一整套下来将变得难上加难,而且还需要花费一定的时间,如果你没有特别高的要求,还是建议选用开源比较好的一些方案。在k8s初期使用Heapster+cAdvisor方式监控,这是Prometheus Operator出现之前的k8s监控方案。
2023-02-05 00:34:28
682
原创 卸载 rancher 导致 node 被清空
操作类似的 k8s web 管理平台,尤其删删除卸载时,务必小心,没有把握不要操作,网上的脚步慎用,最好用官方提供的卸载方式,恰巧当时 rancher 官方的卸载方式好久没有维护了,说多了都是泪。由于当时没有排查出来问题,当时批量重启了服务器,自动拉起 kubelet 重新注册 node,故障恢复。node 被清空前,查看 history,发现有卸载 rancher 的操作,很可疑,调查发现,rancher 自定义crd。为空),导致集群瘫痪,但实际上节点对应的宿主机都还在。集群的节点突然全都不见了 (
2023-02-05 00:32:43
327
原创 lvs 健康检查 k8s apiserver
apiserver前面如果有lvs做高可用,lvs对apiserver做健康检测要注意不能使用tcp check,否则会触发报错。
2023-02-05 00:31:48
187
原创 IT博客写作工具
<h2 id="写作前">写作前</h2><h3 id="trello">trello</h3><p>官网地址:<a href="https://trello.com/">https://trel
2020-07-30 11:38:23
510
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人