自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入理解Kubernetes:CNI源码解析

CNI(容器网络接口)规范为容器运行时和网络插件之间提供了一个通用的接口,旨在实现容器网络配置的标准化。网络配置的格式:定义了管理员如何定义网络配置。请求协议:描述了容器运行时如何向网络插件发出网络配置或清理请求。插件执行过程:详细阐述了插件如何根据提供的配置执行网络设置或清理。插件委派:允许插件将特定功能委托给其他插件执行。结果返回:定义了插件执行完成后如何向运行时返回结果的数据格式。

2024-06-24 22:27:38 460

原创 体验用AI写代码

近两年,AI确实迎来了大爆发,2023年也成了AI时代的元年,去年下半年的时候,国内月之暗面出品的Kimi成了新的AI热门,也体验用Kimi修改论文,以及用图片生成代码,代码准确度还是蛮高的。Excel文件成功生成,代码运行成功,但生成内容不全,但已经很不错了,只需微调一下nmap命令参数即可,当然也可以聊天的方式让Kimi自己修改,但不管哪种方式,比之前纯手写速度和准确率都大大提升。Kimi的生成速度很快,相应速度在一分钟以内,还是很不错的。

2024-04-30 13:28:12 232

原创 Jenkins集成Terraform实现阿里云CDN自动刷新

在互联网业务中,CDN的应用已经成了普遍,SRE的日常需求中,CDN的刷新在前端需求逐渐中占了很大比例,并且比较琐碎。做为合格的SRE,把一切自动化是终极使命,而今天就分享通过Jenkins+Terraform实现阿里云的CDN自动刷新,给大家提供一个自动化思路。

2024-04-24 13:30:13 639 2

原创 深入理解Kubernetes:kube-scheduler源码解析

Kubernetes的调度器(kube-scheduler)是整个系统中至关重要的组件,它负责将待调度的Pods分配到合适的节点上。本文将深入分析kube-scheduler的源码,揭示其内部工作机制。

2024-04-23 22:10:15 866

原创 Kubelet源码解析:深入理解Kubernetes节点的运行时

Kubelet作为Kubernetes节点的核心组件,其设计体现了Kubernetes的设计理念:模块化、插件化和可扩展性。通过深入分析Kubelet的源码,我们可以更好地理解Kubernetes节点的运行机制,以及如何定制和扩展Kubelet以满足特定的需求。

2024-04-23 17:59:30 434

原创 多云管理之Terraform

问题2:公有云本质上是商业属性,因各自的产品及机房节点布局差异,单个公有云很难完全满足业务需求,但各个云商的一些壁垒限制,多云资源的管理成本又变的较高,尤其是自动化的开发适配成本。Terraform的出现有效的解决了上述问题,它的理念是基础设施即代码,允许用户通过编写代码的方式构建、变更和版本化云基础资源,下面我们先谈谈Terraform的优势。站在SRE的视角,公有云的兴起及大规模普及应用,解决了过去一直无法根本解决的成本和资源快速扩展问题,但同时又衍生出了新的问题。

2024-04-23 14:32:27 295

原创 Kubernetes v1.30版本相关升级

如果你需要对API请求进行复杂的授权检查,你可以定义一个结构化的授权配置,其中包含多个webhook,并为每个webhook定义特定的验证规则。如果你有一个多容器Pod,其中一个容器特别消耗CPU资源,而另一个容器消耗很少,你可以设置基于该特定容器的资源使用情况来自动伸缩Pod的数量,而不是基于整个Pod的资源使用情况。如果你需要运行一个Pod,并且希望它在Linux用户命名空间中运行,以提高安全性和隔离性,你现在可以在Pod配置中指定用户命名空间,从而确保Pod在一个受限的环境中运行。

2024-04-03 10:21:40 394

原创 Kubernetes应用之PodDisruptionBudget

创建一个YAML文件,定义PDB的规格,包括最小可用Pod数量、最大不可用Pod数量以及选择器。

2024-04-01 12:46:02 528

原创 如何判断虚拟机是否存在超卖

最近有小伙伴反馈部署在公有云上的服务总是会时不时的出现延迟问题,在排除了代码问题后,将怀疑目光朝向了云主机,因为在测试环境相同配置的物理机上进行模拟压测,性能完全可以满足,所以怀疑云主机是不是超卖了,咨询有什么方法可以证明。

2024-03-20 22:14:02 399

原创 Kubernetes管理GPU

历史原因,容器技术设计之初,人工智能还未得到真正的应用,所以容器设计的侧重点主要在于隔离性和可移植性,随着OpenAI的横空出世,机器学习迎来了井喷发展,GPU因其出色的计算能力更是得到了更大规模的应用。而作为目前最主流的云原生平台,如何管理GPU资源,对Kubernetes显得越发重要。

2024-03-18 21:15:14 862

原创 Kubernetes选举机制剖析

