- 博客(105)
- 收藏
- 关注
原创 Prometheus之图形化界面grafana与服务发现
上一篇文章中我们介绍了Prometheus的组件,监控作用,部署方式,以及如何通过在客户机安装exporter再添加监控项的操作。但是不免会发现原生的Prometheus的图像化界面对于监控数据并不能其他很好的展示效果。所以本次我们将介绍一款开源非常适用于Prometheus的图形化软件grafana。除此之外,上面的exporter监控项都是通过手动添加,这样效率慢而且需要中止Prometheus的工作进程,所以本次我们将介绍几种让Prometheus自动完成服务发现的方法。
2024-06-17 08:09:52
1354
原创 Prometheus 监控系统的初步了解与系统搭建
promethues 是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。
2024-06-17 08:09:10
1004
原创 k8s图形化管理工具之rancher
Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理, 以确保集群的安全性,加速企业数字化转型。超过 40000 家企业每天使用 Rancher 快速创新。Rancher文档 | K8S文档 | Rancher | Rancher文档。
2024-06-12 19:00:02
1374
原创 k8s之HPA,命名空间资源限制
HPA(Horizontal Pod Autoscaling)Pod 水平自动伸缩,Kubernetes 有一个 HPA 的资源,HPA 可以根据 CPU 利用率自动伸缩一个 Replication Controller、Deployment 或者Replica Set 中的 Pod 数量。
2024-06-12 14:05:54
1132
原创 k8s之包管理器Helm
在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。Helm 本质就是让 K8s 的应用管理(Deployment、Service 等)可配置,可以通过类似于传递环境变量的方式能动态生成。
2024-06-12 14:05:49
1184
1
原创 k8s 证书更新
通过以上步骤,你可以成功地更新Kubernetes集群的证书,避免由于证书过期导致的集群不可用问题。记得在多master节点环境中,需要在每个master节点上重复执行上述步骤。最后,确保检查更新后的集群状态,以验证更新过程是否成功,避免任何潜在的问题影响集群的稳定性和可用性。
2024-06-11 08:13:02
713
原创 k8s 安全机制
token 认证 :使用很长 很复杂token字符串做认证,通常是单向认证。base 认证:使用账号 和 密码 的格式通过base64 编码和解码认证,通常是单向认证。https 认证:使用 通过CA机构 签发的证书 进行https认证, 可以实现双向认证。
2024-06-11 08:07:06
1229
原创 k8s 对外服务之 Ingress
service的作用体现在两个方面: 在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,Kubernetes目前提供了以下几种方案:●NodePort:将 service 暴露在节点网络上,NodePort 背后就是Kube-Proxy,Kube-Proxy是沟通service网络、Pod网络和节点网络的桥梁。测试环境使用还行,当有几十上百的服务在集群中运行时,NodePo
2024-06-04 18:46:09
1039
原创 k8s 配置资源管理
使用 Secret 资源挂载的方式在 pod.spec.volumes 字段中定义卷类型为 secret在 pod.spec.containers.volumeMounts 字段中把存储卷挂载到指定的容器目录,secret资源数据的key将以文件名的形式存在,value为文件内容容器环境变量引用的方式在 pod.spec.containers.env.name 字段中自定义容器的环境变量名。
2024-06-04 18:46:05
1082
1
原创 Pod 控制器
如上所述,一个完整的 StatefulSet 控制器由一个 Headless Service、一个 StatefulSet 和一个 volumeClaimTemplate 组成。
2024-05-31 13:37:39
918
1
原创 k8s 之存储卷
PV 全称叫做 Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,这个通常都是由运维工程师来定义。PVC 的全称是 Persistent Volume Claim,是持久化存储的请求。它是用来描述希望使用什么样的或者说是满足什么条件的 PV 存储。PVC 的使用逻辑:在 Pod 中定义一个存储卷(该存储卷类型为 PVC),定义的时候直接指定大小,PVC 必须与对应的 PV 建立关系,PVC 会根据配置的定义去 PV 申请,而 PV 是由存储空间创建出来的。
2024-05-31 13:37:29
1095
原创 k8s 集群调度
Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。APIServer 经过 API 调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里 需要 Controller Manager、Scheduler 和 kubelet 的协助才能完成整个部署过程。
2024-05-29 13:42:25
1045
原创 k8s 的 pod 基础 2
Pod 的核心是运行容器,必须指定容器引擎,比如 Docker,启动容器时,需要拉取镜像,k8s 的镜像拉取策略可以由用户指定:1、:优先使用本地已存在的镜像 ,若没有则去仓库拉取镜像,默认的镜像拉取策略2、:每次创建 Pod 都会从仓库拉取镜像,无论本地是否已存在镜像;3、:总是不去仓库拉取镜像,仅使用本地镜像。注意:对于标签为“:latest”的镜像文件,其默认的镜像获取策略即为“Always”;而对于其他标签的镜像,其默认策略则为“IfNotPresent”。
2024-05-29 13:42:17
1516
2
原创 k8s 的 pod 基础 1
Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的例如,用于管理Pod运行的StatefulSet和Deployment等控制器对象,用于暴露Pod应用的Service和Ingress对象,为Pod提供存储的PersistentVolume存储资源对象等。
2024-05-23 20:17:03
765
原创 k8s 声明式资源管理
声明式管理方法:1.适合于对资源的修改操作2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)3.对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到k8s集群里4.语法格式:kubectl create/apply/delete -f xxxx.yaml//查看资源配置清单//解释资源配置清单。
2024-05-23 20:16:19
1345
原创 kubectl 陈述式资源管理
1.查看版本信息2.查看资源对象简写3.查看集群信息4.配置kubectl自动补全5.node节点查看日志查看kubectl get 查看资源类型 -owide 输出详细信息也可以输出yamlisonpodservicenamespaCe #所有的命名空间的下的资源--all-namespace或-Aall创建kubectl create 控制器kubectl run 自助式kubectl run : 用于创建一个自主式/静态的 pod。
2024-05-21 18:19:26
911
原创 kubeadm 部署k8s集群
前面的文章中,我们采用了二进制包搭建出的k8s集群,本次我们采用更为简单的kubeadm的方式来搭建k8s集群。二进制的搭建更适合50台主机以上的大集群,kubeadm更适合中小型企业的集群搭建master(,cpu核心数要求大于2)Harbor节点(hub.benet.com)1、在所有节点上安装Docker和kubeadm2、部署Kubernetes Master3、部署容器网络插件4、部署 Kubernetes Node,将节点加入Kubernetes集群中。
2024-05-21 15:25:54
880
原创 二进制部署k8s集群 部署高可用master节点
etcd 安装步骤准备 CA 证书和 私钥文件 ,首先 CA 签发服务端证书 和 私钥文件使用 CA 证书 、服务端证书、私钥文件 还有etcd 集群配置文件 启动etcd服务复制etcd工作目录和管理文件到另外几个etcd节点上并修改etcd的配置文件,然后启动etcd服务最后使用 etcdctl 命令查看etcd集群的状态。
2024-05-16 13:36:17
1264
原创 二进制部署k8s集群 搭建node节点与网络组件
目前比较常用的CNI网络组件是flannel和calico,flannel的功能比较简单,不具备复杂的网络策略配置能力,calico是比较出色的网络管理插件,但具备复杂网络配置能力的同时,往往意味着本身的配置比较复杂,所以相对而言,比较小而简单的集群使用flannel,考虑到日后扩容,未来网络可能需要加入更多设备,配置更多网络策略,则使用calico更好。没有DNS服务的时候,k8s会采用环境变量的形式,但一旦有多个service,环境变量会变复杂,为解决该问题,我们使用DNS服务。
2024-05-16 13:36:01
1076
原创 二进制搭建 k8s 单 Master 集群架构
etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd是go语言编写的。etcd 目前默认使用2379端口提供HTTP API服务, 2380端口和peer通信(这两个端口已经被IANA(互联网数字分配机构)官方预留给etcd)。CFSSL 使用配置文件生成证书,因此自签之前,需要生成它识别的 json 格式的配置文件,CFSSL 提供了方便的命令行生成配置文件。检查etcd群集状态。
2024-05-15 14:10:10
1076
原创 云原生 初识Kubernetes的理论基础
K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。在 K8S 中,主节点一般被称为 Master 节点,而从节点则被称为 Worker Node 节点,每个 Node 都会被 Master 分配一些工作负载。Master 组件可以在群集中的任何计算机上运行,但建议 Master 节点占据一个独立的服务器。
2024-05-15 13:41:26
1115
原创 Ansible主机清单与playbook 剧本
Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。如果是名称类似的主机,可以使用列表的方式标识各个主机。Inventory变量名含义ansible_hostansible连接节点时的IP地址ansible_port连接对方的端口号,ssh连接时默认为22ansible_user连接对方主机时使用的主机名。不指定时,将使用执行ansible或ansible-playbook命令的用户ansible_password连接时的用户的ssh密码,仅在未
2024-05-12 10:18:59
956
1
原创 Ansible自动化运维工具
command模块:注意:在远程主机执行命令,不支持管道,重定向等shell的特性。ansible 指定的IP -m command -a 'Linux基础命令' #指定 ip 执行 基础命令ansible 组名 -m command -a 'Linux基础命令' #指定组执行基础命令ansible all -m command -a 'linux基础命令' #指定所有被管理的主机执行该命令ansible all -a 'linux基础命令' #如省略 -m 模块,则默认运行 command 模块。
2024-05-07 13:36:54
736
原创 Docker harbor私有仓库部署与管理
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl 控制用户访问) 、AD/LDAP 集成、以及审计日志(Auditlogging)等企业用户需求的功能,同时还原生支持中文。AD:用于集中管理用户身份、访问权限和资源的重要工具。
2024-05-06 19:27:29
943
原创 Consul 服务注册与发现
服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:●如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦●后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。
2024-05-06 13:34:46
2511
原创 Docker-compose单机容器集群编排
我们知道使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案,今天给大家介绍 Docker 官方产品 Docker Compose。Dockerfile可以让用户管理一个单独的应用容器;而Compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。
2024-05-05 06:49:05
854
原创 docker 搭建lnmp环境
公司在实际的生产环境中,需要使用 Docker 技术在一台主机上创建 LNMP 服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。
2024-04-28 17:58:37
1151
原创 Docker 数据管理与镜像创建
由此可见对于不同的linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以公用bootfs。但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。(5)镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件,只是这个文件在 Docker 容器中不可见了。
2024-04-26 17:35:01
1006
原创 Docker 网络与资源控制
直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错#可以先自定义网络,再使用指定IP运行dockerdocker1为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。mynet 为执行 docker network list 命令时,显示的bridge网络模式名称。
2024-04-26 17:34:52
1577
4
原创 Docker 基本管理
仿真虚拟化:无需硬件支持,兼容性强,能在不同架构间运行操作系统,但性能较低。半虚拟化:需修改客户系统以提升性能,直接与虚拟化层通信,适用于特定场景和注重性能的环境。全虚拟化:现代技术大多结合硬件辅助,以实现接近原生的性能,同时保持高度兼容性,适用于广泛场景。docker 发展历史Docker入门笔记01:Docker容器技术的发展历程【转】 - 融爸 - 博客园 (cnblogs.com)Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
2024-04-22 18:46:02
784
1
原创 Zabbix自定义模板、邮件报警、自动发现与注册、proxy代理、SNMP监控
案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息在客户端创建自定义 key#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中#自定义监控项的格式如下自定义监控参数 键 命令或者脚本名称vim UserParameter_login.conf #.conf前面名称可自定义UserParameter=login.user,who|wc -l #键名可自定义点击左边菜单栏【配置】中的【模板】,点击【创建模板】
2024-04-19 13:42:40
900
原创 Zabbix 监控软件(一)
通常我们服务搭建成功 但不清楚服务器的运行状况,这时候就需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。利用一个优秀的监控软件,我们可以:●通过一个友好的界面进行浏览整个网站所有的服务器状态●可以在 Web 前端方便的查看监控数据●可以回溯寻找事故发生时系统的问题和报警情况。
2024-04-19 13:42:00
1342
原创 Zookeeper集群 + Kafka集群
MQKafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。
2024-04-14 15:16:40
997
原创 ELK 企业级日志分析系统
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。可视化日志管理系统●:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与Elasticsearch 通信。
2024-04-14 15:16:38
880
原创 GFS 分布式文件系统
GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba 存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。(无元数据服务器)传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。
2024-04-09 19:31:12
937
原创 Redis 数据类型
2、充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如所有购买某–电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们想获取有哪些客户同时购买了这两种商品时,Set的intersections 命令就可以充分发挥它的方便和效率的优势了。redis无论什么数据类型,在数据库中都是以key-value形式保存,并且所有的key(键)都是字符串,所以讨论基础数据结构都是讨论的value值的数据类型。
2024-04-09 18:43:07
1469
原创 rsync 远程同步
rsync 还程同步在同步的过程中实现了边复制边统计边比较1、上行同步(上传)客户端(源)----》RSYNC----》服务器(目标)在这种情况下,客户端有一些(需要备份的数据)文件,它们需要同步到服务器过程:RSYNC首先在客户端和服务器之间建立一个连接,然后比较两边的文件。只有在客户端上新的或已更改的文件才会被上传的服务器rsync -azH /local/deirctory user@地址::模块一般会结合 inotify(文件实时监控)来同步数据2、下行同步 (下载)
2024-04-08 15:08:42
4921
原创 Redis 群集
主从复制总结redis主从复制 是为了数据冗余和读写分离在这两种模式中,有两种角色主节点(master)和从节点(slave),主节点负责处理写的操作,并将数据更改复制到一个或多个从节点。这样我们的主节点负载减轻,从节点可以提供数据读取服务,实现读写分离,如果主节点停止服务,从节点之一可以立即接管主节点的角色,再继续提供服务具体流程如下:1、从节点启动成功连接主节点后,发送一个sync命令。
2024-04-08 13:33:30
1107
原创 Redis之缓存穿透、击穿、雪崩
缓存穿透是指在使用缓存系统时,特定的查询在缓存和数据库中都找不到结果,导致每次查询都要访问数据库,从而增加数据库的压力,降低系统的性能,若黑客利用此漏洞进行攻击可能压垮数据库。当一个查询请求经过缓存系统时,缓存先检查是否有缓存的结果,如果有则直接返回给客户端,如果没有则查询数据库并将结果存入缓存后返回。但是,如果查询的数据在数据库中不存在,那么每次查询都会通过缓存系统直接访问数据库,导致数据库无效查询增加,浪费了系统资源。
2024-04-06 09:39:44
1221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人