自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 go语言教程(全网最全,持续更新补全)

go语言入门教程,十分详细

2025-05-08 16:40:16 851

原创 最硬核DNS详解

DNS(域名系统)是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS协议基于UDP协议,使用端口号53。域名服务器在DNS体系中扮演着不同的角色,根据其功能和位置可以分为几种类型。nslookup: 可以简单查询域名对应的IP。常用的类型有 A记录、CNAME记录。dig可以显示更详细的指标。

2025-03-06 15:39:44 726

原创 llamafactory大模型微调教程(周易大模型案例)

在模型训练过程中,"loss值"指的是损失函数(Loss Function)计算出来的结果,它是衡量模型预测值与真实值之间差异的一个指标。损失值越小,意味着模型的预测结果与实际数据之间的误差越小,模型的表现就越好。LLaMA-Factory/data/ 下面有很多数据格式demo,我们参考这种的就行alpaca_zh_demo.json。基础模型:Qwen2.5-1.5B-Instruct。工具:llamafactory。操作系统:ubuntu 20。GPU:四张4090。

2025-03-06 08:58:45 539

原创 最硬核k8s网络插件详解(flannel)

Flannel 是一个轻量级、易于配置的网络插件,旨在简化 Kubernetes 集群中 Pod 网络的管理。Flannel 的核心功能是提供一个虚拟的网络,允许每个 Pod 获取一个独立的 IP 地址,并实现不同节点间的 Pod 之间的通信。

2025-02-21 11:13:45 610 1

原创 全网最全skywalking实战教程(持续更新)

docker-compose.yml 如下(这个是根据官方提供的yml修改的)访问WEB UI http://127.0.0.1:8080。2.用fastapi编写一个demo。2、启动时指定-javaagent。2、查看请求调用链路情况。1、下载agent包。

2025-01-02 17:30:12 485

原创 k8s service如何实现流量转发

对于每个后端 Pod,kube-proxy 都会为其创建一个 KUBE-SEP-* 链(Service Endpoint 链),这些链中的规则负责将目标地址转换为对应 Pod 的 IP 和端口。在 NAT 表中的 PREROUTING 链和 OUTPUT 链(用于本节点流量),创建规则来匹配目标 IP 为 app1 服务的流量,并引导到一个服务链,如 KUBE-SVC-XXXXXX。目前k8s上创建一个service指向后端 3副本的 deployment,具体是如何实现流量转发到pod的。

2024-09-11 11:36:11 1663

原创 prometheus高可用解决方案(VictoriaMetrics )

数据去重的目的是处理多个 Prometheus 实例同时采集同一组指标数据的情况,防止在查询时出现重复的时间序列。在使用 VictoriaMetrics 时,数据去重通常是在查询时进行的,而不是在写入时。VictoriaMetrics 支持通过配置标签的方式来实现数据去重,从而保证在从多个 Prometheus 实例收集数据时,查询结果不会出现重复数据。VictoriaMetrics 可以从多个 Prometheus 实例接收数据,并根据配置进行去重,确保数据的一致性;配置远程写入(两个节点都要配置)

2024-08-19 17:12:51 1311

原创 redis内存溢出排查

记录一次生产环境redis内存排查

2024-08-16 15:16:19 753

原创 mysql服务器CPU利用率过高排查

监控平台告警mysql服务器CPU利用率过高。当时第一反应是平时的CPU利用率一直都在50%以下,怎么会突然过高呢?怀疑是有某些sql语句导致的。总结:通过利用率过高的mysql线程id找到 对应的执行sql ,然后通过EXPLAIN去优化查询语句。记录高CPU利用率的线程ID,例如:12345。2、使用top查找高CPU利用率的线程ID。看到有一条长sql执行了2min还没结束。结论:是这条sql导致的CPU利用率过高。1、通过ps命令查找mysql进程ID。3、找到线程对应的sql语句。

2024-07-16 11:23:13 901

原创 全网最全linux文件存储原理(文件删除空间不释放排查)

linux文件存储原理、文件删除原理

2024-01-25 10:49:42 657

原创 基于jenkins+k8s实现devops

由于jenkins运行在k8s上能够更好的利用动态slave进行构建。所以写了个部署教程,亲测无坑

2023-09-20 10:17:08 1324 1

原创 kubernetes-operator开发教程(基于kubebuilder脚手架)

Operator是什么?Kubernetes Operator是一个自定义控制器,用于通过自动化操作来管理复杂应用或服务。实现原理是什么?Kubernetes Operator的实现原理基于自定义控制器(Controller)和自定义资源定义(CRD)。

2023-09-11 17:13:17 2543 4

原创 alertmanager告警存储方案

