自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Prometheus监控平台部署与应用

Prometheus 起源于 SoundCloud ,因为微服务迅速发展,导致实例数量以几何倍数递增,不得不考虑设计一个符合以下几个功能的监控系统:多维数据模型,可以按照实例,服务,端点和方法之类的维度随意对数据进行切片和切块。操作简单,可以随时随地部署监控服务,甚至在本地工作站上,而无需设置分布式存储后端或重新配置环境。可扩展的数据收集和分散的架构,以便于可以可靠的监控服务的许多实例,独立团队可以部署独立的监控服务。转化为一种查询语言,可以利用数据模型进行有效的警报和图形展示。

2025-08-09 11:44:27 681

原创 Zabbix 企业级高级应用

资源清单。

2025-08-08 17:08:19 728

原创 部署 Zabbix 企业级分布式监控

监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为 5 种监控类型。应用性能监控业务交易监控网络性能监控操作系统监控上面 5 种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上 5 个细分的领域。在任何一个 IT 业务环境中,都会存在各种各样的硬件设备、软件应用等。

2025-08-06 11:43:40 722

原创 Kubernetes资源管理

在生产环境中,可能会有多个 Kubernetes 集群,面向开发环境、测试环境、预生产环境和生产环境等。身为 Kubernetes 管理员,必然知道每个环境的规模有多大、可调度资源有多少,并且知道如何合理地为容器分配内存和 CPU,所以一个管理员去管理整个 Kubernetes 集群时,很少会有资源分配超出集群可调度范围的情况。但在实际使用时,Kubernetes 集群并非只有一个管理员在使用,也并非只有管理员在使用。

2025-08-04 20:22:09 543

原创 Kubernetes高级调度02

设置了污点的 Node 将根据 taint 的 effect: Noschedule、PreferNoschedule、NoExecute 和 Pod之间产生互斥的关系,Pod 将在一定程度上不会被调度到 Node 上。但我们可以在 Pod 上设置容忍(Toleration),意思是设置了容忍的 Pod 将可以容忍污点的存在,可以被调度到存在污点的 Node 上。

2025-07-31 10:11:49 963

原创 Kubernetes高级调度01

HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩器)可以根据观察到的 CPU、内存使用率或自定义度量标准来自动扩展或缩容 Pod 的数量。注意 HPA 不适用于无法缩放的对象,比如 DaemonSet.HPA 控制器会定期调整 RC或 Deployment 的副本数,以使观察到的平均 CPU 利用率与用户指定的目标相匹配。

2025-07-30 10:16:05 564 1

原创 Kubernetes存储入门

和之前的挂载方式类似,PVC 的挂载也是通过 volumes 字段进行配置的,只不过之前需要根据不同的存储后端填写很多复杂的参数’而使用 PVC进行挂载时,只填写 PVC的名字即可,不需要再关心任何的存储细节,这样即使不是 Kubemetes 管理员,不懂存储的其他技术人员想要使用存储,也可以非常简单地进行配置和使用。所以集群管理员需要根据不同的存储后端来提供各种 PV,而不仅仅是大小和访问模式的区别,并且无须让用户了解这些卷的具体实现方式和存储类型,打扫了存储的解耦,降低了存储使用的复杂度。

2025-07-29 17:08:50 884

原创 Kubernetes配置管理

(1) 先以字符值的形式创建 ConfigMap(2) 使用 valueFrom 从 ConfigMap 中定义变量kind: Podmetadata:spec:valueFrom:valueFrom:EOF在此案例中,env 用于定义环境变量,valueFrom 指定了环境变量的值来源于 ConfigMap。“name: my - name01” 用于定义容器中用的变量名,其值来自于 CM 中的 user.1 的值。“name1” 是在 CM 中定义的 key。

2025-07-26 17:21:47 659

原创 Kubernetes 服务发布进阶

ingress - controller 并不是 k8s 自带的组件,实际上 ingress - controller 只是一个统称,用户可以选择不同的 ingress - controller 实现,目前,由 k8s 维护的 ingress - controller 只有 google 云的 GCE 与 ingress - nginx 两个,其他还有很多第三方维护的 ingress - controller,具体可以参考官方文档。当一个服务需要更换域名时,并不能对其直接更改,需要一个过渡的过程。

