- 博客(71)
- 收藏
- 关注
原创 zabbix企业级分布式监控
监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为5种监控类型。应用性能监控业务交易监控网络性能监控操作系统监控上面5种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上5个细分的领域。在任何一个 IT业务环境中,都会存在各种各样的硬件设备、软件应用等。
2025-07-21 15:44:58
1273
原创 Kubernetes资源管理
在生产环境中,可能会有多个 Kubernetes 集群,面向开发环境、测试环境、预生产环境和生产环境等。身为 Kubernetes 管理员,必然知道每个环境的规模有多大、可调度资源有多少,并且知道如何合理地为容器分配内存和 CPU,所以一个管理员去管理整个 Kubernetes 集群时,很少会有资源分配超出集群可调度范围的情况。但在实际使用时,Kubernetes 集群并非只有一个管理员在使用,也并非只有管理员在使用。
2025-07-15 11:36:15
993
原创 Kubernetes高级调度
设置了污点的 Node 将根据 taint 的 effect: Noschedule、PreferNoschedule、NoExecute 和 Pod之间产生互斥的关系,Pod 将在一定程度上不会被调度到 Node 上。但我们可以在 Pod 上设置容忍(Toleration),意思是设置了容忍的 Pod 将可以容忍污点的存在,可以被调度到存在污点的 Node 上。
2025-07-14 11:47:00
696
原创 Kubernetes高级调度1
HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩器)可以根据观察到的 CPU、内存使用率或自定义度量标准来自动扩展或缩容 Pod 的数量。注意 HPA 不适用于无法缩放的对象,比如 DaemonsetHPA 控制器会定期调整 RC或 Deployment 的副本数,以使观察到的平均 CPU 利用率与用户指定的目标相匹配。
2025-07-11 11:56:50
1028
原创 Kubernetes存储入门
和之前的挂载方式类似,PVC的挂载也是通过 volumes 字段进行配置的,只不过之前需要根据不同的存储后端填写很多复杂的参数’而使用 PVC进行挂载时,只填写 PVC 的名字即可,不需要再关心任何的存储细节,这样即使不是 Kubemetes 管理员,不懂存储的其他技术人员想要使用存储,也可以非常简单地进行配置和使用。所以集群管理员需要根据不同的存储后端来提供各种 PV,而不仅仅是大小和访问模式的区别,并且无须让用户了解这些卷的具体实现方式和存储类型,打扫了存储的解耦,降低了存储使用的复杂度。
2025-07-09 11:54:32
873
原创 Kubernetes配置管理
在传统架构中,配置文件往往被保存在宿主机上,程序启动是可以指定某个配置文件,但是使用容器部署时,容器所在的节点并不固定,所以不能使用这种方式,此处在构建镜像时,如果把配置文件也放在容器里面,那么配置文件一旦有更改的话,也是一件非常麻烦的事情。所以 k8s 抽象了一个 configMap的概念,将配置与 pod 和组件分开,这有助于保持工作负载的可移植性,使配置更易于更改和管理。比如在生产环境中,可以将 Nginx、Redis 等应用的配置文件存储在 ConfigMap 上,然后将其挂载即可使用。
2025-07-09 11:01:27
543
原创 Kubernetes服务发布进阶
或者同时具有很多个后端,需要使用/api-a到A服务,/api-b到B服务,但是由于A和B服务可能并没有/api-a和/api-b的路径,因此需要将/api-x重写为“/”才可以正常到A或者B服务,否则将会出现 404 的报错。service 的作用体现在两个方面,对集群内部,它不断跟踪 pod 的变化,更新 endpoint(端点)中对应 pod 的对象,提供了 ip 不断变化的 pod 的服务发现机制;在这个过程中,需要将旧域名的访问跳转到新域名,此时可以使用 Redirect 功能。
2025-07-07 15:53:49
1029
原创 Kubernetes服务发布基础
service 是 kubernetes 中的一种抽象,用于定义一组 pod 以及访问这一组 pod 的策略、service的作用是将一组 pod 封装为一个虚拟的服务,并提供一个统一的入口,供客户端访问。service 支持负载均衡、服务发现、服务暴露等功能。Service 用于为一组提供服务的 Pod 抽象一个稳定的网络访问地址,是 k8s 实现微服务的核心概念。通过 Service 的定义设置的访问地址是 DNS 域名格式的服务名称,对于客户端应用来说,网络访问方式并没有改变。
2025-07-06 19:22:21
879
原创 Kubernetes Pod调度基础
无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。这种服务叫做无状态服务。无状态服务:就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息)如果在启动一个服务时,不依赖于该服务之前的运行状态,或者不依赖于其他服务,这个服务就是无状态服务。
2025-07-01 13:57:43
1129
原创 Kubernetes Pod深度解析
Pod 是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及运行规范。在 Pod 中,所有容器都被统一安排和调度。对于具体应用而言,Pod 是它们的逻辑主机,Pod 包含业务相关的多个应用容器。所以,Pod 是一组具有共享命名空间、IP地址和端口的容器的集合。
2025-07-01 09:30:23
751
原创 Docker compoes与私有仓库部署
Docker compose 的前身是 Fig,它是一个定义及运行多个 Docker 容器的工具。使用 DockerCompose 时,只需要在一个配置文件中定义多个 Docker 容器,然后使用一条命令启 动这些容器。DockerCompose 会通过解析容器间的依赖关系按先后顺序启动所定义的容器。Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。
2025-06-26 11:47:38
816
原创 Containerd容器技术详解
Containerd(container Daemon)是一个开源的容器运行时,它提供了一种标准化的方式来管理容器的生命周期。该项目最初是由 Docker 开发团队创建的,并在后来成为一个独立的项目,被纳入了 cloudNative Computing Foundation(云原生计算基金会 CNCF)的孵化项目中。以下是 containerd 的主要特点和功能:容器生命周期管理:: Containerd 管理容器的生命周期,包括容器的创建、运行、暂停、恢复、停止和销毁等操作。
2025-06-25 22:37:38
817
原创 Docker高级管理--Dockerfile镜像制作
Dockfile 是一种被 Docker 程序解释的脚本,Dockerfile 由多条的指令组成,每条指令对应Linux 下面的一条命令。Docker 程序将这些 Dockerfile 指令翻译成真正的 Linux 命令。Dockerfile有自己书写格式和支持的命令,Docker 程序解决这些命令间的依赖关系,类似于Makefile。Docker 程序将读取 Dockerfile,根据指令生成定制的镜像。
2025-06-23 15:44:29
984
原创 Docker环境部署
因为 Docker 轻便、快速的特性,可以使应用达到快速迭代的目的。每次小的变更,马上就可以看到效果,而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式,在开发环境中能够快速提高工作效率。Docker 容器能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中一起协同工作。制定一套容器标准能够使系统管理员更改容器的时候,程序员不需要关心容器的变化,而更专注自己的应用程序代码。从而隔离开了开发和管理,简化了开发和部署的成本。
2025-06-20 22:45:03
1457
原创 OpenStack
相信大家都听到很多的阿里云、腾讯云、百度云等等这些词,那到底什么是云计算?云计算又能做什么?云计算(cloud computing)是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等。云计算服务运行在若干台高性能物理服务器之上,提供每秒 10 万亿次的运算能力,可以用于模拟核爆炸、预测气候变化以及市场发展趋势。云计算有广义和狭义之分。狭义的云计算是指通过网络按需向用户提供 IT 基础设施,包括硬件、平台和软件,提供资源的网络被称为“云”。
2025-06-19 09:32:29
923
原创 KVM高级功能部署
企业内部为了使服务器资源达到最大化利用,通常都会进行KVM 虚拟化,每台服务器上运行多台KVM 虚拟机。随着 KVM 虚拟机数量的不断增多,个别服务器会出现资源过载现象,这时候就需要对部分 KVM 虚拟机进行迁移,迁移到负载相对较低的服务器上。为了解决以上问题,针对可停机的KVM 虚拟机,可使用静态迁移的方式来迁移 KVM虚拟机。针对在线提供服务、不可停机的KVM 虚拟机,可使用基于共享存储的动态迁移或基于数据块的动态迁移来完成迁移工作。
2025-06-18 20:52:55
1094
原创 部署KVM虚拟化平台
广义的 KVM 实际上包含两部分,一部分是基于 Linux 内核支持的 KVM 内核模块,另一部分就是经过简化和修改的 Qemu。KVM 内核模块是模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I0 以及为用户提供一个用户空间工具来进行虚拟机的管理。两者相互结合、相辅相成,构成了一个完整的虚拟化平台。
2025-06-17 12:14:45
1067
原创 ELK1日志分析系统
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
2025-06-13 23:37:28
1039
原创 FastDFS分布式存储
FastDFs 是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS 为互联网量身定制,充分考虑了几余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
2025-06-12 16:02:16
1288
原创 GFS分布式文件系统
GlusterFS 是一个开源的分布式文件系统,同时也是 Scale-Out 存储解决方案 Gluster的核心,在存储数据方面具有强大的横向扩展能力,通过扩展不同的节点可以支持数 PB 级别的存储容量。GlusterFS 借助 TCP/IP 或 InfiniBand RDMA 网络将分散的存储资源汇聚在一起,统一提供存储服务,并使用单一全局命名空间来管理数据。GlusterFS 基于可堆叠的用户空间以及无元的设计,可为各种不同的数据负载提供优异的性能。
2025-06-11 15:44:35
1422
原创 MongoDB数据库应用
MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储。MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。MongoDB 使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。数据库(Database):存储数据的容器,类似于关系型数据库中的数据库。集合(Collection):数据库中的一个集合,类似于关系型数据库中的表。
2025-06-10 16:50:25
1589
原创 Nosql之Redis集群
集群,即 Redis Cluster, 是 Redis 3.0开始引入的分布式存储方案。集群由多个节点(Node)组成,Redis 的数据分布在这些节点中。集群中的节点分为主节点和从节点;只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。
2025-06-09 11:38:25
998
原创 Redis哨兵模式
在一主多从的 Redis 架构中,从节点可以起到数据冗余备份和读写分离的作用。如果主节点遇到故障导致无法提供服务时,可以采用手动方式将其一个从节点提升为主节点,保证 Redis 主从能够正常工作。主从切换通过手动完成比较耗时、费力,并且影响 Redis 正常服务。为此,Reids 提供了哨兵功能,实现了自动化的系统监控和故障恢复功能1.概述哨兵(Sentinel),主要负责监控主从节点运行是否正常,以及当主节点出现故障时自动将一个从节点转换为新的主节点。哨兵是一个独立的进程。
2025-06-06 20:11:50
1220
原创 NoSQL之Redis配置与优化
Redis 数据库是一个非关系型数据库,在正式学习 Redis 之前,先来了解关系型数据库与非关系型数据库的概念。
2025-06-05 15:24:37
1313
1
原创 Kafka消息队列
消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到MQ中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。
2025-06-04 10:50:28
865
原创 Nginx+Tomcat负载均衡群集
Tomcat 最初是由 Sun 的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun 贡献给 Apache 软件基金会。由于大部分开源项目 0'Reilly 都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为 Tomcat(公猫)。而 0'Reilly 出版的介绍 Tomcat 的书籍的封面也被设计成了一个公猫的形象。而 Tomcat 的 Logo 兼吉祥物也被设计成了一只公猫。
2025-06-03 11:55:09
1289
原创 Haproxy搭建web群集
Nginx 的upstream 模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有 Haproxy 好。在客户端访问 http://192.168.10.103/test.html后,可以使用 tail -f/var/log/haproxy.log 即时査看 Haproxy 的访问请求日志信息。Haproxy 的日志默认输出到系统的 syslog 中,查看起来不是非常方便,为了更好地管理 Haproxy 的日志,在生产环境中一般单独定义出来,定义的方法如下所述。
2025-05-30 11:26:37
1200
原创 LVS+Keepalived高可用群集
Keepalived 的官方网站位于 http://www.keepalived.org/,本章将以 YUM方式讲解 Keepalived 的安装、配置和使用过程。在非 LVS 群集环境中使用时,Keepalived 也可以作为热备软件使用。
2025-05-29 12:20:56
1441
原创 LVS负载均衡群集(2)
在当今数字化时代,随着互联网业务的蓬勃发展,网站的访问量、应用的并发请求量呈爆炸式增长。如何确保在高并发场景下,业务系统依然能够稳定、高效地运行,为用户提供流畅、优质的服务,成为了每一个企业和开发者必须面对的挑战。负载均衡技术应运而生,它就像一位智慧的“交通指挥官”,能够合理地将网络流量分配到多个服务器上,避免单点故障,提高系统的可用性和扩展性。
2025-05-28 11:49:56
1278
原创 LVS负载均衡群集
根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋。然而从整体上来看,需要先了解一些关于群集的共性特征,才能在构建和维护群集的工作中做到心中有数,避免操作上的盲目性。(1)群集的类型无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口。根据群集所针对的目标差异,可分为以下三种类型。负载均衡群集(Load Balance Cluster):以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能。
2025-05-27 12:11:50
1353
原创 Python网络编程
Socket 是网络通信的基础,是实现网络编程的抽象层。在 Python 中,socket 模块提供了对 Socket 的封装,使得我们可以轻松实现 TCP 和 UDP 通信。Socket 接口提供了发送、接收、连接、断开等操作,允许我们在程序中实现网络通信。
2025-05-26 12:27:25
825
原创 python操作MySQL数据库
连接池技术能够在高并发场景下提升数据库连接的效率。在连接池中,多个数据库连接被提前创建并放入池中,客户端通过池获取连接,而不是每次都建立新的连接。这大大减少了连接创建和销毁的开销。READ UNCOMMITTED:允许脏读,最低的隔离级别,性能最好,但容易出现数据不一致的情况。READ COMMITTED:解决了脏读问题,但可能出现不可重复读。REPEATABLE READ:解决了脏读和不可重复读问题,但可能出现幻读。SERIALIZABLE:解决了所有问题,但性能最差,可能导致事务长时间等待。
2025-05-25 13:51:41
1413
原创 Flask框架
Flask 作为一个微框架,强调简单性和灵活性。Werkzeug:这是 Flask 的底层库,提供了 WSGI 接口、HTTP 请求和响应处理、路由等核心功能。Jinja2:一个功能强大的模板引擎,用于动态生成 HTML 页面。Flask 的设计目的是让开发者能够快速开发应用,并提供了灵活的方式进行扩展。如果你不需要复杂的功能,Flask 的核心本身已经足够满足需求。如果你需要更多高级特性,可以通过 Flask 的扩展库进行补充。
2025-05-23 20:36:16
2518
原创 python文件操作与异常捕获
Python 的 try语句能够捕获和处理代码块中的异常,从而避免程序崩溃,并且提供了处理错误的机会。readlines()方法会一次性读取文件中的所有行,并将每行数据存储为一个列表的元素,适用于需要读取整个文件并进行行处理的情况。打开文件时,我们需要指定文件模式(即操作文件的方式)。writelines()方法接受一个可选代对象(如列表、元组等),将其元素写入文件中,每个元素将作为一行写入文件。readline()方法每次读取一行文件内容,适用于需要逐行处理文件的情况。读取后的内容会作为字符串返回。
2025-05-22 16:26:11
842
原创 python实现Web请求与响应
Web 请求与响应是 Web 通信的基础。Web 请求由客户端发起,服务器处理后返回响应HTTP(Hypertext Transfer Protocol)是Web 上传输数据的协议,负责浏览器与服务器之间的通信。GET:请求服务器获取资源,通常用于读取数据。POST:提交数据到服务器,通常用于表单提交、文件上传等,PUT:更新服务器上的资源,DELETE:删除服务器上的资源.
2025-05-22 11:52:25
954
原创 PostgreSQL日常维护
具体说来,就是它必须要有你想备份的表的读 权限,因此为了备份整个数据库你几乎总是必须以一个数据库超级用户来运行它(如果你没有足够的特权 来备份整个数据库,你仍然可以使用诸如-n schema 或-t table 选项来备份该数据库中你能够 访问的部分)。参阅 psql 的手册获取更多信息。由 pg_dump 创建的备份在内部是一致的,也就是说,转储表现了 pg_dump开始运行时刻的数据库快照,且在 pg_dump 运行过程中发生的更新将不会被转储pg_dump 工作的时候并不阻塞其他的对数据库的操作。
2025-05-21 19:46:56
2852
原创 PostgreSQL初体验
PostgreSgL,作为一个功能强大且开源的对象关系型数据库管理系统(ORDBMS),自其诞生以来,便以其卓越的性能和丰富的特性赢得了全球开发者和企业的青睐。源自加利福尼亚大学伯克利分校的 PostgreSQL,不仅继承了其前身 Ingres 的精髓,更在不断的发展中推陈出新,成为了现代数据库领域的佼佼者。2.特点PostgreSqL 完全开源,遵循PostgreSQL许可证,这一特性使得用户可以自由地使用、修改和分发 PostgreSqL,无需担心版权问题,同时也促进了全球开发者的积极参与和贡献。
2025-05-20 11:18:04
1154
原创 MySQL故障排查与生产环境优化
前言MySQL 是目前企业最常见的数据库之一,占用绝大部分市场份额。在日常维护管理的过程中相信大家肯定会遇到很多常见的故障。为了提高故障处理的及时性,本章案例将常见故障进行汇总,增长学习经验。生产环境中数据库的默认配置无法满足高性能网站架构的需求,本章会从实际工作经验出发,总结 MySQL 数据库应该如何优化。
2025-05-19 16:12:45
1549
原创 MySQL高可用
目前 MySQL 已经成为市场上主流数据库之一,考虑到业务的重要性,MySQL数据库单点问题已成为企业网站架构中最大的隐患。随着技术的发展,MHA的出现就是解决 MySQL 单点的问题。另外随着企业数据量越来越庞大,数据库的压力又成为企业的另一个瓶颈,MySQL多主多从架构的出现可以减轻 MySQL本身的压力。本章将主要围绕 “MySQL 主主复制+Keepalived+HAProxy”这一经典高可用架构展开,通过理论结合实践,解析如何通过开源工具实现数据库的故障自动转移、负载均衡和读写分离。
2025-05-18 16:31:12
768
原创 MySQL主从复制与读写分离
启动 Mycat2服务,需要有真实的数据库服务器支撑才能运行,因此,需要在 MySQL 服务器(其它被 Mycat2 支持的数据库也如此)创建账号并给账号授权,然后在 Mycat2所在的宿主系统用 MySQL,客户端用创建好的账号远程进行连接,验证账号的有效性和正确性。未来,它还会支持更多类型的存储。不过,无论是哪种存储方式,在最终用户看,MyCAT里都是一个传统的数据库表,支持标准的 SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。
2025-05-16 00:05:12
1572
企业运维Shell脚本在企业运维中的应用:实战案例与面试题解析了企业级Shell
2025-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