背景:由于alertmanager没有历史告警存储功能。在工作中我们可能需要 收集历史告警信息进行数据分析,找到系统的瓶颈,从而提高稳定性。实现方法:go语言写一个 针对alertmanager的webhook 程序。收集告警信息进行过滤然后存入es中。

2023-07-12 11:26:44 659

原创 Argo CD 教程(gitee+ ArgoCD + Argo-rollouts +k8s 实现devops灰度发布)

Argo CD 教程(gitee+ ArgoCD + Argo-rollouts +k8s 实现devops灰度发布)

2022-06-30 10:24:45 3639

原创 挑战全网最全之django REST framework(DRF)教程

一、认识DRF1、restful简介在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。restful是一种后端API接口规范1.1 http动词对于资源的具体操作类型,由HTTP动词表示。常用的HTTP动词有下面四个(括号里是对应的SQL命令):GET(SELECT):从服务器取出资源(一项或多项)。POST(CREATE):在服务器新建一个资源。PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

2022-04-26 17:30:22 38992 4

原创 docker-compose一件部署prometheus生态(新增VM远程存储方案)

背景:由于to G项目大部分是私有化交付的,所以监控软件必须部署在内网。为了减少部署成本,决定采用docker-compose+docker 进行一键部署。即使是不懂docker的运维人员,也能通过简单的命令进行部署。介绍:prometheus+alertmanager+grafana+consul+node-exporter。2、将相应配置文件从容器中拷贝出来本机(prometheus、alertmanager)对应的文件挂载请自行创建。

2022-02-22 09:40:55 3218

原创 vGPU虚拟化方案

vGPU(虚拟 GPU)技术通过将物理 GPU 虚拟化,分配给多个虚拟机或容器使用,以提高资源利用率和灵活性。常见的 vGPU 方案包括 Time-Sliced、MIG 和 HAMI,它们在资源分配方式、隔离性和性能开销上各有特点。对于英伟达 A 卡或 H 卡,推荐使用 MIG 方案,因其性能高、安全性强且可靠。MIG 方案的具体操作包括启用 MIG 模式、创建 GPU 实例(GI)和计算实例(CI)、更新 Kubernetes GPU 插件以及为 Pod 分配 MIG 资源。通过这些步骤,用户可以在 Ku

2025-05-13 15:31:06 252

原创 大模型基础知识扫盲(持续更新)

吞吐量:输入分成 4 个 micro-batch,GPU 1 算完第一个 batch 的 1-6 层后传给 GPU 2,自己马上算第二个 batch,4 个 GPU 同时工作,像流水线一样连续输出结果。:大模型量化是一种“压缩”技术,把模型里高精度的数字(比如32位浮点数)简化成低精度的数字(比如8位定点数)。:大模型蒸馏是一种“传授”技术,把一个复杂的大模型(老师)的知识“教”给一个简单的小模型(学生)。:让小模型模仿大模型的输出(比如预测结果或概率),通过训练学会大模型的“精华”,但用更少的参数。

2025-04-10 16:22:32 468

原创 Mysql MIC高可用集群搭建

MySQL InnoDB Cluster(MIC)是基于 MySQL Group Replication(MGR)的高可用性解决方案,结合 MySQL Shell 和 MySQL Router,提供自动故障转移和读写分离功能,非常适合生产环境。

2025-04-02 11:41:30 332

原创 docker部署nacos(mysql)

1、先启动一个nacos临时容器,把sql初始化脚本拷贝出来。

2024-12-02 10:07:39 354

原创 fastapi实现vllm离线推理

本次案例 vllm 结合 transformers 的 AutoTokenizer 来加载本地模型进行推理。支持异步流式返回生成的文本优化后的代码示例:import loggingfrom fastapi import FastAPI, HTTPExceptionfrom fastapi.responses import StreamingResponsefrom pydantic import BaseModelfrom vllm import LLM, SamplingParamsfrom

2024-11-25 10:16:15 942

原创 k8s证书更新

k8s证书更新

2024-08-28 18:00:32 478

原创 python异步调用ansible sdk

最近有个需求,运维平台(python+vue开发的)需要做一个批量任务功能,打算采用ansible_runner这个sdk去实现。选型:由于在生产中我们往往需要并发执行多种任务,且需要实时观测执行的进度,所以采用run_async方法做开发。功能需求:前端选择 需要执行的playbook,选择需要执行的主机,然后运行任务,并且实时返回结果。run_async:异步执行,调用该方法后不会阻塞,playbook 会在后台运行;run: 同步执行,调用该方法后会阻塞,直到 playbook 执行完成;

2024-07-29 14:17:13 458

原创 k8s pod内存驱逐问题解决

pod内存驱逐问题排查

2024-06-24 09:22:14 672

原创 如何优化高并发TCP链接中产生的大量的TIME_WAIT的状态(nginx)