2025-07-25 10:41:09 669

原创 Kubernetes服务发布基础

service 是 kubernetes 中的一种抽象,用于定义一组 pod 以及访问这一组 pod 的策略、service 的作用是将一组 pod 封装为一个虚拟的服务,并提供一个统一的入口,供客户端访问。service 支持负载均衡、服务发现、服务暴露等功能。Service 用于为一组提供服务的 Pod 抽象一个稳定的网络访问地址,是 k8s 实现微服务的核心概念。通过 Service 的定义设置的访问地址是 DNS 域名格式的服务名称,对于客户端应用来说,网络访问方式并没有改变。

2025-07-24 16:16:35 854

原创 kubernetes Pod调度基础

无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。这种服务叫做无状态服务。无状态服务:就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息)如果在启动一个服务时,不依赖于该服务之前的运行状态,或者不依赖于其他服务,这个服务就是无状态服务;

2025-07-22 17:30:56 888

原创 Kubernetes Pod深度理解

Docker 只是容器 Runtime(运行时)的一种们还有很多容器 Runtime,比如 Rkt、CRI-0等,而Kubernetes 作为目前最流行的容器编排工具,需要支持各个 Runtime 并且不依赖于底层 Runtime 的实现技术,于是就抽象出了 Pod 这个概念,用于管理多个紧密相连的符合 CRI 标准的容器。在使用裸机或裸容器部署时,一般很难对应用做很完善的健康检査,而 Pod 提供的探针可以很方便的用来检测容器的应用是否正常。重启策略是 Pod 级别的配置,适用于Pod 中的所有容器。

2025-07-18 22:21:37 1328

原创 Kubernetes架构原理与集群环境部署

由 CoreoSk 开发的一个项目,很多部署工具或者 k8s 的发行版都是默认安装,flannel 是可以用集群现有的 etcd,利用 api 方式存储自身状态信息,不需要专门的数据存储,是配置第三层的 ipv4 overlay 网络,在此网络内,每个节点一个子网,用于分配 ip 地址,配置 pod 时候,节点上的网桥接口会为每个新容器分配一个地址,同一主机中的 pod 可以使用网桥通信,不同主机的 pod 流量封装在 udp 数据包中,路由到目的地址。可以理解为一种分布式的非关系型数据库。

2025-07-17 19:41:05 1081 1

原创 Containerd容器技术详解

Containerd 的架构是 modularity(模块化)和可扩展性的体现,它被设计为一个轻量级、高度可定制的容器运行时。可以看出 Containerd 采用的也是 C/S 架构,服务端通过 unix domain socket 暴露低层的 gRPCAPI 接口出去,客户端通过这些 API 管理节点上的容器,每个 Containerd 只负责一台机器,Pull 镜像,对容器的操作(启动、停止等),网络,存储都是由 Containerd 完成。具体运行容器由 runc 负责。

2025-07-14 23:15:46 1140

原创 Docker高级管理--Compose容器编排与Harbor私有仓库

Docker容器应用的开发和运行离不开可靠的镜像管理,Docker官方提供了原生的Registry,但其功能比较简单,而且没有可视化界面,自然无法满足企业级的需求。为了解决以上需求,VMware公司推出了Harbor,Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。:用户和仓库都是基于项目进行组织的,而用户在项目中可以拥有不同的权限。

2025-07-13 20:55:49 1135

原创 Docker-构建镜像并实现LNMP架构

制作dockerfile文件。制作dockerfile。制作dockerfile。制作dockerfile。编辑nginx配置文件。编辑mysql配置文件。编辑容器前台运行脚本。编辑容器前台运行脚本。编辑容器前台运行脚本。

2025-07-12 15:55:30 769

原创 Docker高级管理--容器通信技术与数据持久化

