- 博客(66)
- 收藏
- 关注
原创 zabbix企业级分布式监控环境部署
DBHost=192.168.10.108 # 数据库地址(与Server共用)Server=192.168.10.108 # 指向Zabbix Server。Server=192.168.10.108 # 被动模式指向Server。DBName=zabbix_proxy # Proxy专用数据库。Hostname=Zabbix_proxy # Proxy名称。检查Agent与Server/Proxy网络连通性。自动发现:网络设备、文件系统、网卡等。
2025-07-21 23:02:16
1156
原创 Kubernetes高级调度(初始化容器Initcontainer,临时容器Ephemeral Containers,自动扩缩容HPA)
pod2.yml:允许在带污点 check=mycheck 的节点运行60秒。:在应用容器启动前执行准备任务(如等待依赖服务、修改系统参数、下载配置)。# test06.yml:硬亲和性(必须与 pod05 在同一节点):您的 YAML 中未包含临时容器配置,因其是运行时动态添加的。# test09.yml:反亲和性(避免与 pod05 同节点)# init02.yml:修改系统参数(需特权模式)
2025-07-11 15:07:03
449
原创 Kubernetes存储入门教程
provisioner: hostpath.csi.k8s.io # 指定驱动reclaimPolicy: Delete # PV回收策略。
2025-07-09 16:57:22
965
原创 Kubernetes配置管理
ConfigMap/Secret挂载使用subPath避免覆盖目录通过items精细化控制文件生成设置mode控制文件权限环境变量注入envFrom批量注入整个配置集valueFrom按需注入特定配置项生产级部署要素命名空间隔离环境ConfigMap管理服务配置PersistentVolume持久化数据Liveness/Readiness探针保障可用性Secret管理敏感凭证镜像迁移使用脚本批量导出/导入镜像适应离线环境部署需求。
2025-07-08 20:22:12
599
原创 Kubernetes Ingress 服务发布进阶指南
v4.4.0+:移除对 Kubernetes 1.20-1.21 的支持v4.2.0+:默认使用 Alpine v3.16.1 基础镜像关键变更弃用Helm Chart必须使用替代传统注解新增 OpenTelemetry 集成支持建议:生产环境升级前用检查配置变更。
2025-07-07 16:56:32
681
原创 Kubernetes服务发布基础
externalTrafficPolicy: Local # 保留客户端源 IP,避免额外跳转。sessionAffinity: ClientIP # 基于客户端 IP 的会话保持。internalTrafficPolicy: Local # 内部流量优先本节点。timeoutSeconds: 3600 # 会话保持时间。- port: 8080 # Service 端口。targetPort: 8080 # 容器端口。配置 Selector。Pod 就绪状态 (
2025-07-04 12:12:32
753
原创 Kubernetes Pod调度基础
对于 Pod 管理,有专门的控制器来确保特定数量的 Pod 副本在运行,处理 Pod 故障、节点故障等情况。(例如滚动更新 - RollingUpdate)将 Pod 从旧的 RS 迁移到新的 RS(逐步停止旧 Pod,启动新 Pod)。Pod 是最小的可部署单元,可以包含一个或多个紧密耦合的容器(共享网络、存储、IPC 命名空间)。确保集群中符合条件的所有 Node 上都运行一个指定的 Pod 副本。默认情况下,Pod 按顺序创建(0, 1, 2...)、终止(逆序...2, 1, 0)、更新(逆序)。
2025-07-02 18:06:24
615
原创 Kubernetes Pod深度解析
在现实世界的应用中,一个应用功能通常由多个紧密协作的进程组成。例如:一个 Web 应用服务器(主进程)和一个日志收集器(Sidecar 容器)。一个文件处理程序和一个 FTP 服务器。一个主服务和一个数据同步助手。这些进程需要:一起启动、终止(或具有明确的启动/终止顺序)。在同一个“机器”上运行(共享网络、磁盘)。能够直接、高效地通信(localhost容器技术(如 Docker)最自然的模型是一个容器封装一个进程及其依赖。
2025-06-30 16:19:18
429
原创 Containerd容器技术详解
journalctl -u containerd -f # 实时日志。crictl pods # 查看 K8s Pods。crictl inspectp <ID> # 检查 Pod 网络详情。crictl pull nginx # 测试 K8s 环境拉取。nerdctl pull nginx # 测试加速是否生效。# 下载并安装(指定版本号,如 v1.27.0)管理 K8s 容器,避免混淆命名空间。# 修改 Containerd 配置。# 创建镜像加速配置。
2025-06-25 15:19:07
735
原创 OpenStack入门体验
yum downgrade leatherman-1.3.0-1.el7 # 必须降级,否则packstack失败。cat /root/keystonerc_admin # 查找OS_PASSWORD字段。最小配置:4核CPU/8GB内存/30GB磁盘(实验推荐16GB内存+4GB交换分区):虚拟机需启用Intel VT/AMD-V功能(VMware设置中勾选虚拟化引擎)packstack --allinone # 成功后输出登录URL和密码文件路径。# 1. 配置本地YUM源(示例使用FTP)
2025-06-19 00:34:41
540
原创 Linux的KVM高级功能部署
在 <disk> 段添加: <driver name='qemu' type='qcow2' cache='none'/># 在 <disk> 段添加: <driver name='qemu' type='qcow2' cache='none'/>echo 200 > /sys/kernel/mm/ksm/sleep_millisecs # 默认值 20ms。echo 1000 > /sys/kernel/mm/ksm/pages_to_scan # 默认值 100。| NFS 存储服务器 |
2025-06-18 01:10:58
710
原创 部署KVM虚拟化平台
sudo usermod -aG libvirt $(whoami) # 将用户加入libvirt组。egrep -c '(vmx|svm)' /proc/cpuinfo # 返回值 >0 即支持。grep -E 'vmx|svm' /proc/cpuinfo # 确认具体标志。: 推荐SSD,空间≥50GB(建议使用LVM或qcow2格式)支持硬件虚拟化(Intel VT-x / AMD-V): 建议≥8GB(根据虚拟机需求增加)-- 在虚拟机XML中添加 -->: 图形化管理工具(可选)
2025-06-16 19:50:03
895
原创 ELK日志采集系统
例如:Web服务器日志(Nginx, Apache)、应用日志(Java, Python, Node.js)、系统日志(Syslog)、数据库日志、网络设备日志、安全设备日志、容器日志(Docker, Kubernetes)、云服务日志等。它接收来自各种来源(如 Beats、消息队列、文件、TCP/UDP 端口)的数据,对数据进行解析、转换、丰富、过滤,然后将其发送到“存储”目的地(通常是 Elasticsearch)。分布式、可扩展、近实时的搜索和分析引擎,基于 Apache Lucene 构建。
2025-06-13 17:46:36
2140
原创 FastDFS分布式存储
Kubernetes 部署需自行编排 StatefulSet(Storage)和 Deployment(Tracker)。以简单架构实现小文件的高性能分布式存储,适合对 POSIX 无强需求、追求轻量化的场景。支持 Java/Python/PHP/C/C++ 等主流语言。:同组节点存储相同数据(冗余),不同组存储不同数据(扩容)。:管理集群拓扑,调度文件访问(负载均衡)。:组内节点通过 Binlog 异步同步。:实际存储文件数据(分卷管理)。每个存储节点划分为多个。FastDFS 采用。
2025-06-12 21:40:10
938
原创 GFS分布式文件系统
gluster volume delete rep-volume # 删除卷。gluster volume stop rep-volume # 停止卷。:计算文件路径的 32 位哈希值,映射到 Brick 的连续子空间。:支持 NFS/CIFS/SMB 等标准协议,无缝集成现有应用。:Brick 的逻辑集合(类似 LVM 的逻辑卷)。直接定位数据,无需元数据查询,提升性能和可靠性。:七种卷类型组合满足不同场景(性能/冗余平衡)。避免元数据服务器依赖,解决单点故障和性能瓶颈。
2025-06-11 16:15:30
847
原创 MongoDB数据库应用
MongoDB 是一个功能强大且灵活的 NoSQL 文档数据库。其核心在于文档(BSON)集合和动态模式。掌握基础的CRUD 操作(find是使用的起点。理解其灵活性、高性能、高可用性(副本集)和可扩展性(分片)等核心优势有助于判断其是否适合你的项目。务必重视安全配置(用户认证)。对于需要处理多样化、快速变化的数据,并追求开发速度和水平扩展的应用,MongoDB 是一个极具吸引力的选择。
2025-06-10 18:47:04
698
原创 NoSQL之Redis集群
每个 Redis 节点都额外监听一个端口(通常是客户端端口 + 10000,如 6379 -> 16379),用于节点间通信。从节点会等待一个延迟时间(基于其复制偏移量排名,复制偏移量越接近主节点的从节点延迟越短),然后发起选举。通过主从复制,在主节点故障时自动进行故障转移(failover),由从节点接替主节点工作。命令将键原子性地迁移到目标节点(键会被序列化传输,在目标节点反序列化,然后从源节点删除)。客户端根据集群配置信息,知道哪个槽由哪个主节点负责,从而将命令路由到正确的节点。
2025-06-09 14:12:20
1244
原创 NoSQL之redis哨兵
客户端需通过哨兵获取主节点地址,而不是直连主节点。客户端通过哨兵获取当前的主节点地址(无需手动修改配置)。领导者哨兵选择一个合适的从节点(如数据最新、优先级高)。持续检查主节点和从节点的运行状态(是否存活、延迟等)。:所有节点使用相同 Redis 版本(避免兼容问题)。当主节点不可用时,自动选举一个从节点升级为主节点。每个哨兵每秒向所有节点(主/从/其他哨兵)发送。将旧主节点更新为从节点(若恢复则自动切换角色)。数量)都认为主节点主观下线,则主节点被标记为。更新其他从节点和客户端的配置指向新主节点。
2025-06-06 18:58:59
756
原创 NoSQl之Redis配置与优化
auto-aof-rewrite-percentage 100 # AOF文件增长100%后触发重写。数据结构丰富:Strings、Lists、Hashes、Sets、Ordered Sets。<1:发生内存交换(Swap),需增加物理内存或减少数据量。集群分片:应对海量数据(如Twemproxy/Codis)。原子操作、主从备份(master-slave)、高可用。高性能:读110,000次/秒,写81,000次/秒。缓存加速、实时排行榜、计数器、会话管理、实时分析系统。(RDB文件压缩)。
2025-06-05 15:15:31
765
原创 Kafka消息队列笔记
集群元数据管理(旧版依赖 ZooKeeper,新版 Kafka 3.0+ 使用 KRaft 模式去 ZooKeeper)。:所有 ISR(In-Sync Replicas)副本确认(强一致)。:分区副本(Leader 处理读写,Follower 同步备份)。:KRaft 模式(取代 ZooKeeper,简化部署)。消费者:增加分区数(上限受限于 Broker 资源)。:订阅 Topic 并消费消息(支持消费者组并行)。方案:相同 Key 发到同一分区(业务层保序需求)。
2025-06-04 15:46:48
971
原创 nginx+tomcat负载均衡群集
确保 Nginx 服务器的 80/443 端口开放,并且 Nginx 能访问所有 Tomcat 节点的指定端口(如 8080),Tomcat 节点之间如果通信(Session 复制)也需要开放相应端口。# 格式: server <tomcat_server_ip>:<tomcat_port> [weight=数值] [max_fails=数值] [fail_timeout=时间];
2025-06-03 12:03:18
1796
原创 使用Haproxy搭建Web群集
echo "show stat" | socat stdio /var/run/haproxy/admin.sock # 实时状态:cite[2]echo "Server 1" > /usr/share/nginx/html/index.html # 服务器1标识。echo "Server 2" > /usr/share/nginx/html/index.html # 服务器2标识。tail -f /var/log/haproxy-info.log # 查看健康检查日志。
2025-06-02 20:59:39
1002
原创 LVS-Keepalived高可用群集
LVS + Keepalived 是一个强大、高效且成熟的四层高可用负载均衡解决方案。它特别适合处理高流量、对性能要求苛刻且需要高可用性的场景(如 Web 前端、API 网关、缓存层等)。虽然配置(尤其是 DR 模式)相对复杂并需要注意网络拓扑和 ARP 问题,但其卓越的性能和稳定性使其在基础设施领域占据重要地位。理解其工作原理和不同模式的特点对于成功部署和维护至关重要。
2025-05-29 16:24:11
1879
原创 LVS-DR群集
LVS-DR(Linux Virtual Server - Direct Routing)是一种高性能的负载均衡集群架构,通过直接路由技术将请求分发到后端真实服务器(Real Server),并允许响应数据。ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g # 添加Real Server,-g表示DR模式。:Real Server需配置为不响应VIP的ARP请求,避免IP冲突。(不经过负载均衡器)。,将请求转发给选中的Real Server。
2025-05-28 14:36:23
795
原创 LVS负载均衡群集
它通过将客户端请求分发到多台后端服务器(Real Server)来实现负载均衡,提升系统的吞吐量、可用性和可扩展性。负载均衡器仅修改请求的MAC地址,将数据包直接路由到后端服务器,响应数据由后端服务器直接返回客户端(不经过负载均衡器)。负载均衡器修改请求和响应的IP地址,将客户端请求的VIP转换为后端服务器的RIP,并将响应数据包的源IP改回VIP。负载均衡器通过IP隧道(IPIP封装)将请求转发到后端服务器,后端服务器解封装后直接响应客户端。实际处理请求的后端服务器群,可以是Web服务器、应用服务器等。
2025-05-27 23:19:38
763
原创 python网络编程
server_socket.sendto("消息已收到".encode(), addr) # 发送响应。print(f"收到来自 {addr} 的消息: {data.decode()}")client_socket.send("消息已收到".encode()) # 发送响应。writer.write(f"收到: {message}".encode())print(f"服务器回复: {response.decode()}")print(f"服务器回复: {response.decode()}")
2025-05-27 00:18:33
706
原创 python操作MySQL数据库
cursorclass=pymysql.cursors.DictCursor # 返回字典格式的结果。cursor = conn.cursor(dictionary=True) # 返回字典格式结果。host='localhost', # 数据库地址。database='testdb', # 数据库名。user='root', # 用户名。conn.commit() # 提交事务。conn.commit() # 提交事务。conn.commit() # 提交事务。
2025-05-27 00:15:05
661
原创 初识flask框架
source myenv/bin/activate # Linux/macOS激活。myenv\Scripts\activate # Windows激活。python -m venv myenv # 创建虚拟环境。:使用Flask-WTF内置的CSRF保护。:确保安装Python 3.6+版本。文件或系统环境变量存储敏感信息(如。:作为反向代理和静态文件服务器。,存放CSS、JS、图片等。:保护会话和Cookies。:始终验证和清理用户输入。:构建REST API。
2025-05-24 00:38:23
829
原创 python实现web请求与回复
print("请求失败,状态码:", response.status_code)print("POST响应JSON:", response.json())print("GET响应状态码:", response.status_code)• requests.get()/requests.post() 发送请求。print("GET响应内容:", response.text)• response.json() 解析JSON响应。# 发送POST请求(JSON数据)# 处理POST请求(JSON数据)
2025-05-22 22:32:58
965
原创 postgresql日常维护
log_statement = 'all' -- 可选(调试用,生产环境慎用)autovacuum_vacuum_cost_limit = 2000 # 提高自动清理效率。log_min_duration_statement = 1000 -- 记录超过1秒的查询。\dp table_name -- 查看表权限。log_rotation_age = 1d -- 每日轮转。结合Shell/Python脚本定期执行维护任务。
2025-05-21 11:24:54
779
原创 postgresql初体验
sudo nano /etc/postgresql/14/main/postgresql.conf # 路径版本可能不同。psql -h localhost -U myuser -d mydb # 指定用户和数据库连接。sudo -u postgres psql # 直接以postgres用户运行psql。PostgreSQL默认创建名为postgres的系统用户。# 允许所有IPv4连接(生产环境建议限制IP)-- psql命令行帮助。\h -- SQL命令帮助。
2025-05-21 00:28:09
438
原创 MYSQL故障排查和环境优化
监控工具:Percona Monitoring或Prometheus+Grafana10。:通过主从复制分离读/写流量,使用中间件(如ProxySQL)1410。:选择多核高主频处理器(如Intel Xeon),支持高并发处理17。:使用SSD或RAID 10阵列,避免RAID 5(写性能差)157。:MySQL未启动或端口被防火墙拦截。(占物理内存70%~80%)157。:按业务拆分大表,减少单表压力14。)或开放端口(如3306)367。提升连接速度(需改用IP授权)8。:非正常关机或磁盘空间不足。
2025-05-19 22:41:21
954
原创 mysql的高可用
2台HAProxy + Keepalived服务器(haproxy1: 192.168.1.103,haproxy2: 192.168.1.104)2台MySQL服务器(node1: 192.168.1.101,node2: 192.168.1.102)虚拟IP(VIP: 192.168.1.100)
2025-05-18 16:37:36
495
原创 MySQL主从复制与读写分离
主库(Master):处理写操作,并将数据变更记录到二进制日志(Binary Log, binlog)。从库(Slave):通过IO线程从主库拉取binlog,保存为中继日志(Relay Log),再由SQL线程重放日志,实现数据同步。复制模式:异步复制(默认):主库不等待从库确认,性能高,但存在数据丢失风险。半同步复制:主库至少等待一个从库接收binlog后才提交事务,平衡性能与安全性。全同步复制:需所有从库确认,延迟高,较少使用。主库配置:# my.cnfserver-id=1log-bin=my
2025-05-15 23:55:20
760
原创 MySQL主从复制
复制延迟:SHOW SLAVE STATUS 中的 Seconds_Behind_Master。Last_IO_Error/Last_SQL_Error: 无错误。将从库设为新主库:SET GLOBAL read_only=0;:从库通过I/O线程读取主库的Binlog,写入本地中继日志。Slave_SQL_Running: Yes(SQL线程正常)Slave_IO_Running: Yes(I/O线程正常):从库的SQL线程读取中继日志并重放操作,实现数据同步。:网络延迟、从库性能不足、大事务。
2025-05-13 15:21:03
941
原创 MySQL备份与事务
检查备份文件完整性(如 grep "Dump completed" backup_full.sql)。InnoDB 使用 --single-transaction 避免锁表。MyISAM 需使用 --lock-all-tables。),适用于大型数据库,速度快但依赖存储引擎。:记录所有数据更改操作,需结合全量备份使用。记录二进制日志位置(用于增量恢复)准备恢复(合并所有增量到全量备份)第一次增量备份(基于全量备份)后续增量备份(基于前一次增量)备份所有数据库(包含系统库)异地存储(云存储、NAS)。
2025-05-12 15:48:26
630
原创 MySQL 索引与事务详解
用 EXPLAIN 查看 type(访问类型)、key(使用索引)、Extra(是否覆盖索引)。:索引 (a, b, c) 可生效于 a, a+b, a+b+c,但无法单独使用 b 或 c。RR 使用事务启动时的 ReadView。:DB_TRX_ID(事务ID)、DB_ROLL_PTR(回滚指针)。:使用前缀索引(如 INDEX(column(10)))减少存储。:事务提交时先写 redo log(顺序写,高性能),再异步刷盘。:O(1) 时间复杂度,仅支持精确匹配(=),不支持范围查询。
2025-05-11 22:48:26
748
原创 数据库操作
示例:一个电商系统可能包含 user_db(用户数据)、order_db(订单数据)等。操作数据:INSERT, UPDATE, DELETE, SELECT。定义数据库结构:CREATE, ALTER, DROP。设计原则:遵循数据库范式(如第一范式:字段不可再分)。结构化数据的集合,由行(记录)和列(字段)组成。提高查询速度的数据结构,但会增加写操作的开销。类型:主键索引、唯一索引、普通索引、全文索引。控制权限:GRANT, REVOKE。数据的逻辑容器,用于分类管理数据。执行操作(如插入、更新)
2025-05-09 22:01:52
889
原创 MySQL初体验
避免使用 root 账户日常操作,建议创建普通用户并授权。:通过“服务”管理工具启动 MySQL80 服务。:在代码中避免拼接 SQL 语句,使用参数化查询。:下载官方安装包或使用包管理工具。通过图形界面操作数据库更直观。下载安装程序,按向导安装。显示当前数据库的所有表。
2025-05-09 01:08:18
731
【Python开发工具】Python代码格式化插件Black Formatter使用指南:解决代码排版与复制问题
2025-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