自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 zabbix监控

监控系统数据采集的工作模式分为被动模式和主动模式,被动模式指的是服务器端道客户端采集数据;主动模式是客户端主动上报数据到服务器。Zabbix角色分为zabbix server、zabbix agent、zabbix proxy、zabbix_web。主动模式对监控端服务器的开销较小,适合大规模的监控环境。PS:被动模式对监控端服务器的开销较大,适合小规模的监控环境。监控系统由数据采集部分和数据存储两部分组成。监控按逻辑层次划分为五个层次。

2025-07-21 17:28:14 186

原创 k8s高级调度02

nodeAffinity:节点亲和性,用于控制pod部署在哪些节点上,以及不能部署在哪些节点上,这个是pod与node之间匹配规则的。当节点进行升级时,为了避免影响节点上的pod,可使用转移将节点上的pod转移到其他节点,同时会将节点设置为警戒状态。当节点拥有污点时,想让pod部署在污点节点上,可以为pod设置容忍,使其部署到污点节点上。软节点亲和:尽量将pod部署到某个节点,取决于yaml文件中节点的顺序。软pod亲和:尽量将pod部署到亲和pod所在节点,取决于权重。污点属性所有节点都可设置。

2025-07-14 11:40:14 317

原创 k8s高级调度01

3、HPA:自动扩缩容,根据监控设置(如cpu)来自动对pod进行增加,当cpu超过设定阈值,自动增加pod,cpu低于阈值,自动减少pod。(1)延迟启动:init container等同于先决条件,必须满足该条件,其他容器才能启动。(2)修改内核:当启动的pod中的容器需要修改内核时,可使用init container。(3)依赖: pod存在依赖关系时,可用init container来解决依赖关系。除paste容器以外,最先启动的容器。2、临时容器:用于调试容器,内置许多调试工具。

2025-07-12 08:32:49 301

原创 k8s存储入门

pvc(PersistenVolume 持久卷声明),pod使用,这里面指定了pod能使用pv多大的空间.ReadWriteOncePod:单节点只读,只能被一个pod以读写的模式挂载.简写:RWOP。pod通过pvc来使用pv,pod和pv无直接联系,这种连接方式实现了pod与pv之间的解耦.ReadWriteMany:多路可读可写,可被多节点以读写模式挂载.简写:RWX。recycle:回收,删除pv,卷中数据不存在,卷还在。delete:删除,删除pvc时,会同时删除pv。pv、pvc回收策略。

2025-07-09 11:52:18 420

原创 k8s配置管理

简化了pod的配置,pod内容器文件的更换变得异常方便,通过configmap可快速更换。secret保存账号,密码、证书等需要加密储存的信息,secret会加密存储。configmap与pod需在统一命名空间,否则pod无法使用cm。configmap对pod中的容器而言有什么作用?configmap中文件存储上限 1MB。configmap能存放什么文件?

2025-07-08 15:38:16 321

原创 k8s服务发布进阶

service发布时,有四种模式可选,其中只有两种方式能在linux上让外部访问,是nodeport和loadbalancer模式,nodeport和loadbalancer模式原理相同,只是环境不同,nodeport在k8s中,loadbalancer在公有云环境。ingress只能通过域名访问,因为service可能会重建,如果在ingress上配置ip地址与端口,当service重建后,ingress就必须要更改配置,而使用域名就能很好解决这一问题,service更改后,域名并不改变。

2025-07-07 14:29:17 439

原创 k8s服务发布基础

Iptables,kube proxy不转发,只维护iptables的规则。数据包通过iptables的规则转发,这种效率略低,当iptables的规则多的时候,读取规则相当于读取一张没有索引的表。IpVs,kube proxy不转发,只维护iptables的规则,数据包通过iptables的规则转发,使用ipset来存储iptables的规则,可直接更新iptables规则。无头服务是指服务没有入口地址(clusterIP),但是它有pod的地址,访问无头服务通过固定的服务名进行访问。

2025-07-06 21:17:29 214

原创 k8s pod调度基础

