- 博客(105)
- 收藏
- 关注
原创 Prometheus 部署Alertmanager发送告警
Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。Alertmanager 负责处理由 Prometheus Server 发来的告警通知,Alertmanager对告警通知进行分组、去重后,根据路由规则将其路由到不同的receiver,如Email、钉钉或企业微信等。除了基本的告警通知能力外,Altermanager还支持对告警进行去重、分组、抑制、静
2024-08-21 18:32:06
672
原创 Prometheus PromQL
PromQL作为Prometheus监控系统的核心查询语言,它是一种专门为时间序列数据设计的表达式语言。通过PromQL,我们能够以极其灵活和精确的方式,从海量的监控指标数据中筛选、聚合、计算和提取我们所关心的信息。
2024-08-21 11:59:29
1045
原创 Prometheus监控系统
Prometheus除了传统业务架构,还能支持云环境、K8S容器集群的监控,是目前容器监控最好的解决方案。数据存储采用的是时序数据库,大大的节省存储空间,还能提升查询效率。单集群能支持的节点规模更大,通常超过2000台节点、服务数量大于1000个的时候建议直接上Prometheus。
2024-08-20 00:47:02
1203
原创 【kubernetes】k8s安全机制
客户端若想要发送请求给apiserver操作管理K8S资源对象,需要先通过三关安全验证:认证(Authentication)、鉴权(Authorization)、准入控制(Admission Control)
2024-08-15 23:22:41
1136
1
原创 【kubernetes】k8s配置资源管理
configMap资源(简称cm)作用:用于保存配置文件、环境变量等不需要加密的信息。它可以实现将配置信息与应用程序镜像解耦创建cm资源kubectl create cm <资源名称> -n <命名空间> --from-file=文件|目录 --from-liternal=<键名>=<键值>查看cm资源kubectl describe -n <命名空间> cm <资源名称>kubectl get -n <命名空间> cm <资源名称> -o yaml。
2024-08-14 22:30:14
1098
原创 【kubernetes】k8s对外服务之Ingress
K8S集群外部的客户端访问K8S集群内部的方案基于Service实现:NodePort、LoadBalancer、externalIPs 只能支持四层代理转发,如果K8S集群规模较大运行的业务服务较多,NodePort端口/externalIPs管理成本会很高基于Ingress实现:支持七层代理转发,可自定义规则根据用户请求的域名或URL路径转发给指定的Service端点实现Pod的代理访问一般来说,ingress-controller的形式都是一个pod,里面跑着daemon程序和反向代理程序。dae
2024-08-13 22:53:30
5102
3
原创 【Kubernetes】 PVC 和 PV
kubectl explain pv #查看pv的定义方式FIELDS:metadata: #由于 PV 是集群级别的资源,即 PV 可以跨 namespace 使用,所以 PV 的 metadata 中不用配置 namespacename:speckubectl explain pv.spec #查看pv定义的规格spec:nfs:(定义存储类型)path:(定义挂载卷路径)server:(定义服务器名称)
2024-08-11 00:35:34
2338
原创 【Kubernetes】pod状态与故障排查
kubectl debug -n -it --image= --target= #在Pod中创建临时工具容器进入目标容器进行调试,针对没有调试工具的容器使用。kubectl exec -n -it -c -- sh|bash|命令 #进入Pod容器中查看容器内部的相关状态信息,比如应用进程、端口、文件、流量等状态信息。
2024-08-08 20:28:11
1350
原创 【Kubernetes】k8s的集群调度
用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。APIServer 经过 API 调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用,需要 Controller Manager、Scheduler 和 kubelet 的协助才能完成整个部署过程。在 Kubernetes 中,所有部署的信息都会写到 etcd 中保存。
2024-08-08 00:00:52
965
原创 【Kubernetes】k8s集群Pod概述
例如:用于管理Pod运行的StatefulSet和Deployment等控制器对象,用于暴露Pod应用的Service和Ingress对象,为Pod提供存储的PersistentVolume存储资源对象等。
2024-08-06 22:39:12
1786
原创 Kubernetes二进制部署多master节点、负载均衡以及高可用
【代码】Kubernetes二进制部署多master节点、负载均衡以及高可用。
2024-08-01 23:39:36
1194
原创 二进制部署k8s单master集群
k8s 组网方案对比:●flannel方案需要在每个节点上把发向容器的数据包进行封装后,再用隧道将封装后的数据包发送到运行着目标Pod的node节点上。目标node节点再负责去掉封装,将去除封装的数据包发送到目标Pod上。数据通信性能则大受影响。●calico方案Calico不使用隧道或NAT来实现转发,而是把每个操作系统的协议栈认为是一个路由器,然后把所有的容器认为是连在这个路由器上的网络终端,在路由器之间跑标准的路由协议——BGP的协议,然后让它们自己去学习这个网络拓扑该如何转发。
2024-08-01 10:40:07
1652
2
原创 Kubernetes 基础理论
服务器经历了三次演变过程:物理机、虚拟机和容器化部署慢 :每台服务器都要安装操作系统、相关的应用程序所需要的环境,各种配置;成本高:物理服务器的价格十分昂贵;资源浪费:硬件资源不能充分利用;扩展和迁移成本高:扩展和迁移需要重新配置一模一样的环境虚拟机特点(解决了物理机的缺点)易部署:每台物理机可部署多台虚拟机,且可以通过模板,部署快,成本低;资源池:开出来的虚拟机可作为资源池备用,充分压榨服务器性能;资源隔离:每个虚拟机都有独立分配的内存磁盘等硬件资源,虚拟机之间不会互相影响;
2024-07-31 17:25:08
1726
原创 【Ansible】通过role角色部署lnmp架构
此目录应当包含一个 main.yml 文件,用于定义此角色的任务列表,此文件可以使用 include 包含其它的位于此目录的 task 文件。可以把playbook剧本里的每个play看作为一个角色,将每个角色要用到的文件、变量、任务列表定。此目录应当包含一个 main.yml 文件,用于定义此角色的元数据信息及其依赖关系。此目录应当包含一个 main.yml 文件,用于定义此角色中触发条件时执行的动作。此目录应当包含一个 main.yml 文件,用于定义此角色用到的变量。
2024-07-31 11:17:44
1422
原创 Ansible之playbook剧本编写(二)
template 配置模板模块1)先准备一个 XXX.j2 配置文件模板,在模板文件中使用 {{变量名}} 格式引用主机变量/组变量/vars字段定义的变量/facts信息字段变量2)修改主机清单配置文件 hosts,设置主机变量/组变量3)编辑 playbook 文件,在 tasks 任务中定义 template 模块任务及其参数 template: src=XXX.j2文件路径 dest=远程主机配置文件路径
2024-07-27 22:29:31
1226
原创 Ansible之playbook剧本编写(一)
vars:tasks:使用facts信息做变量模块参数的纵向写法 :在命令行里定义变量- name: #设置play的名称(一个playbook文件里可以有多个play)hosts: #设置执行此play的远程主机组,多个组用 : 分隔remote_user: #设置在远程主机执行此play的用户名,默认为root。
2024-07-24 23:16:33
1294
原创 自动化运维管理工具Ansible
ansible 自动化运维工具,也叫机器管理工具。可以实现批量管理成百上千的多台主机,是应用级别跨主机编排工具。
2024-07-22 23:23:32
2414
原创 Docker网络模式和Cgroup资源限制
可以先自定义网络,再使用指定IP运行docker#可以先自定义网络,再使用指定IP运行docker#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。#mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。bridgedocker容器的默认网络模式。
2024-07-22 00:05:54
1761
原创 Docker容器服务更新与发现之consul
consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。
2024-07-20 18:06:06
2030
原创 Docker-compose单机容器集群编排
YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号 [] 括起来, hash 用花括号 {} 括起来。通过 Compose,可以方便地管理容器的生命周期、监控容器状态、查看日志和调试容器。这个文件中描述了所有的服务、网络和存储卷,使得应用的部署和管理变得简单且一致。Compose 可以在不同的环境中运行相同的应用配置,比如开发、测试和生产环境。yaml格式文件: 文件名以 .yaml .yml 为后缀,用空格缩进表示字段的层级关系,特点:可读性高,易于管理。
2024-07-18 23:51:47
962
1
原创 Docker数据管理和网络通信
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
2024-07-16 15:51:18
773
原创 Docker部署与基本操作
镜像:是创建容器的基础,是一个只读的模板文件,里面包含运行容器中的应用程序所需要的所有资料(比如应用程序执行文件、配置文件、动态库文件、依赖包、系统文件和目录等)容器:是用镜像运行的实例,容器可以被创建、启动、停止、删除,每个容器之间默认是相互隔离的仓库:是用来集中保存镜像的地方,有公有仓库和私钥仓库之分docker version #查看docker版本docker info #查看docker详细信息2、镜像操作。
2024-07-14 22:32:32
1102
原创 Ceph资源池pool管理
OSD总数 小于 5 个,官方推荐 PG数 为 1285 ~ 10 个,官方推荐 PG数 为 51210 ~ 50 个,官方推荐 PG数 为 1024大于 50 个,参考公式 PG数=( Target PGs per OSD ) x ( OSD # ) x ( %Data ) / ( Size )Target PGs per OSD :表示每个OSD对应的PG数(如近期不扩容OSD数量可设置为100,如近期要扩容OSD数量可设置为200)OSD # :表示当前OSD总数。
2024-07-10 22:15:20
1192
原创 分布式存储ceph部署
Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。
2024-07-10 00:37:14
1510
原创 Kafka 典型问题与排查以及相关优化
Kafka 是一个高吞吐量的分布式消息系统,但在实际应用中,用户经常会遇到一些性能问题和消息堆积的问题。本文将介绍 Kafka 中一些典型问题的原因和排查方法,帮助用户解决问题并优化 Kafka 集群的性能。
2024-07-09 20:53:22
2488
原创 分布式应用之 Zookeeper 集群与 Kafka 集群部署
ZooKeeper是一个开源的分布式协调服务,用于构建可靠的分布式系统。它通过提供高度可靠的数据存储和同步机制,来协调不同节点之间的通信和协作。主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。
2024-07-09 00:28:47
1229
原创 zabbix 自动发现与自动注册
zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
2024-07-08 08:59:50
1353
1
原创 Zabbix 自定义监控内容
/在客户端创建自定义 key1.明确需要执行的 linux 命令2.创建 zabbix 的监控项配置文件,用于自定义 key#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中#自定义监控项的格式如下3.在服务端验证新建的监控项在服务端验证1.创建模板点击左边菜单栏【配置】中的【模板】,点击【创建模板】【模板名称】设置成 Template Login User【可见的名称】设置成 Template Login User。
2024-07-07 13:35:38
1533
原创 zabbix部署
作为一个运维,需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等,利用监控系统的数据去了解网站上线发布的结果和健康状态。利用一个优秀的监控软件,我们可以:●通过一个友好的界面进行浏览整个网站所有的服务器状态●可以在 Web 前端方便的查看监控数据●可以回溯寻找事故发生时系统的问题和报警情况。
2024-07-07 13:34:36
1040
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人