自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git+Jenkins实战(一)

因此,我们可以将 jenkins 的某个项目的 webhook 放置到 gitlab,当 gitlab 中对应的项目代码有更新时,就会向 jenkins 触发一个构建的事件,这样就完成了一个项目自动触发的流程。在此案例中,我们将进一步学习 jenkins 较为复杂一点的应用,本案例将 ansible 集成到了 jenkins 中,让 jenkins 利用 ansible 插件,向远程主机推送文件和指令,完成自动化的项目部署。注意在 “指定分支” 的地方,将分支名称修改为 “*/main”。

2025-08-20 10:55:59 942

原创 Git+Jenkins 基本使用

Jenkins 是一个功能强大的应用程序,允许持续集成和持续交付项目(持续部署),无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成 Jenkins 可以用于一些测试和部署技术。Jenkins 原名 Hudson,2011 年改为现在的名字,它是一个开源的实现持续集成的软件工具。官方网站网址:https://jenkins.io/。Jenkins 能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能通过图表的形式,形象地展示项目构建的趋势和稳定性。

2025-08-19 11:03:13 1317

原创 代码管理系统简介与部署

Git(读音为 /gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 的优势就是:每个人都拥有全部的代码,可以避免一些安全隐患。不会因为服务器损坏或者网络问题,造成不能工作的情况。所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时 push 到相应的服务器或其他用户那里。

2025-08-18 21:07:52 893

原创 SaltStack 基础

(1) 为每隔minion编写对应的sls文件name: lisiEOF·sls 代表 SaltStack 文件,是一种 yaml 格式的描述文件,SLS 描述了系统的目标状态,由格式简单的数据构成。这经常被称作配置管理,top.sls 是配置管理的入口文件,一切都是从这里开始,在 master主机上,默认存放在 /srv/salt/ 目录,如果是自定义 pillar 数据,需要放置在 /srv/pillar 目录下。

2025-08-15 19:22:38 878

原创 Ansible企业级实战

Play” 的主体是任务列表(Tasks list)。任务列表中的任务按照次序逐个在 hosts 中指定的所有主机上执行,在顺序执行这些任务时,如果发生错误会将所有已执行任务回滚。因此,需要在更正 Playbook 中的错误后重新执行这些任务。Task 的任务是按照指定的参数去执行模块。每个 task 使用 name 输出 Playbook 的运行结果,一般输出内容为描述该任务执行的步骤。如果没有提供将输出 action 的运行结果。

2025-08-14 17:29:49 980

原创 Ansible部署应用

Ansible 是基于 Python 开发,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署 变得更加简单。可同时支持多台主机并行管理,使得管理主机更加便捷。

2025-08-13 17:01:19 1134

原创 云原生环境Prometheus企业级监控实战

node-exporter + prometheus + grafana 是一套非常流行的 Kubernetes 监控方案。node-exporter:节点级指标导出工具,可以监控节点的 CPU、内存、磁盘、网络等指标,并暴露Metrics 接口。Prometheus:时间序列数据库和监控报警工具,可以抓取 Cadvisor 和 node-exporter 暴露的Metrics接口,存储时序数据,并提供 PromQL 查询语言进行监控分析和报警。

2025-08-12 20:21:06 1375

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

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

2025-08-09 11:44:27 1284

原创 Zabbix 企业级高级应用

资源清单。

2025-08-08 17:08:19 1002

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

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

2025-08-06 11:43:40 1174

原创 Kubernetes资源管理

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

2025-08-04 20:22:09 809

原创 Kubernetes高级调度02

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

2025-07-31 10:11:49 1238

原创 Kubernetes高级调度01

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

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

原创 Kubernetes存储入门

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

2025-07-29 17:08:50 1147

原创 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 976

原创 Kubernetes 服务发布进阶

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

2025-07-25 10:41:09 979

原创 Kubernetes服务发布基础

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

2025-07-24 16:16:35 1204

原创 kubernetes Pod调度基础

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

2025-07-22 17:30:56 1189

原创 Kubernetes Pod深度理解

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

2025-07-18 22:21:37 1608

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

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

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

原创 Containerd容器技术详解

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

2025-07-14 23:15:46 1362

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

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

2025-07-13 20:55:49 1350

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

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

2025-07-12 15:55:30 811

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

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

2025-07-11 01:01:46 1167

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

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

2025-07-09 17:26:48 1384

原创 OpenStack云平台管理

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

2025-07-07 22:56:07 1465

原创 Openstack入门体验

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

2025-07-06 20:05:00 1549

原创 KVM高级功能部署

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

2025-07-04 23:47:31 1367

原创 部署KVM虚拟化平台

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

2025-07-04 00:15:11 1085

原创 ELK日志分析系统

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

2025-07-02 17:57:35 1018

原创 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 1104

原创 GFS分布式文件系统

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

2025-06-29 20:49:28 1208

原创 MongleDB数据库应用

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

2025-06-28 17:12:45 1285

原创 NoSQL之Redis集群

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

2025-06-25 17:37:36 1094

原创 NoSQL 之Redis哨兵

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

2025-06-24 17:52:36 832

原创 NoSQL之Redis配置优化

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

2025-06-24 11:47:34 1401

原创 Kafka消息队列

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

2025-06-23 11:41:33 1291

原创 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 1061

原创 使用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 1166

原创 LVS+Keepalived高可用群集

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

2025-06-19 16:42:20 1070

空空如也

空空如也

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

TA关注的人

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