特点:基于 Bridge 或 Overlay 创建自定义网络,支持 DNS 自动解析。优点:灵活配置网络策略,推荐生产环境使用特性描述网络隔离基于用户定义的网桥或 overlay 网络,支持多子网隔离核心组件自定义网桥(如 docker network create my-netDNS 服务:自动解析容器名到 IP。通信机制同一网络内容器通过容器名直接通信。跨网络通信需路由或端口映射。IP 管理通过 IPAM(IP Address Management)自动分配唯一 IP。

2025-07-11 01:01:46 1008

原创 容器技术技术入门与Docker环境部署

因为 Docker 轻便、快速的特性,可以使应用达到快速迭代的目的。每次小的变更,马上就可以看到效果,而不用将若干个小变更积攒到一定程度再变更。每次变更一小部分其实是一种非常安全的方式,在开发环境中能够快速提高工作效率。Docker 容器能够帮助开发人员、系统管理员、质量管理和版本控制工程师在一个生产环节中一起协同工作。制定一套容器标准能够使系统管理员更改容器的时候,程序员不需要关心容器的变化,而更专注自己的应用程序代码。从而隔离开了开发和管理,简化了开发和部署的成本。

2025-07-09 17:26:48 1238

原创 OpenStack云平台管理

功能:作为数据资源计量、监控和控制的集中来源,收集 OpenStack 各服务资源使用数据(如虚拟机 CPU 使用率、存储使用量等 ),为用户提供记账依据,也辅助进行资源监控、优化,比如根据资源使用情况调整资源分配、发现异常资源占用等。可灵活扩展存储容量,按需付费,支持多种后端存储(如本地存储、SAN、NAS 等 ),满足不同性能、容量需求,保障数据持久化存储,虚拟机重启、迁移等不丢失块存储数据。租户可自定义网络结构(如子网、路由器、安全组等 ),且各租户网络隔离,互不干扰,保障网络环境安全与灵活。

2025-07-07 22:56:07 1211

原创 Openstack入门体验

3.工作流程:用户通过 API 上传镜像文件,glance-api 接收镜像文件并将其存储在指定的存储后端,同时将镜像的元数据(如镜像名称、格式、大小、操作系统等)存储在 glance-registry 中。2.架构:由 keystone-api(提供 API 接口)、keystone-db(存储用户、角色、租户、令牌等信息)、身份认证驱动(如 LDAP、SQL 等)组成。用户可以通过仪表盘直观地查看和操作计算、存储、网络等资源,进行虚拟机的创建、配置和管理,以及查看系统的状态和日志等。

2025-07-06 20:05:00 1328

原创 KVM高级功能部署

在升级 KVM 宿主机硬件设备时,可以将 KVM 宿主机上运行的 KVM 虚拟机迁移到其他 KVM 宿主机上,以解决对硬件的依赖,从而实现业务不中断情况下对物理硬件设备的升级。通过 KVM 虚拟机迁移将多台负载较低的 KVM 宿主机上的 KVM 虚拟机集中迁移到某一台 KVM 宿主机上,从而达到节约资源的目的。当一台 KVM 宿主机的负载比较高时,可将源 KVM 宿主机上的部分虚拟机迁移到负载较低的 KVM 宿主机中,以保证服务质量。意思是告诉用户没有图形界面,跨地域迁移,实现 KVM 虚拟机的远程迁移。

2025-07-04 23:47:31 1319

原创 部署KVM虚拟化平台

在服务器虚拟化领域,能将一台物理服务器虚拟成多个独立的虚拟机,提高服务器资源的利用率,降低企业的硬件成本和运维成本。QEMU可以独立使用,也经常与其他虚拟化和模拟工具一起使用,如‌VirtualBox或‌VMware的用户界面,或者与‌libvirt这样的虚拟化管理库配合使用,以简化虚拟机的管理和操作。:当在支持硬件虚拟化的处理器上运行时,QEMU可以利用‌KVM(Kernel-based Virtual Machine)模块提供快速虚拟化,使虚拟机以接近物理硬件的速度运行,同时提供隔离和资源控制的优点。

2025-07-04 00:15:11 921

原创 ELK日志分析系统

默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。当你创建一个索引的时候,你可以指定你想要的分片的数量。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。

2025-07-02 17:57:35 954

原创 FastDFS分布式存储

比如一个 group内有A、B、C三个 storage server,A向C同步到进度为T1(T1以前写的文件都已经同步到B上了),B向C同步到时间戳为T2(T2 >T1),tracker 接收到这些同步进度信息时,就会进行整理,将最小的那个做为C的同步时间戳,本例中 T1即为C的同步时间戳为T1(即所有T1 以前写的数据都已经同步到C上了);同理,根据上述规则,tracker 会为A、B生成一个同步时间戳。功能包括:文件存储,文件同步,文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。

2025-06-30 19:01:09 1070

原创 GFS分布式文件系统

GlusterFS 是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储数据方面具有强大的横向扩展能力,通过扩展不同的节点可以支持数PB级别的存储容量。GlusterFS借助TCP/IP或InfiniBandRDMA 网络将分散的存储资源汇聚在一起,统一提供存储服务,并使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间以及无元的设计,可为各种不同的数据负载提供优异的性能。

2025-06-29 20:49:28 956

原创 MongleDB数据库应用

0:备份的数据存放位置,例如:/data/dump,当然该目录需要提前建立,在备份完成后,系统自动在 dump 目录下建立一个 test 目录,这个目录里面存放该数据库实例的备份数据。所有存储在集合中的数据都是 BSON 格式。在 MongoDB 中,数据库的创建是一个简单的过程,当你首次向 MongoDB 中插入数据时如果数据库不存在,MongoDB 会自动创建它。注意: 在 MongoDB 中,集合只有在内容插入后才会创建,就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

2025-06-28 17:12:45 1174

原创 NoSQL之Redis集群

redis 集群使用投票容错机制,如果集群中超过半数以上的节点投票认为某节点挂了,那么这个节点就会被认为挂掉了,所以,在设置 redis 集群时,最少的 master 节点为3个,如果每一个master 节点都添加一个 slave节点的话,搭建一个redis集群总共需要6个节点,即3个master 节点,3 个slave 节点。自动迁移: Redis Cluster 具有自动迁移功能,当节点加入或离开集群时,系统会自动重新分配数据,保持各个节点上哈希槽的均衡。集群中的节点会相互监控,检测节点的健康状态。

2025-06-25 17:37:36 1054

原创 NoSQL 之Redis哨兵

如果该节点是主节点,则哨兵会进一步判断是否需要对其进行故障恢复,具体过程如下:该哨兵节点会询问其他哨兵节点来了解它们是否也认为该主节点已经主观下线,如果达到指定数量,则哨兵会认为其客观下线,此时各哨兵节点会进行协商,选举出一个领导者哨兵节点,并由该领导者哨兵节点对其进行故障转移操作。当主节点进行切换后,一个从节点变成了主节点。当其他哨兵节点收到信息后,会判断发送信息的哨兵是不是新发现的哨兵,如果是则将其加入已发现的哨兵列表中并创建到该节点的连接,这样就实现了自动发现从节点和其他哨兵节点。

2025-06-24 17:52:36 803

原创 NoSQL之Redis配置优化

Redis(RemoteDictionaryServer,远程字典型)是一个开源的、使用C语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用 key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis 服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis 进程,而 Redis 的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个 Redis 进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;

2025-06-24 11:47:34 1327

原创 Kafka消息队列

ZooKeeper 是一种分布式协调技术,所谓分布式协调技术主要是用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种共享资源,防止造成资源竞争(脑裂)的后果。脑裂是指在主备切换时,由于切换不彻底或其他原因,导致客户端和 Slave 误以为出现两个 activemaster,最终使得整个集群处于混乱状态。

2025-06-23 11:41:33 1229

原创 Nginx+Tomcat负载均衡群集

(4)打开浏览器访问测试:http://192.168.10.102:8080/,或者http://192.168.10.103:8080/,如果出现如图所示的界面,则表示 Tomcat 已经启动成功。通过浏览器访问 http://192.168.10.102:8080/,出现如图所示的页面,说明该Tomcat 站点已经配置成功,并且已经能够运行JSP了。(4)创建/web/webapp1 目录,修改 Tomcat 配置文件 server.xml,将网站文件目录更改 到/web/webapp1/路径下。

2025-06-21 10:57:14 1005

原创 使用Haproxy搭建web群集

例如,使用基于源 IP 的群集调度算法,有三个节点 A、B、C,第一个用户第一次访问被指派到了 A,第二个用户第一次访问被指派到了 B,当第一个用户第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到 B,只要负载均衡调度器不重启,第一个用户访问都会被指派到 A,第二个用户访问都会被指派到 B,实现群集的调度。小动态分配前端请求。例如,有三个节点 A、B、C,各节点的连接数分别为A:4、B:5、C:6,此时如果有第一个用户连接请求,会被指派到 A上,连接数变为 A:5、B:5、C:6;

2025-06-19 17:59:16 1135

原创 LVS+Keepalived高可用群集

对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。在基于 LVS+Keepalived 实现的 LVS 群集结构中,至少包括两台热备的负载调度器,三台以上的节点服务器。本节将以 DR 模式的 LVS 群集为基础,增加一台从负载调度器,使用Keepalived 来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的 LVS 网站群集平台,如图 所示。热备组内的每台路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址。

2025-06-19 16:42:20 1011

原创 LVS负载均衡群集(LVS-DR)

LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用,节点 Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director Server。修改源MAC地址为Director Server 的 MAC 地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源IP地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。除此以外,Web 服务的配置与 NAT 方式类似。

2025-06-17 17:30:54 787

原创 LVS负载均衡群集

HA 的工作方式包括双工和主从两种模式。(Network Address Translation):简称 NAT 模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。第二层,服务器池:群集所提供的应用服务(如HTTP、FTP)由服务器池承担,其中每个节点具有独立的RIP(RealIP,真实 IP)地址,只处理调度器分发过来的客户机请求。第三层,共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。

2025-06-17 10:04:17 1030

原创 python操作MySQL数据库

描述:事务只能读取其他事务已经提交的数据,避免了脏读,但仍然可能遇到“不可重复读”(Non-repeatable Read)的问题。这避免了“不可重复读”的问题,但依然可能会出现“幻读”(Phantom Read),即一个事务读取的数据集在事务执行过程中发生了变化。然而,这种隔离级别的性能开销最大,可能导致大量的锁竞争。应用场景:对于需要保证事务数据一致性的场景,例如金融系统中的余额操作等,可以考虑使用该隔离级别。MySQL支持四种事务隔离级别,它们定义了在并发事务执行时一个事务的操作对于其他事务的影响。

2025-06-16 11:08:13 854

原创 Flask框架

render_template(‘greet.html’,name=name):Flask 会加载 greet.html 模板,并将 name的值传递给模板。模板中的{{ name }}会被替换为传入的值。Flask(__name __ ):创建 Flask 应用实例,__name__参数用于 Flask 了解当前模块的名称,通常我们使用这个参数来帮助 Flask 在不同模块间进行配置。Flask 的应用结构非常简单,只需创建一个 Python 文件,并通过 Flask()类来实例化应用对象。

2025-06-14 10:31:07 1131

原创 python实现web请求与响应

Python的 requests 库是发送 HTTP 请求和处理响应的最常用工具,它提供了简单、直观的 API,使得 Web 请求和响应的操作变得非常容易。RequestException:捕获其他类型的网络相关错误(如连接问题、DNS解析失败等)RequestException是所有 requests 库异常的基类,可以捕获任何requests 库抛出的异常。readlines()方法会一次性读取文件中的所有行,并将每行数据存储为一个列表的元素,适用于需要读取整个文件并进行行处理的情况。

2025-06-13 10:56:33 1028

原创 PostgreSQL日常维护

trust:这定义了认证方法。pg_database是系统目录表,所以无论当前连接到哪个数据库,该表始终可见系统表默认属于pg_catalog 模式,而pg_catalog 始终位于搜索路径(search_path)的首位。结果是,如果在恢复时使用的是一个自定义的 template1,你必须从 template0 创建一个空的数据库,正如上面的例子所示。SQL 转储方法的思想是创建一个由 SQL,命令组成的文件,当把这个文件回馈给服务器时,服务器将利用其中的SQL命令重建与转储时状态一样的数据库。

2025-06-12 10:19:13 900

原创 PostgreSQL初体验

它可隔离多个用户之间相同名称的对象。实际存储数据库对象的逻辑空间->逻辑上的对象编号,schema 是依附于数据库而存在的。表空间实际上是文件系统中的一个位置链接,即一个目录,它是一个逻辑上的概念,目录是它的物理存在方式。0ID:所有数据库对象都有各自的 oid(object identifiers),oid 是一个无符号的四字节整数,相关对象的 oid 都存放在相关的 system catalog 表中,比如数据库的 oid 和表的 oid 分别存放在 pg database,pg class 表中。

2025-06-10 17:55:32 1147

空空如也

空空如也

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

TA关注的人

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