如果其获取资源锁失败,会通过return等待下一次定时获取资源锁。首先,通过le.config.Lock.Get函数获取资源锁,当资源锁不存在时,当前节点创建该key(获取锁)并写入自身节点的信息,创建成功则当前节点成为领导者节点并返回true。2、key(分布式锁)不存在时:多节点中的一个节点成功创建该key(获得锁)并写入自身节点的信息,获得锁的节点被称为领导者节点,领导者节点会定时更新(续约)该key的信息。候选节点获取不资源锁,它不会退出并定时(默认值为2秒)尝试获取资源锁,直到成功为止。

2024-03-13 22:36:32 946

原创 Rancher错误信息Bug解决

这个问题是Rancher 2.6.12、2.6.13版本出现的日志输出Bug,并不致命,2.7.x系列版本后已经进行了修复,但已经出现的问题却无法通过升级版本解决(即使升级版本后,已出现的错误信息依然存在),那么该如何消除错误报错呢?w()”,找不到问题根源,如下图。找到错误信息的字段位置,将 status: 'False'改成status: 'True',并且将error错误信息删除,执行wq保存,错误信息即消除。

2024-03-12 22:24:14 545

原创 localhost和127.0.0.1的区别

日常开发或者测试中,我们经常会遇到两个特殊的地址:localhost和127.0.0.1,这两个地址都用于指向本地的服务,但它们之间存在一些细微的区别。

2024-03-05 18:48:33 444

原创 RocketMQ消费端报错问题小记

消费端启动报错:broker response code: 22, remarks: Not found, V3_0_6_SNAPSHOT maybe this group consumer boot first。新的消费组加入已有TOPIC,无法获取消费进度导致该报错。

2023-12-01 21:55:01 203

原创 Redis修改密码方法

修改redis.conf文件,注释user defalt字段,然后重启redis集群。1、修改redis.conf和sentinel.conf。6.2.4版本哨兵模式修改密码不生效,并且集群选举失败。4、启动slave节点和哨兵服务。1、修改redis.conf。3、重启master节点。1、关闭slave节点。2、关闭所有哨兵服务。

2023-12-01 21:51:47 3368

原创 Elasticsearch设置密码方法

单点ES的步骤相对与集群更加简单,只需集群步骤的4、5、6步骤即可,其中第四步骤的elasticsearch.yml只需要配置三项即可,如下。集群期间会存在中断不可用,待集群恢复后,再次请求ES地址,会提示需要输入用户名密码,此时再次进入ES主节点,进行密码配置。1、修改elasticsearch.yml,注释xpack.security.enabled: true,保存退出。2、重启elasticsearch,恢复不用密码访问,重启步骤参考上面步骤。3、启动成功后,删除.security-7索引。

2023-12-01 21:50:41 1168 1

原创 Nightingale部署方案

另外ibex的agent也合并至了categraf,categraf也支持远程执行脚本,执行请求路径为n9e --> ibex server --> categraf。监控告警体系一直是运维工作的重中之重,万物无定型,技术的选择也是遵循这个道理,在综合当前公司的实际情况下,国产监控热门只选Nightingale就自然而然的成为了最佳的选择。当前公司服务大部分运行在IDC机房中,并且存在多个机房,也有部分云服务,部署方式既有主机部署的、Docker部署的,也有部署在K8S集群中的,情况复杂多样。

2023-12-01 21:49:20 388 1

原创 Docker安装使用

【代码】Docker安装使用。

2023-12-01 21:25:42 34 1

原创 SRE实践之SLI/SLO设定

在监控实践中,反映一个问题所需要的指标,往往是不超过三个,我们在针对用户不能下载的表现监控上,经过广泛讨论,分别对相关核心接口进行站点监控,主要监控延迟及5xx错误,对核心中间件消息队列进行监控,主要监控分钟内有多少排队,对服务进行健康监控,是否正常状态。比如在过往真实经历中,因各种原因,同一个服务的多个服务器规格不一,又因每个服务器的数据量存在变数,在对相关硬盘容量进行监控的时候,不管是按照百分比还是其它方式,结果总是要么数据迁移不及时导致数据丢失,要么陷入频繁的无效告警。

2023-08-28 14:27:34 178 1

原创 Golang之空结构体

空结构体是指没有任何字段的结构体,格式为struct{},一般定义有两种方式。

2023-05-23 15:10:15 322

原创 回顾过往:谈工程效能

工程效能一词最早来源于上个世纪的工业领域,核心要旨是在增加生产效率,不曾想在百年后的今天在互联网领域又被频繁使用,并且成为了SRE工作中极其重要的一项。从软件架构的角度上,回顾过去工作经历,大体经历了三个阶段:单机结构、分布式结构、微服务结构。

2023-04-06 15:05:31 201

原创 用Golang写一个OAuth2服务端