在节点上运行一个pod副本、当有新的节点加入集群时,会为他们新增一个pod,当节点从集群被移除,这些pod会被回收,删除daemonset将会删除它创建的所有的pod。statefulset(有状态集,有副本)- 滚动更新(镜像)、pod扩缩容、级联与非级联删除。部署无状态服务时使用deployment(部署),deployment部署后,借助复制集管理pod。级联删除:删除statefulset时,statefulset和它的pod都会被删除。请求数据->依赖他者,自身有则返回,自身无借助他者返回数据。

2025-07-01 16:50:06 349

原创 k8s pod深度理解

HTTPGetAction:HTTP Get 请求状态码 200-400 则健康 检测容器是否正常运行,失败则重启容器。就绪探针(ReadinessProbe) 同上 检测容器是否准备好接收流量,失败则不路由流量至该容器。kubelet 创建:目标节点的 kubelet 调用容器运行时(如 Docker)创建容器。所有容器的父容器,负责回收僵尸容器,同时它为pod中的容器提供了统一的网络及统一的共享存储。就绪标记:所有容器通过检测后,Pod 进入 Running 状态并接收流量。

2025-06-30 16:22:00 359

原创 containerd

1、images(镜像):images存储容器镜像的元数据,包括镜像的标签、大小、创建实践等信息。1、tasks(任务):tasks包含容器内的进程组。2、events(事件):events组件记录了容器的各种事件,如容器的创建、启动、停止等。2、containers(容器):存储容器的元数据,包括容器的状态、配置信息、网络设置等。3、diff(差异):存储容器文件系统层之间的差异,当容器运行时需要修改文件系统时,会在已有的文件系统层上创建一个差异层,以保存变更。metadata:元数据。

2025-06-25 15:15:02 468

原创 docker

docker如果想设置端口,需要编辑/lib/systemd/system/docker.service内编辑[service]ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 映射端口为2375.is(infrastructure as a server 基础架构即服务) 例如:vm openstack kvm。docker属于is、ps、ss。

2025-06-20 15:51:53 316

原创 OpenStack初体验

Iaas(infrastructure as a service,基础架构即服务),只在硬件上安装了操作系统,裸操作系统,安装什么服务,平台,部署什么软件都需要自己来实现。Saas(software as a service,软件即服务),在平台中已经有了软件,例如lamp中已经有了网站(软件),直接使用即可。paas(platform as a service,平台即服务),在操作系统上安装了平台,例如lamp,网站部署需要自己来写代码。opensatck是开源的云平台,可搭建私有云以及公有云。

2025-06-18 21:19:16 237

原创 KVM高级功能部署

数据块迁移,无共享存储,创建虚拟机存储池,来生成qcow2文件(必须与源机上的虚拟机qcow2文件名称相同),接着进行迁移,无需手动开启虚拟机,迁移过来就是运行中的。动态迁移,有共享存储,直接迁移,无需创建qcow2文件。当KVM虚拟机数量的不断增多,会导致个别服务器出现资源过载现象,这时候需要使用KVM虚拟机迁移技术,将KVM虚拟机迁移到负载相对较低的服务器上。无共享存储,将虚拟机关机,上传到另一台服务器,手动开启虚拟机。有共享存储,将虚拟机关机,只上传xml配置文件,手动开启虚拟机。

2025-06-17 22:38:39 222

原创 部署KVM虚拟化

注意:Qemu本身并不是KVM的一部分,Qemu是一套完整的虚拟化解决方案,是纯软件实现虚拟化,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,因是纯软件模拟出来的,所以性能较低。内核模式:模拟CPU以及内存,实现客户模式的切换,处理从客户模式的退出。kvm是原生架构,原生架构的特点是直接在硬件上安装虚拟化所需的东西,这样虚拟化出来的性能强,资源浪费少。quem中的io是指逻辑硬件之间的通信,并不是指网络的通信,它相当于主板上的总线,连接各个逻辑硬件。虚拟机 -> 虚拟机。虚拟机 -> 虚拟机。

2025-06-16 16:47:07 361

原创 ELK日志分析系统

