- 博客(67)
- 收藏
- 关注
原创 SaltStack部署应用
在生产环境中,服务器往往不只是一台,有可能是成千上万台。对于运维人员来说,如果单独的对每台服务器进行管理,工作难度比较大。这时部署自动化运维就可以尽可能安全、高效的完成这些工作。一般,会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的 Agent 程序来完成管理功能,如:SaltStack、Puppet、Func、Zabbix 等;另外一类是不需要配置代理工具的,可以直接基于 SSH 服务来完成管理功能,如:Ansible、Fabric 等。本章将主要介绍自动化运维工具 SaltSta
2025-08-14 17:07:30
530
原创 Ansible企业级实战
Playbook 的设计目的是为了让某个或某些主机以某个用户身份去执行完成相应的任务。其中用于指定要执行指定任务的主机用 hosts 定义,可以是一个也可以是由冒号分隔的多个主机组;用于指定被管理主机上执行任务的用户用 remote_user 来定义,如下面示例中所示。remote_user 也可定义指定用户通过 sudo 的方法在被管理主机上运行指令,甚至可以在使用 sudo 时用 sudo_user 指定 sudo 切换的用户。
2025-08-13 20:43:56
662
原创 云原生环境 Prometheus 企业级监控实战
node - exporter + prometheus + grafana 是一套非常流行的 Kubernetes 监控方案。node - exporter:节点级指标导出工具,可以监控节点的 CPU、内存、磁盘、网络等指标,并暴露 Metrics 接口。Prometheus:时间序列数据库和监控报警工具,可以抓取 Cadvisor 和 node - exporter 暴露的 Metrics 接口,存储时序数据,并提供 PromQL 查询语言进行监控分析和报警。
2025-08-11 17:52:16
907
原创 Prometheus 监控平台部署与应用
Prometheus 具有足够的通用性,可以监控各个级别的实例:你自己的应用程序、第三方服务、主机或网络设备等等。此外 Prometheus 特别适用于监控动态云环境和 Kubernetes 云原生环境。但是也需要注意的是 Prometheus 并不是万能的,目前并没有解决下面的一些问题:日志和追踪(Prometheus 只处理指标,也称为时间序列)基于机器学习或 AI 的异常检测水平扩展、集群化的存储。
2025-08-09 13:58:38
726
原创 Kubernetes 日志收集
基于云原生 12 要素开发的程序,一般会将日志直接输出到控制台,并非是指定一个文件存储日志,这一点和传统架构还是有区别的。但是公司内的程序并非都是基于云原生要素开发的,比如一些年代已久的程序,这类程序如果部署至 Kubernetes 集群中,就需要考虑如何将输出至本地文件的日志采集到 Elasticsearch。
2025-08-04 17:57:19
800
原创 部署Zabbix企业级分布式监控
监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即测、预防的意思。监控,对应的英文单词是 Monitoring。在计算机领域,可以将其分为5种监控类型。应用性能监控业务交易监控网络性篪监控操怍异妎缜噥璀圪蠱曦燉兵迩铐鷂朏鍬秱朦途套铹淶惕õ弗苟û帟耥釙琳控上面5种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上5个细分的领域。在任何一个 IT业务环境中,都会存在各种各样的硬件设备、软件应用等。
2025-08-04 17:48:11
797
原创 Kubernetes资源管理
在生产环境中,可能会有多个 Kubernetes 集群,面向开发环境、测试环境、预生产环境和生产环境等。身为 Kubernetes 管理员,必然知道每个环境的规模有多大、可调度资源有多少,并且知道如何合理地为容器分配内存和 CPU,所以一个管理员去管理整个 Kubernetes 集群时,很少会有资源分配超出集群可调度范围的情况。但在实际使用时,Kubernetes 集群并非只有一个管理员在使用,也并非只有管理员在使用。
2025-07-31 15:37:26
882
原创 Kubernetes 高级调度 02
设置了污点的 Node 将根据 taint 的 effect:NoSchedule、PreferNoSchedule、NoExecute 和 Pod 之间产生互斥的关系,Pod 将在一定程度上不会被调度到 Node 上。但我们可以在 Pod 上设置容忍(Toleration),意思是设置了容忍的 Pod 将可以容忍污点的存在 march>,可以被调度到存在污点的 Node 上。
2025-07-30 17:36:06
630
原创 Kubernetes 高级调度 01
HPA(Horizontal Pod Autoscaler,水平 Pod 自动伸缩器)可以根据观察到的 CPU、内存使用率或自定义度量标准来自动扩展或缩容 Pod 的数量。注意 HPA 不适用于无法缩放的对象,比如 DaemonSet。HPA 控制器会定期调整 RC 或 Deployment 的副本数,以使观察到的平均 CPU 利用率与用户指定的目标相匹配。
2025-07-29 17:51:38
768
原创 Kubernetes 存储入门
对于大多数的项目而言,数据文件的存储是非常常见的需求,比如存储用户上传的头像、文件以及数据库的数据。在 Kubernetes 中,由于应用的部署具有高度的可扩展性和编排能力(不像传统架构部署在固定的位置),因此把数据存放在容器中是非常不可取的,这样也无法保障数据的安全。
2025-07-28 16:55:00
801
原创 Kubernetes 配置管理
kind: Podmetadata:spec:env:valueFrom:key: name1valueFrom:key: name2EOF在此案例中,env 用于定义环境变量,valueFrom 指定了环境变量的值来源于 ConfigMap。“name: my-name01” 用于定义容器中用的变量名,其值来自于 CM 中的 name1 的值。“name1” 是在 CM 中定义的 key。
2025-07-25 17:10:31
582
原创 Kubernetes 服务发布进阶
service 的作用体现在两个方面,对集群内部,它不断跟踪 pod 的变化,更新 endpoint(端点)中对应 pod 的对象,提供了 ip 不断变化的 pod 的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对 pod 进行访问。在 Kubernetes 中,Pod 的 IP 地址和 service 的 ClusterIP 仅可以在集群网络内部使用,对于集群外的应用是不可见的。
2025-07-23 17:20:54
849
原创 Kubernetes服务发布基础
在 kubernetes 中,pod 的 IP 地址是动态变化的,因此无法直接通过 pod 的 IP 地址进行访问。service的出现正是为了解决这个问题的。service 会为一组 pod 创建一个虚拟的 IP 地址,通过这个 IP 地址可以访问这组 pod 中的任意一个 pod。当客户端请求这个虚拟 IP 地址时,请求会被负载均衡到一组 pod 中的某一个 pod 上,从而完成对 pod 的访问。service 的实现依赖于 kube-proxy 组件。
2025-07-22 17:42:24
991
原创 Kubernetes Pod调度基础
无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。这种服务叫做无状态服务。无状态服务:就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息)如果在启动一个服务时,不依赖于该服务之前的运行状态,或者不依赖于其他服务,这个服务就是无状态服务;
2025-07-21 20:21:46
980
原创 Kubernetes Pod 深度解析
Pod 是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及运行规范。在 Pod 中,所有容器都被统一安排和调度。对于具体应用而言,Pod 是它们的逻辑主机,Pod 包含业务相关的多个应用容器。所以,Pod 是一组具有共享命名空间、IP地址和端口的容器的集合。
2025-07-21 12:11:50
945
原创 Kubernetes 架构原理与集群环境部署
Metrics Server 是一种可扩展、高效的容器资源指标来源,适用于 Kubernetes 内置的自动缩放管道。Kubeadm 提供了很多配置项,Kubeadm 配置在 Kubernetes 集群中是存储在 ConfigMap 中的,也可将这些配置写入配置文件,方便管理复杂的配置项。Kubeadm 通过初始化安装是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如k8s-master 节点上査看节点信息都是“Not Ready”状态、Pod 的 coreDNS 无法提供服务等。
2025-07-18 14:47:14
760
原创 Containerd容器技术详解
Containerd 的架构是 modularity(模块化)和可扩展性的体现,它被设计为一个轻量级、高度可定制的容器运行时。可以看出 Containerd 采用的也是 C/S 架构,服务端通过 unix domain socket 暴露低层的 gRAPI 接口出去,客户端通过这些 API 管理节点上的容器,每个 Containerd 只负责一台机器,Pull像,对容器的操作(启动、停止等),网络,存储都是由 Containerd 完成。具体运行容器由 runc责。
2025-07-15 13:29:43
567
原创 Docker 高级管理 --Dockerfile 镜像制作
Dockerfile 是一种被 Docker 程序解释的脚本,Dockerfile 由多条的指令组成,每条指令对应 Linux 下面的一条命令。Docker 程序将这些 Dockerfile 指令翻译成真正的 Linux 命令。Dockerfile 有自己书写格式和支持的命令,Docker 程序解决这些命令间的依赖关系,类似于 Makefile。Docker 程序将读取 Dockerfile,根据指令生成定制的镜像。
2025-07-10 16:42:15
1036
原创 Docker 高级管理 -- 容器通信技术与数据持久化
除了上述内置的网络模式,你还可以使用 docker network create 命令创建自定义的 bridge 网络,以满足特定的网络需求,例如指定子网、网关、IP 范围等。使用如下命令创建一个自定义网络此命令的主要目的是创建一个新的 Docker 网络,这个网络可以用于容器之间的通信。默认情况下,创建的是一个基于 bridge 驱动的网络。:这是 Docker 提供的用于创建网络的基础命令。:指定了该网络使用的子网范围。
2025-07-09 20:56:55
979
原创 容器技术入门与 Docker 环境部署
如果要方便的创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任何时间脱离底层的硬件,同时还需要任何时间地点可获取这些资源,这正是 Docker 所能提供的。Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大的提高了工作效率。
2025-07-09 17:25:35
881
原创 OpenStack云平台管理
OpenStack 大部分管理功能可通过 Dashboard 操作,熟练掌握对运维工程师重要。Dashboard 图形化界面简化管理任务、降低出错概率。本章通过云主机创建过程,学习 Dashboard 界面基本操作,及网络、路由、实例类型、镜像、安全组、卷、密钥对、快照等功能操作方法。
2025-07-07 17:29:35
698
原创 Openstack入门体验
云计算 (cloud computing) 是一种基于网络的超级计算模式,基于用户的不同需求,提供所需的资源,包括计算资源、存储资源、网络资源等。云计算服务运行在若干台高性能物理服务器之上,提供每秒 10 万亿次的运算能力,可以用于模拟核爆炸、预测气候变化以及市场发展趋势。云计算有广义和狭义之分。狭义的云计算是指通过网络按需向用户提供 IT 基础设施,包括硬件、平台和软件,提供资源的网络被称为 “云”。在使用者看来,“云” 中的资源是无限大的,无论需要多少资源,云都可以提供。
2025-07-07 13:22:12
847
原创 KVM高级功能部署
企业内部为了使服务器资源达到最大化利用,通常都会进行 KVM 虚拟化,每台服务器上运行多台 KVM 虚拟机。随着 KVM 虚拟机数量的不断增多,个别服务器会出现资源过载现象,这时候就需要对部分 KVM 虚拟机进行迁移,迁移到负载相对较低的服务器上。为了解决以上问题,针对可停机的 KVM 虚拟机,可使用静态迁移的方式来迁移 KVM 虚拟机。针对在线提供服务、不可停机的 KVM 虚拟机,可使用基于共享存储的动态迁移或基于数据块的动态迁移来完成迁移工作。
2025-07-03 20:45:49
819
原创 部署KVM虚拟化平台
公司部分 Linux 服务器硬件资源利用率不高,为了充分利用这些 Linux 服务器,可以部署 KVM,在物理机上运行多个业务系统。例如,在运行 Nginx 的服务器上部署 KVM,然后在 KVM 虚拟机上运行 Tomcat 等服务。广义的 KVM 实际上包含两部分,一部分是基于 Linux 内核支持的 KVM 内核模块,另一部分就是经过简化和修改的 Qemu。KVM 内核模块是模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提供一个用户空间工具来进行虚拟机的管理。
2025-07-02 20:30:44
832
原创 ELK日志分析系统
Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。Logstash 有 JRuby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出。
2025-07-01 21:27:08
821
原创 FastDFS分布式储存
随着文件数据的越来越多,通过tomcat或nginx虚拟化的静态资源文件在单一的一个服务器节点内是存不下的,如果用多个节点来存储也可以,但是不利于管理和维护,所以我们需要一个系统来管理多台计算机节点上的文件数据,这就是分布式文件系统。分布式文件系统是一个允许文件通过网络在多台节点上分享的文件系统,多台计算机节点共同组成一个整体,为更多的用户提供分享文件和存储空间。比如常见的网盘,本质就是一个分布式的文件存储系统。
2025-06-30 20:36:32
1121
原创 GFS分布式文件系统
Google文件系统(英语:Google File System,缩写为GFS或GoogleFS),,由Google公司开发,运行于Linux平台上。GFS专门为Google的核心数据即页面搜索的存储进行了优化。数据使用大到若干G字节的大文件持续存储,而这些文件极少被删除、覆盖或者减小;它也是针对Google的计算机集群进行的设计和优化,这些节点是由廉价的“常用”计算机组成,这就意味着必须防止单个节点的高损害率和随之带来的数据丢失。其它设计理念包括高数据吞吐率,甚至这带来了访问反应期变差。
2025-06-30 13:39:14
619
原创 Mongodb数据库应用
MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储。MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。MongoDB 使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。
2025-06-26 17:12:54
1002
原创 NoSQL之Redis集群
集群,即 Redis Cluster,是 Redis 3.0 开始引入的分布式存储方案。集群由多个节点 (Node) 组成,Redis 的数据分布在这些节点中。集群中的节点分为主节点和从节点;只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。
2025-06-25 17:58:27
814
原创 Redis哨兵模式
哨兵(Sentinel),主要负责监控主从节点运行是否正常,以及当主节点出现故障时自动将一个从节点转换为新的主节点。哨兵是一个独立的进程。,最基础的通用哨兵架构如下所示:哨兵最基础架构由两部分组成,包括哨兵节点和数据节点。其中,哨兵节点是特殊的 Redis 节点,并不存储数据,出于高可用方面考虑,哨兵架构中通常都是多个哨兵节点共同提供服务。数据节点用于存储 Redis 数据。包括主节点和从节点。
2025-06-24 16:33:39
948
原创 NoSQL之Redis配置与优化
Redis(RemoteDictionaryServer,远程字典型)是一个开源的、使用 C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用 key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis 服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个 Redis 进程,而 Redis 的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个 Redis 进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;
2025-06-23 17:57:37
801
原创 Nginx+Tomcat负载均衡群集
通常情况下,一台Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构。Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整 个站点的负载并发能力。
2025-06-20 20:22:30
680
1
原创 使用Haproxy搭建web群集
Haproxy是一个使用C语言编写的自由及开放源代码的软件,其提供高可用性、负载均衡,并且是基于TCP和HTTP的应用程序代理特别适用于负载大的Web站点,这些站点通常又会需要会话保持或七层处理。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进当前的架构中并同时保护当前Web服务器不被暴露到网络上Haproxy实现了一种事件驱动,单一进行模型,次模型支持非常大的并发连接数。
2025-06-19 17:57:30
650
原创 LVS+Keepalived高可用群集
最初是LVS的辅助工具,提供故障切换(Failover)和健康检查(Health Checking)功能能判断LVS负载调度器和节点服务器的可用性实现master主机故障时切换到backup节点,恢复后切回master安装与使用官方网站:Keepalived for Linux可通过YUM方式安装也可作为非LVS环境的热备软件使用热备方式采用VRRP(虚拟路由冗余协议)实现多机热备VRRP特点:多台路由器组成热备组共用虚拟IP(VIP)对外服务同一时刻只有一台主路由器工作。
2025-06-19 13:01:31
544
原创 LVS负载均衡群集
LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一 种工作模式。
2025-06-17 17:51:33
795
原创 LVS负载均衡群集
根据实际企业环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋。然而从整体上来看,需要先了解一些关于群集的共性特征,才能在构建和维护群集的工作中做到心中有数,避免操作上的盲目性。
2025-06-16 17:12:41
857
原创 Python操作MySQL数据库
连接池技术能够在高并发场景下提升数据库连接的效率。在连接池中,多个数据库连接被提前创建并放入池中,客户端通过池获取连接,而不是每次都建立新的连接。这大大减少了连接创建和销毁的开销。READ UNCOMMITTED:允许脏读,最低的隔离级别,性能最好,但容易出现数据不一致的情况。READ COMMITTED:解决了脏读问题,但可能出现不可重复读。REPEATABLE READ:解决了脏读和不可重复读问题,但可能出现幻读。SERIALIZABLE:解决了所有问题,但性能最差,可能导致事务长时间等待。
2025-06-14 16:44:42
951
原创 初始化FLask框架
Flask 作为一个微框架,强调简单性和灵活性。Flask 的设计目的是让开发者能够快速开发应用,并提供了灵活的方式进行扩展。如果你不需要复杂的功能,Flask 的核心本身已经足够满足需求。如果你需要更多高级特性,可以通过 Flask 的扩展库进行补充。
2025-06-14 10:39:33
658
原创 python实现web请求与响应
HTTP(Hypertext Transfer Protocol)是 Web 上传输数据的协议,负责浏览器与服务器之间的通信。GET:请求服务器获取资源,通常用于读取数据。POST:提交数据到服务器,通常用于表单提交、文件上传等。PUT:更新服务器上的资源。DELETE:删除服务器上的资源。
2025-06-12 21:10:58
994
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人