/ 在 MySQL 中创建表结构`)if err!= nil {

2023-04-04 16:23:33 906

原创 Golang之channel讲解

总之,Go语言中的channel是一种用于在goroutine之间进行通信和同步的机制,可以避免共享内存的问题,从而使并发编程更加简单和安全。其中,data_type是channel中传输的数据类型,ch是创建的channel变量。可以将channel作为参数传递给goroutine,它们可以同时读写channel,从而实现数据的交换和同步。Channel可以避免共享内存的问题,从而避免了多线程之间的竞争和死锁等问题,使得并发编程更加简单和安全。其中,ch是channel变量,data是接收到的数据。

2023-03-27 08:28:18 305

原创 监控实践之华为云WAF监控数据接入Prometheus

程序代码import ("os""time"// 配置文件结构体// WAF监控项数值结构体// WAFExporter结构体// 华为云认证/WAF客户端/时间戳变量定义var (ak = sk = Build()Build())// 读取配置文件if err!= nil {panic(err)// 获取WAF监控相关指标数据},},},},} else {} else {} else {// 初始化exporter。

2023-03-25 10:13:26 583

原创 云原生下一个程序的生命周期

由项目人员牵头,业务、产品人员输入产品文档,与研发、测试人员沟通业务需求,确定程序的功能、特点,并由研发人员输出开发文档,测试人员输出测试方案文档。这一切都可以做到自动化完成,即服务上线后,自动接入日志、监控等系统,自动具备故障监测及弹性伸缩能力,但前提是程序遵循相应的技术规范。测试人员依照测试文档对程序进行功能、安全、性能等测试,做好容量规划,待一切验收合格,进行正式上线,必要的服务还要进行灰度测试。根据用户反馈或业务调整,对程序进行维护更新,修复程序Bug,更新程序功能,提升用户体验。

2023-03-24 17:06:22 64

原创 SRE实践之弹性伸缩

做好Pod的容量规划,设置合理的Request和Limit(差值不要大于20%),依据服务特性做好归类,为后续节电池的规划提供依据。对波峰不明显但核心的服务(如网关服务),设置相应的弹性伸缩策略,副本数下限为当前峰值数量,目的应对未知的流量,保障服务高可用。依据Pod的归类,规划出节电池,并通过监控分析选出早晚峰值落差大的典型服务,讨论并测试Pod伸缩指标、阈值、副本数等。规划节点池的伸缩策略,在设计的时候要考虑伸的相应时间是否可以及时,缩的释放是否对服务有影响。下限:2 (保障最小的高可用)

2023-03-20 16:24:21 70

原创 SRE实践之成本优化

通过对账单数据的统计、分析,可以归纳出费用的占比、走势,再结合对业务的洞察能力,可以察觉出异常的费用支出,并有针对性的进行成本优化。而常见的公有云均有完善的账单系统,我们在实际中也可以研发自己的账单系统,方便统计分析。所有服务已经完成容器化改造,纳入Kubernetes管理,并已建设完成一定的自动化体系,但从费用账单上分析,成本虽有降低,但依然有潜力可挖,在此背景下继续对成本进行优化。准确有效的监控数据,可以帮助我们清楚的了解当前资源的使用情况及特点,并有针对性的调整资源配置,提高资源利用率。

2023-03-20 15:36:01 115

原创 云原生下监控体系建设

随着公有云及Kubernetes的快速普及,监控在自动化运维体系中的作用也愈发重要,但在新的技术体系下面,该如何做好监控,除了技术选型层面的考量,更要结合自身业务形态、组织架构、技术环境、体量规模等因素,提炼出适合自己的监控体系。

2023-03-20 14:45:53 221

原创 迁移实践之Kafka

通过扩种/缩减集群节点,以及Kafka自带的迁移功能,将旧节点数据迁移至新节点。

2023-03-14 10:04:08 889

原创 迁移实践之TiDB

首先利用BR工具进行全量备份,备份方式选择备份在NFS磁盘上,此处注意一定要是共享盘,即多个节点挂载一个NFS磁盘,备份完成后,将备份目录拷贝至新建TiDB集群下的NFS盘下,然后在新的TiDB集群下执行恢复动作。

2023-03-14 09:04:32 135

原创 迁移实践之Zookeeper

集群迁移比单点迁移集群更加简单和平滑,安装部署问题不再重复,参考上,主要赘述步骤。

2023-03-13 16:20:22 594

原创 多kubernetes集群下Jenkins发布

在实际生产工作中,多个kubernetes集群是常态的情况,当遇到跨云厂商或者跨地区,Docker镜像仓库是一个必须要面临解决的事项,根据不同Docker镜像方案,Jenkins也存在不同的解决方案。

2023-03-13 15:58:08 173

原创 Kubernetes下Jenkins安装及配置

登录Jenkins后,安装kubernetes插件,然后点击配置管理 --> 系统配置 --> 新增cloud

2023-03-13 15:39:54 680

原创 接口方式实现业务指标统计CDN数据

按天粒度分析阿里云所有域名的CDN日志,按文件后缀区分业务,统计流量占比、总流量、PV。

2023-03-13 15:05:49 311

原创 如何建设自动化运维体系

自动化运维体系的建设其实是一个标准化的建设,并非是一个单纯的技术问题,而是需要结合业务特点、组织架构、技术体系等因素。

2023-03-13 14:42:14 310

去除桌面快捷图标小箭头

一个小小的解决快捷图标的工具,希望能给大家一点帮助.

2011-05-19

空空如也

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

TA关注的人

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