特点是:分布式、零配置、自动发现、索引自动分片、索引副本机制、restful风格接口、多数据源、自动搜索负载等。kibana是图型化显示日志分析的工具,可以为logstash和elasticsearch提供日志分析友好的web界面。logstash是接受日志以及格式化日志的工具,它可以对日志进行收集、过滤,并将其存储供以后使用(如,搜索)。(2)将日志格式化(logstash)并输出到elasticsearch。(3)对格式化后的数据进行索引和存储(elasticsearch)。elk日志处理分析过程。

2025-06-13 21:40:27 339

原创 fastdfs部署

tarcker是跟踪服务器,负责管理所有的storage server和group,也是群集的访问入口。storage server负责提供容量和备份服务,会将自己的元数据发送给跟踪服务器(高扩展性)。fastdfs是分布式文件系统,对象存储,C/S架构。客户端用于上传数据。

2025-06-13 08:54:07 230

原创 GlusterFS概述

3、vfs将数据递交给fuse内核文件系统,并向系统注册一个实际的文件系统fuse,而fuse文件系统则是将数据通过/dev/fuse设备文件递交给了glusterfs client端。5、经过glusterfs client处理后,通过网络将数据传递至远端的glusterfs server,并且将数据写入服务器存储设备。高可用性,配置复制卷后,可实现文件自动复制,当其中一个节点down掉时,不影响访问。弹性卷管理,gfs将数据存储在逻辑卷中,逻辑卷方便管理。弹性哈希,GFS根据此算法在存储池中定位数据。

2025-06-11 16:50:47 395

原创 mongodb数据库应用

库中可包含一个或多个collection(集合),集合是一组document(文档)的容器,一个集合中的文档不需要有一个固定的模式。mongodb使用集合(collections)来组织文档(documents),每个文档都是由键值对组成的。sql术语 mongodb术语/概念 解释/说明。index index 索引。mongodb是一个文档型数据库,数据以类似json的文档形式存储。mongodb专业术语。

2025-06-10 22:04:27 290

原创 redis集群

集群将所有key映射到16384个slot中,集群中的主节点平分这些slot,负责数据的读写,而从负责复制主上的数据,当主失效后,从会接替主以及主拥有的slot。集群中启用数据分片,对象保存到redis之前先经过CRC16哈希到一个指定的node上,这个过程即redis cluster的分片。集群模式解决了哨兵模式无法实现写操作负载均衡以及存储能力受到单机限制。缺点:故障恢复无法自动化,写操作无法负载均衡,存储能力受单机限制。哨兵模式解决了主从模式的故障恢复不自动化。集群最少需要6个节点,3主3从。

2025-06-10 08:21:45 208

原创 redis哨兵

sentinel monitor是配置哨兵的命令,master-name是主节点的名称,ip port是IP地址和端口号,最后的quorum用来表示执行故障恢复操作之前至少需要几个哨兵节点同意。哨兵(sentinel)主要负责监控主从节点运行是否正常,以及当主节点出现故障时自动将一个从节点转换为新的主节点。3、每1秒哨兵会向主节点、从节点和其他哨兵发送ping命令。1、每10秒哨兵会向主节点和从节点发送info命令。2、每2秒哨兵会向主节点和从节点发送自己的信息。r1、2是从1、从2。s1、2、3是哨兵。

2025-06-06 17:44:20 215

原创 redis配置及优化

redis(remote dictionary server,远程字典型)是一个开源的、使用c语言编写的nosql数据库。redis是单进程模型,在一台服务器上可以同时启动多个redis进程,而redis的实际处理速度则是完全依靠于主进程的执行效率。nosql(nosql=not only sql)意为“不仅仅是sql”,是非关系型数据库的总称。主流的nosql数据库:redis、mongdb、hbase、couhdb等等。主流的关系型数据库:oracle、mysql、sql server等。

2025-06-05 19:54:52 346

原创 Kafka消息队列

消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。observer:观察者角色,用于接收客户端的请求,并将写请求转发给leader,同时同步leader状态,但是不参与投票。Zookeeper是一种分布式协调技术,用于解决分布式环境中多个进程的同步控制,让它们有序的去访问某种共享资源,防止造成资源竞争(脑裂)的后果。Consumer:指消息的消费者,从kafka broker拉取数据,并消费这些已发布的消息。Kafka的核心概念及角色。