在 TCP 连接的生命周期中,TIME_WAIT 是连接终止过程中的一个状态TIME_WAIT 状态有两个主要目的:1、确保最后一个 ACK 包的可靠传输2、允许旧的重复数据包消失。

2024-06-13 16:39:02 816 1

原创 Coredns搭建DNS服务

CoreDNS 是一个灵活、可扩展的 DNS 服务器,常用于 Kubernetes 环境中,但也可以在其他场合单独部署。

2024-05-09 17:54:05 1799 1

原创 mysql主从复制教程

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库。

2024-01-10 16:44:54 489

原创 k8s pod网络排查教程

k8s pod网络排查(nsenter)

2023-12-19 16:38:47 1266

原创 五分钟搞懂python生成器迭代器

生成器和迭代器都是Python语言中的重要概念。由于这两个概念比较抽象,但看文字比较难理解,所以本次我将概念和案例结合在一起,这样能够更好得搞懂这些知识点。

2023-09-19 12:05:13 300

原创 linux 编译部署python环境

由于开发环境可能需要用到多个python版本。rpm,dpkg安装不好管理,容易照成版本混乱。所以这里采用编译部署。如果需要下载其他版本python环境, 该方法同样试用。

2023-09-15 09:35:27 302

原创 Linux三剑客看这一篇就够了(awk、sed、grep)

linux三剑客详解

2023-07-04 17:13:35 192

原创 基于loki的日志收集方案

基于loki的日志处理方案

2023-06-01 14:57:17 2237

原创 基于django实现RBAC权限管理

思路:自己写一个权限类集成PermissionRequiredMixin,然后根据请求的方法和用户的权限做比较。例如 用户发送POST ,就判断用户是否对该对象有add 的权限。背景:网上看了一些django rbac的实现文章,感觉弄得比较麻烦。没有django自带的那套权限管理利用起来。所以就自己写了一套。优势:可以基于django用户管理快速实现rbac。缺点:颗粒度不够,无法限制到单个对象。

2023-04-09 11:09:56 734

原创 LVM底层原理(生产故障排查)

基本上,LVM 最主要的用处是在实现一个可以弹性调整容量的文件系统上, 而不是在创建一个效能为主的磁碟上。如果使用交错模式,要注意,当任何一个分区损坏时,所有的数据都会“损坏”。如果要强调性能与备份,那么就直接使用 RAID 即可,不需要使用 LVM。背景:之前在生产上遇到磁盘空间充足但是无法写入的情况,后面深入了解了LVM存储的一些原理,因此记录一下。存储架构 : 虚拟化存储平台 ——> 虚拟机(多块磁盘制作LVM)扩展: LVM架构下的存储,数据是怎么写进LV的?3、虚拟化平台存储分配原理。

2023-02-21 12:28:19 345

原创 jenkins-pipeline集成sonarqube代码扫描

背景:jenkins-pipeline集成sonarqube代码扫描,根据代码检测的状态去判断是否继续执行流水线环境:jenkins插件:可根据执行报错自行下载(主要是我也忘了,操作很简单)注意:具体安装可看devops专栏,docker-compose一键部署jenkins-pipeline

2022-12-06 11:36:37 1092 2

原创 docker-compose部署sonarqube(亲测无坑,生产案例)

为了简单高效地部署及管理sonar,决定采用docker-compose版本进行部署。亲测无坑,因为坑以及被我踩完了

2022-11-29 11:17:26 3710 1

原创 docker部署jenkins(生产实战,亲测无坑)

docker-compose部署jenkins(生产实战,亲测无坑)

2022-11-25 15:27:50 1219

原创 ELK体系部署文档(elk+filebeat+redis)

elk部署(elk+redis+filebeat)

2022-11-07 15:05:03 784

原创 研发merge请求合并代码触发检测(gitlab + jenkins)

背景:为了能够提升代码质量,减少测试同学的工作,打算在开发请求合并分支的时候进行代码检测,如果检测不通过,审核人无法点击merge合并代码。项目分支准备: dev 、main (研发开发好代码上传到dev, 然后申请合并到main)如果流水线构建失败,则处理人无法合并代码,无法显示merge按钮。修改dev分支代码,然后发起请求合并至main。(2) 配置 如果流水线时间失败无法合并代码。(2) 创建流水线,配置触发器。(1) 配置项目webhook。1、配置jenkins。2、配置gitlab。

2022-11-04 17:57:26 4273 2

原创 quota用户磁盘配额

quota可以限制用户对磁盘的使用情况。

2022-11-02 11:57:15 278

centos-node-exports.gz.tar

生产环境ansible 批量部署node_exporter,并通过api注册到consul

2021-08-17

空空如也

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

TA关注的人

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