- 博客(61)
- 收藏
- 关注
原创 SaltStack部署应用
test 模块实际上还包含许多其他有用的函数,如何知道这些函数,就需要 sys 模块的list_functions 函数来实现了,sys.list_functions 用来查看指定模块所有的函数,其他函数的用法此处不在多做介绍,大家可以自行学习。不同的模块,他们的用法也各有区别,具体的用法体现在模块中的函数,那么某一个模块又有哪些函数构成,就可以使用“sys.list functions”进行查询。如此多的函数,到底大家怎么使用,我们就可以是“sys.doc”说明文档进行查看,以获取详细的帮助功能。
2025-08-14 17:09:54
1005
原创 云原生环境 Prometheus 企业级监控实战
node-exporter + prometheus + grafana是一套非常流行的 Kubernetes 监控方案。它们的功能如下:
2025-08-11 16:54:15
1439
原创 Prometheus 监控平台部署与应用
但是,当时的情况是,以上的功能都分散在各个系统之中,直到2012年 Soundcloud 某位大神启动了一个孵化项目, Soundcloud 才把所有功能集合到一起,这时也就有了 Prometheus。Prometheus是用 Go 语言编写,从一开始就是开源的。和传统的指标数据收集组件不同的是,他只负责收集,并不向Server 端发送数据,而是等待 Prometheus server 主动抓取,node-exporter 默认的抓取 url地址:http://ip:9100/metrics。
2025-08-09 14:01:31
1298
原创 部署 Zabbix 企业级分布式监控
Zabbix 是什么,它是一种企业级的分布式开源监控系统的解决方案,Zabbix 是一个基于 Web 界面的提供分布式系统监控,以及网络监控功能的企业级开源解决方案。Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。
2025-08-08 14:11:14
1085
原创 Kubernetes资源管理
从 status 字段的 userd 看出,当前的资源显示的使用量,并且 namespace 只有在创建了Resource0uota才会启用资源使用的配额,没有创建 Resource0uota的 namespace 不限制资源的使用。requests 和 1imits 的最大值和最小值的配置方式和默认值的配置差别不大,比如创建一个内存最小值为 580MB、最大值为 1GB 和 CPU 最小值为 200MB、最大值为 800MB 的 LimitRanger。
2025-07-31 16:28:51
1182
原创 Kubernetes高级调度02
Taint(污点)和 Toleration(容忍)可以作用于 node 和 pod 上,其目的是优化 pod 在集群间的调度,这跟节点亲和性类似,只不过它们作用的方式相反,具有 taint 的 node 和 pod 是互斥关系,而具有节点亲和性关系的 node 和 pod 是相吸的。scheduler 自动实现。正则匹配了 pod 的标签“pod05”,带有 pod85 标签的 pod 是 pod05,该 pod 在 node02 上,于是 pod07的 pod 也调度到了 node02 上。
2025-07-30 16:26:13
1178
原创 Kubernetes存储入门
和之前的挂载方式类似,PVC的挂载也是通过 volumes 字段进行配置的,只不过之前需要根据不同的存储后端填写很多复杂的参数’而使用 PVC进行挂载时,只填写 PVC的名字即可,不需要再关心任何的存储细节,这样即使不是 Kubemetes 管理员,不懂存储的其他技术人员想要使用存储,也可以非常简单地进行配置和使用。所以集群管理员需要根据不同的存储后端来提供各种 PV,而不仅仅是大小和访问模式的区别,并且无须让用户了解这些卷的具体实现方式和存储类型,打扫了存储的解耦,降低了存储使用的复杂度。
2025-07-28 17:17:47
1216
原创 Kubernetes配置管理
在传统架构中,配置文件往往被保存在宿主机上,程序启动是可以指定某个配置文件,但是使用容器部署时,容器所在的节点并不固定,所以不能使用这种方式,此处在构建镜像时,如果把配置文件也放在容器里面,那么配置文件一旦有更改的话,也是一件非常麻烦的事情。当挂载 ConfigMap 或 Secret 到容器内部时,会覆盖容器中的目录,也就是是说,在容器中的对应的目录中,就只剩下我们挂载进去的文件,此目录中其他的文件都会丢失。所以,显示出来的信息中 Data 字段没有对应的值,只显示了文件的名字。
2025-07-25 17:17:38
747
原创 Kubernetes服务发布进阶
或者同时具有很多个后端,需要使用/api-a到A服务,/api-b到B服务,但是由于A和B服务可能并没有/api-a和/api-b的路径,因此需要将/api-x重写为“/”,才可以正常到A或者B服务,否则将会出现 404的报错。测试环境使用还行,当有几十上百的服务在集群中运行时,NodePort 的端口管理就是个灾难。service 的作用体现在两个方面,对集群内部,它不断跟踪 pod的变化,更新 endpoint(端点)中对应 pod 的对象,提供了 ip 不断变化的 pod 的服务发现机制;
2025-07-23 17:49:35
1166
原创 Kubernetes服务发布基础
spec.portsport: 80spec.typeNone通过 CoreDNS 将 Service 名称解析为 ClusterIP(如→使用kube-proxy维护 iptables/ipvs 规则,将请求转发到后端 Pod。Service 动态关联 Pod IP,通过Endpoints对象实时更新(可用查看)。NodePortselectorspec.ports总之,service 是 kubernetes 中一种非常重要的资源对象,它可以让 pod 对外提供服务,并提供负载均衡、服务发现等功能。
2025-07-23 14:16:49
1064
原创 Kubernetes Pod 深度解析
在 onFailure 策略中,只有当容器以非零退出码退出时,kubelet 才会重启容器,如果容器正常退出(退出码为 ),则不会重启。Pod 是一个或多个容器的组合。在使用裸机或裸容器部署时,一般很难对应用做很完善的健康检査,而 Pod 提供的探针可以很方便的用来检测容器的应用是否正常。Kubernetes 作为目前最流行的容器编排工具,需要支持各个 Runtime 并且不依赖于底层 Runtime 的实现技术,于是就抽象出了 Pod 这个概念,用于管理多个紧密相连的符合 CRI 标准的容器。
2025-07-18 17:17:20
1111
原创 Kubernetes 架构原理与集群环境部署
同时,可以看出一个集群中可以有多个 node 节点,用于保证集群容器的分布式部署,以保证业务的高可用性,也可以有很多的 master 节点,之后通过一个负载均衡保证集群控制节点的高可用。cgroups是 1inux 内核中的机制,这种机制可以根据特定的行为把一系列的任务,子任务整合或者分离,按照资源划分的等级的不同,从而实现资源统一控制的框架,cgroup 可以控制、限制、隔离进程所需要的物理资源,包括 cpu、内存、IO,为容器虚拟化提供了最基本的保证,是构建 docker 一系列虚拟化的管理工具。
2025-07-17 13:41:59
1037
原创 Containerd容器技术详解
可以看出 Containerd 采用的也是 C/S 架构,服务端通过 unix domain socket 暴露低层的 gRPCAPI 接口出去,客户端通过这些 API 管理节点上的容器,每个 Containerd 只负责一台机器,Pull镜像,对容器的操作(启动、停止等),网络,存储都是由 containerd 完成。为了解耦,Containerd 将系统划分成了不同的组件,每个组件都由一个或多个模块协作完成(core部分),每一种类型的模块都以插件的形式集成到Containerd 中。
2025-07-14 17:40:43
748
原创 Docker 高级管理 -- 容器通信技术与数据持久化
除了上述内置的网络模式,你还可以使用 docker network create 命令创建自定义的 bridge 网络,以满足特定的网络需求,例如指定子网、网关、IP 范围等。使用如下命令创建一个自定义网络此命令的主要目的是创建一个新的 Docker 网络,这个网络可以用于容器之间的通信。默认情况下,创建的是一个基于 bridge 驱动的网络。参数/选项说明示例值作用Docker 创建网络的基础命令用于创建自定义 Docker 网络--subnet指定网络的子网范围(CIDR 格式)
2025-07-10 14:54:34
862
原创 容器技术技术入门与Docker环境部署
因为 Docker 轻便、快速的特性,可以使应用达到快速迭代的目的。每次小的变更,马上就可以看到效果,而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式,在开发环境中能够快速提高工作效率。Docker 容器能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中一起协同工作。制定一套容器标准能够使系统管理员更改容器的时候,程序员不需要关心容器的变化,而更专注自己的应用程序代码。从而隔离开了开发和管理,简化了开发和部署的成本。
2025-07-09 14:30:48
1124
原创 OpenStack云平台管理
本文摘要(147字): OpenStack环境搭建与云主机管理实践通过Dashboard界面完成了从网络配置到实例创建的全流程操作。首先删除默认网络并重建外部(public)和内部(private)网络,配置路由器实现内外网连接。创建实例时绑定浮动IP实现外部访问,通过安全组规则和密钥对保障SSH安全登录。实验还包含卷挂载操作和快照管理,验证了数据持久化与系统备份功能。案例重点展示了网络规划、路由配置、实例创建、安全组策略等核心功能,同时对比了OpenStack快照与传统虚拟化快照的差异,体现了OpenSt
2025-07-07 19:29:19
1252
原创 OpenStack入门体验
1.什么是云计算分类描述示例/特点定义基于网络的超级计算模式,按需提供计算、存储、网络等资源。每秒10万亿次运算能力,模拟核爆炸、预测气候变化等。狭义云计算通过网络按需提供IT基础设施(硬件、平台、软件),资源可无限扩展,按需付费。类似公共电网,用户无需维护基础设施,按使用量付费。广义云计算通过网络以按需、易扩展的方式获得各种服务,不限于IT和互联网。包括IT服务、软件服务或其他任意服务。核心特点便捷获取资源、快速创建应用、按需释放资源。适用于企业私有云,如OpenStack项目。技术应用。
2025-07-07 14:47:56
981
原创 KVM高级功能部署
KSM 是在 Linux 2.6 内核版本中被添加进去的,目前大多数常用的、主流的 Linux 发行版都默认支持 KSM 技术,执行以下命令即可检査当前 Linux 系统是否支持 KSM。CONFIG_KSM=y #结果为 y 则表示支持KSM 的常用配置的作用分别如下所示。max_page_sharing:设置每个 KSM 页面允许的最大共享数量。这个配置设置了重复数据删除限制,以避免虚拟内存rmap 列表变得太大。
2025-07-04 14:17:15
957
原创 部署KVM虚拟化平台
公司部分 Linux 服务器硬件资源利用率不高,为了充分利用这些 Linux 服务器,可以部署 KVM,在物理机上运行多个业务系统。例如,在运行 Nginx 的服务器上部署 KVM,然后在 KVM 虚拟机上运行 Tomcat 等服务。
2025-07-03 15:36:40
1138
原创 ELK日志分析系统
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
2025-07-01 19:54:24
802
原创 FastDFS分布式存储
比如一个 group 内有A、B、C三个 storage server,A向C同步到进度为T1(T1以前写的文件都已经同步到B上了),B向C同步到时间戳为T2(T2 >T1),tracker 接收到这些同步进度信息时,就会进行整理,将最小的那个做为C的同步时间戳,本例中T1即为C的同步时间戳为T1(即所有 T1以前写的数据都已经同步到C上了);功能包括:文件存储,文件同步,文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
2025-06-30 16:49:12
1235
原创 GFS分布式文件系统
GlusterFS是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案 Gluster的核心,在存储数据方面具有强大的横向扩展能力,通过扩展不同的节点可以支持数PB级别的存储容量。GlusterFS借助TCP/P或InfiniBand RDMA 网络将分散的存储资源汇聚在一起,统一提供存储服务,并使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间以及无元的设计,可为各种不同的数据负载提供优异的性能。
2025-06-28 17:39:16
996
原创 Mongodb数据库应用
o:备份的数据存放位置,例如:/data/dump,当然该目录需要提前建立,在备份完成后,系统自动在 dump 目录下建立一个 test 目录,这个目录里面存放该数据库实例的备份数据。例如,在启动 MongoDB 实例并连接到 MongoDB shell后,如果您开始插入文档而未显式指定数据库,MongoDB 将默认使用 test 数据库。在 MongoDB 中,数据库的创建是一个简单的过程,当你首次向 MongoDB 中插入数据时,如果数据库不存在,MongoDB 会自动创建它。
2025-06-26 17:45:04
1346
原创 NoSQL之Redis集群
Redis 有三种模式:分别是主从复制、哨兵模式、ClusterSELECTMOVEDredis-tribMGET客户端分片方案是将分片工作放在业务程序端。程序代码根据预先设置的路由规则,直接对多个 Redis 实例进行分布式访问。这样的好处是,群集不依赖于第三方分布式中间件,实现方法和代码都自己掌控,可随时调整,不用担心踩到坑。这实际上是一种静态分片技术Redis 实例的增减,都得手工调整分片程序。基于此分片机制的开源产品,现在仍不多见。
2025-06-26 14:25:46
939
原创 Redis哨兵模式
当主节点进行切换后,一个从节点变成了主节点。此时从节点数量仍然是2,是因为在进行主从切换时,原来的故障的节点会被设置为新主的从节点,哨兵系统并不会对故障节点进行客观下线,而是认为该从节点一致存在。其中,哨兵节点是特殊的 Redis 节点,并不存储数据,出于高可用方面考虑,哨兵架构中通常都是多个哨兵节点共同提供服务。包括主节点和从节点。# 192.168.10.104 6379 2:主节点 IP 和端口,最后的2表示,当主节点出现故障,至少需要两个哨兵节点同意,才能判定主节点故障。
2025-06-24 17:34:06
1247
原创 NoSQL之Redis配置与优化
若是没有开启快照功能,设置系统可用内存的95%是比较合理的。通过本课程的学习,学员不仅掌握了 Redis 的核心优势--如内存数据库的高速读写能力、灵活的数据结构支持以及高可用性架构的实现原理,更通过部署实践与优化配置实战,深入理解持久化策略(RDB/AOF)、内存淘汰机制、集群分片与故障转移的调优技巧。当 Redis 由于内存压力需要回收一个 key 时,Redis 首先考虑的不是回收最旧的数据,而是在最近最少使用的 key 或即将过期的 key 中随机选择一个 key,从数据集中删除,如下所示。
2025-06-23 17:15:10
1186
原创 LVS负载均衡群集:Nginx+Tomcat负载均衡群集
京北点指科技有限公司发布V3版移联建站管理系统,该项目为Java 语言开发的Web 站点。目前,IBM 的 WebSphere 及Oracle 的 WebLogic 占据了市面上 Java 语言 Web 站点的 大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司 的 Web 场景中,但是其高昂的价格也使得小型互联网公司对此望而却步。
2025-06-20 17:54:53
1263
原创 LVS负载均衡群集:使用Haproxy搭建Web群集
在客户端访问 http://192.168.10.101/test.html后,可以使用 tail -f/var/log/haproxy.log 即时査看 Haproxy 的访问请求日志信息。Haproxy 的日志默认输出到系统的 syslog 中,查看起来不是非常方便,为了更好地管理 Haproxy 的日志,在生产环境中一般单独定义出来,定义的方法如下所述。关于 Haproxy 的参数优化,以下列举了几个关键的参数,并对各参数的生产环境的优化 建议做了说明,如表所示。
2025-06-19 16:59:22
1544
原创 LVS+Keepalived高可用群集
本节将以 DR 模式的 LVS 群集为基础,增加一台从负载调度器,使用 Keepalived 来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的 LVS 网站群集平台,如图所示。基于 VRRP 的热备方式,Keepalived 可以用作服务器的故障切换,每个热备组可以有 多台服务器--当然,最常用的就是双机热备了。从调度器的配置与主调度器基本相同,也包括全局配置、热备配置、服务器池配置,只需要调整 router id、state、priority 参数即可,其余内容完全相同。
2025-06-18 17:19:25
1382
原创 LVS负载均衡群集
LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用,节点 Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director Server。在每个节点服务器,同样需要具有 VIP 地址 192.168.10.172,但此地址仅用作发送 web 响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。在 DR 模式的群集中,LVS 负载调度器作为群集的访问入口,但不作为网关使用;
2025-06-17 17:37:24
1137
原创 LVS负载均衡群集
根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋。然而从整体上来看,需要先了解一些关于群集的共性特征,才能在构建和维护群集的工作中做到心中有数,避免操作上的盲目性。
2025-06-16 17:25:04
1151
原创 Python操作MySQL数据库
连接池技术能够在高并发场景下提升数据库连接的效率。在连接池中,多个数据库连接被提前创建并放入池中,客户端通过池获取连接,而不是每次都建立新的连接。这大大减少了连接创建和销毁的开销。
2025-06-15 15:08:14
1240
原创 Python实现Web请求与响应
Python的requests 库是发送 HTTP 请求和处理响应的最常用工具,它提供了简单、直观的 API,使得 Web请求和响应的操作变得非常容易。Python 的 try语句能够捕获和处理代码块中的异常,从而避免程序崩溃,并且提供了处理错误的机会。使用with open()语句时,Python会自动管理文件的打开和关闭,无需显式调用file.close()。readlines()方法会一次性读取文件中的所有行,并将每行数据存储为一个列表的元素,适用于需要读取整个文件并进行行处理的情况。
2025-06-12 19:21:36
919
原创 PostgreSQL日常维护
对象型数据库是一种基于面向对象编程模型的数据库管理系统,它将数据和操作数据的方法(函数或过程)封装为一个完整的 “对象”,并按照面向对象的概念(如类、继承、多态等)组织和管理数据。核心思想:直接存储和管理对象(如编程语言中的对象实例),避免传统关系型数据库中 “对象 - 关系” 映射的复杂性,适用于处理复杂数据结构(如图形、多媒体、复杂业务逻辑等)。对象型数据库的优势在于处理复杂数据结构和面向对象业务逻辑,适用于需要高灵活性和快速迭代的场景(如互联网应用、实时数据处理)。实体关系型数据库。
2025-06-11 17:21:13
1364
原创 PostgreSQL初体验
postgresql初始化完成后,会有两个默认的表空间,一个是 pg_default,如果用户建表时没有指定表空间,所有新建的表都会放在pg_default 中,另一个是 pg_global,存放的是整个实例数据库所共享的系统表。其丰富的特性、卓越的性能、灵活的应用场景以及强大的社区支持使得PostgreSQL 成为了众多企业和开发者的首选数据库产品。源自加利福尼亚大学伯克利分校的 PostgreSQL,不仅继承了其前身 Ingres 的精髓,更在不断的发展中推陈出新,成为了现代数据库领域的佼佼者。
2025-06-10 16:41:58
1357
原创 MySQL故障排查、生产环境优化与存储引擎MyISAM和InnoDB
在该层上服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化,如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。EXPLAIN 是 MySQL 中用于分析 SQL 执行计划的工具,通过模拟查询执行过程输出关键信息(如访问类型type、使用索引 key、预估扫描行数rows、额外操作 Extra 等),帮助开发者识别全表扫描、索引失效等性能瓶颈,从而指导优化方向(如添加索引、改写查询或调整表结构),是提升数据库效率不可或缺的诊断手段。而在设计表的时候,最关注的一个问题是使用什么存储引擎。
2025-06-09 17:41:50
1164
原创 MySQL主从复制与读写分离
在实际的生产环境中,如果对数据库的读和写都在同一个数据库服务器中探作,无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,一般来说都是通过主从复制(Master-Slave)来同步数据,再通过读写分离来提升数据库并发负载能力的方案来进行部署与实施。如下图所示,一台主 MySQL 服务器带两台从 MySQL 服务器做数据复制前端应用在进行数据库写操作时,对主服务器进行操作,在进行数据库读操作时对两台从服务器进行操作,这样大量减轻了对主服务器的压力。
2025-06-08 15:21:20
1139
原创 MySQL索引与事物
索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。”查询方式,这条组合索引将无效化,所以一般在建立索引时,要先想好相应的查询业务,尽量避免虽然有索引,但是使用不上的问题。例如,有 3个未索引的表 t1、t2、t3,分别只包含列 c1、c2、c3,每个表分别含有 1000 行数据组成,均为 1~1000 的数值,查找对应值相等行的查询如下所示。利用索引,MySQL 加速了 WHERE 子句满足条件行的搜索,而在多表连接查询时、在执行连接时加快了与其他表中的行匹配的速度。
2025-05-29 17:13:37
1033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