2025-06-04 14:05:53 343

原创 nginx+tomcat动静分离、负载均衡

DR 客户端的请求通过调度器传输,服务器直接应答给客户端,不经过调度器。TUN 客户端的请求通过调度器传输,服务器直接应答给客户端,不经过调度器。NAT 客户端的请求和服务器的应答都通过代理服务器来传输。代理服务器:客户端的请求和服务器的应答都通过代理服务器来传输。最小连接(leastconn)加权轮询(static-rr)最小连接(leastconn)haproxy(四层、七层)轮询(roundrobin)源地址哈希(source)nginx(四层、七层)加权最小连接(wlc)

2025-06-03 16:48:29 668

原创 Haproxy搭建web群集

A B C 三个节点 基于ip来源 第一个客户访问被调度器分配到A上,第二个客户分到B 第三个客户分到C。A绑定客户1 B绑定客户2 C绑定客户3 除非调度器重启,否则绑定关系不会消失。A B C 三个节点 10个访问请求 A:1 4 7 B:2 5 8 C:3 6 9。基于来源访问调度算法,可基于来源IP、cookie等进行调度。A B C 三个节点 谁当前活跃连接数最少就把访问请求给谁。Haproxy用于群集调度。Haproxy的调度算法。

2025-06-02 20:54:42 279

原创 LVS+KeepAlived

当vip发生切换,从主机1切换到主机2.原vip、虚拟mac与交换机接口的对应信息已经被记录到mac地址表中。当vip从主机1切换到主机2时,主机2会向下游设备(交换机)发送免费arp,只有arp应答,告诉交换机自己的vip以及vmac,来更新mac地址表中vip对应的接口。这样,通信就不会中断了。vrrp是多台路由器组成一个热备组,通过共用的虚拟ip地址对外提供服务,每个热备组同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。而当主机1故障,主机2拥用vip,mac地址表还记录的是主机1的信息。

2025-05-29 14:22:24 811

原创 LVS-DR群集

real server返回报文(源ip是vip)经路由器转发,重新封装报文时,需要先获取路由器的mac地址,发送arp请求时,linux默认使用ip包的源ip地址(即vip)作为arp请求包中的源ip地址,而不使用发送接口的ip地址,路由器收到arp请求后,将更新arp表项,原有的vip对应director的mac地址会被更新为vip对应real server的mac地址。1、客户端发送请求到Director Server,请求的数据报文(源ip是cip,目标ip是vip)到达内核空间。

2025-05-28 16:25:43 1176

原创 lvs负载均衡群集

NAT模式:负载均衡器作为所有服务器节点的网关,客户机的访问入口,各节点回应客户机的访问出口。加权最少链接(weighted least connections):在服务器节点的性能差异较大的情况下,调度器可以根据节点服务器负载自动调整权重。轮询(round robin):将收到的请求按顺序轮流分配给群集中的各节点,均等地对待每台服务器,而不管服务器实际的连接数和系统负载。第二层是服务器池,为群集提供应用服务,每个节点具有独立的rip(real ip,真实ip)地址。负载均衡群集:高并发、高负载。

2025-05-27 12:22:35 310

原创 python网络编程

网络编程是指通过计算机网络进行信息交换与通信的技术。网络通信依赖于网络协议,网络协议规定了数据传输的格式、方法以及数据交互的规则。常见的通信协议是tcp和udp。socket是网络通信的基础,是实现网络编程的抽象层。位于tcp模型中传输层和应用层之间。在osi模型中属于会话层。TCP(transmission control protocol,传输控制协议)UDP(User Datagram Protocol,用户数据报协议)三次握手建立连接、四次挥手断开连接。

2025-05-26 14:31:12 315

原创 python操作mysql数据库

通过python的模块来连接数据库,实现对数据的增删改查。

2025-05-25 20:47:35 460

原创 python与flask框架

Werkzeug:flask的底层库,提供了WSGI接口、HTTP请求和响应处理、路由等核心功能。Flask是一个轻量级的web框架,灵活易用。提供构建web应用所需的核心工具。Jinja2:模板引擎,用于动态生成HTML页面。Flask依赖python的两个库。

2025-05-23 22:01:03 407

原创 python实现web请求

请求行:包括请求方法(get、post等)、URL和http协议版本(如http/1.1)。请求头:包含关于客户端信息、请求体类型、浏览器类型等的元数据。请求体:在post请求中包含用户提交的数据,如表单数据或文件。响应体:包含实际返回的数据(如HTML页面、JSON数据等)。web请求是客户端(如浏览器、应用程序)通过网络向服务器请求资源。响应头:包括关于响应的信息,如内容类型、服务器信息等。200 OK:请求成功,服务器返回所请求的数据。web响应是服务器响应客户端请求返回数据。

2025-05-22 22:53:49 338

原创 PostgreSQL使用

属于系统目录(system catalog):类似mysql的information_schema,但postgresql的系统目录更底层且直接存储在pg_catalog模式中。# pg_database是系统目录表,所以无论当前连接到哪个数据库,该表始终可见,系统表默认属于pg_catalog模式,而pg_catalog始终位于搜索路径(search_path)的首位。select pg_size_pretty(pg_database_size('库名'));显示pgsql命令的说明(元命令查询帮助)

2025-05-21 12:04:04 2073

原创 PostgreSQL简单使用

tablespace是指表空间,存放数据库的一个逻辑空间,可以存放不同的数据库,对应在物理层面上是一个目录。PostgreSQL,一个表空间可以让多个数据库使用,一个数据库可以使用多个表空间。关系是指,比如在库中建了个表,表中建了个视图、索引等。Oracle、PostgreSQL都属于第二代关系型数据库和第三代关系型数据库的结合。关系是指,比如两张表之间存在外键,这外键就是它俩之间的关系。schema是指模式,模式将多个用户之间相同名称的对象隔离开。第二层:数据库(每个实例下可有多个相互独立的数据库)

2025-05-20 12:26:24 510

原创 mysql故障排查与环境优化

核心服务功能(sql接口、缓存的查询、sql的分析和优化以及部分内置函数的执行等。存储引擎层(负责mysql中数据的存储和提取。mysql的运行分为三层。一、mysql运行原理。

2025-05-19 11:51:04 370

原创 mysql集群

mysql双主+keepalived+haproxy。实现高可用及负载均衡。

2025-05-16 11:37:42 375

原创 mysql读写分离

客户端连接代理层,代理层(中间件)来实现读操作给从服务器,写操作给主服务器。

2025-05-15 16:48:35 232

原创 mysql主从复制

首先,slave开始一个工作线程--i/o线程,i/o线程在master上打开一个普通的连接,然后开始binlog dump process。sql线程从中级日志读取事件,并重放其中的事件而更新slave数据,使其与master中的数据保持一致。只要该线程与i/o线程保持一致,中继日志通常会位于os的缓存中,所以中继日志的开销很小。复制过程有一个很重要的限制,即复制在slave上是串行化的,也就是说master上的并行更新操作不能在slave上并行操作。1、主从复制介绍及原理。

2025-05-13 11:07:08 417

原创 mysql全量、增量备份与恢复

mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒' --stop-datetime='年-月-日 小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码。mysqlbinlog [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码。按数据库的备份策略角度,数据库的备份可分为完全备份、差异备份和增量备份。

2025-05-12 21:13:28 1194

原创 mysql索引和事务

索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。使用索引后,数据的查找将不再扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。在无序字段上进行搜索,要执行线性搜索的过程,平均需要访问n/2的数据块,n是表示所占据的数据块数目。例:有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,均为1~1000的数值,查找对应值相等行的查询。同理,利用表t3上的索引,直接定位t3中与t1的值匹配的行。

2025-05-11 15:28:25 852

原创 Mysql数据库操作

information_schema:虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等。字段n) values(值1,值2,值3…库相当于文件夹,而表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段。插入多条记录 insert into 表名 values(值1,值2,值3…值n),(值1,值2,值3…插入数据(顺序插入) insert into 表名 values(值1,值2,值3…

2025-05-09 14:19:17 1652

空空如也

空空如也

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

TA关注的人

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