自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【6】Kubernetes—服务发现(浅入浅出一文讲透)

本文介绍了Kubernetes中服务发现的实现原理。通过CoreDNS实现服务注册和服务发现功能,CoreDNS会监听API Server中的Service变化并自动生成DNS记录。Pod通过/etc/resolv.conf文件获取集群DNS信息,使用完全域名(FQDN)进行服务查找。流量转发依赖kube-proxy组件,它通过iptables/IPVS规则将Cluster IP流量重定向到实际Pod IP。文章详细阐述了服务注册流程、DNS解析机制以及命名空间在服务发现中的作用,解释了Kubernetes

2025-11-06 15:29:18 760

原创 redis 哨兵模式实战

本文介绍了Redis哨兵模式的配置与测试过程。架构采用一主两从结构,IP分别为192.168.242.55(主)、192.168.242.56/57(从)。配置sentinel.conf时需设置监控主节点、连接密码(如有)和故障判定时间。启动顺序依次为主Redis、从Redis、哨兵服务。测试中,手动停止主节点后哨兵自动将192.168.242.56切换为新主节点,原主节点恢复后作为从节点加入。整个过程验证了哨兵模式的高可用特性,能自动完成故障转移和节点重配置。

2025-09-04 09:02:41 327

原创 【5】Service深入简出(长文警告⚠️)

Service是Kubernetes中用于为一组Pod提供稳定访问端点的核心组件,主要解决Pod动态IP导致的服务访问问题。它通过Label选择器匹配目标Pod,并通过Endpoint动态维护健康Pod列表。 Service提供四种类型: ClusterIP(默认):集群内部访问,提供固定IP和DNS名称 NodePort:在ClusterIP基础上暴露节点端口,支持外部访问 LoadBalancer:集成云厂商负载均衡器提供公网入口 ExternalName(未提及):将服务映射到外部DNS名称 关键特性

2025-09-04 09:01:12 858

原创 MHA架构实战

MHA高可用MySQL集群部署指南 本文详细介绍了MHA架构下的MySQL高可用集群搭建过程。配置包括:1) 四节点基础环境设置(时间同步、主机名、互信);2) MySQL主从架构搭建(主库44,从库46/47);3) GTID模式的主从同步配置;4) VIP设置;5) MHA组件安装(所有节点安装node,监控节点安装manager)。关键步骤包含:主库创建复制账号、从库change master配置、主从状态验证、虚拟IP绑定等。文档提供了完整的配置文件参数说明和操作验证方法,确保MySQL集群具备自动

2025-08-07 17:18:51 357

原创 mysql 安装实战

修改root用户密码为123(一定要 show variables like ‘validate%’;看变量,有可能下面的变量不一样)

2025-07-09 14:19:23 708

原创 【4】 Deployment深入简出&实战演练

Kubernetes Deployment简介 Deployment是Kubernetes中管理Pod的核心组件,它解决了大规模Pod集群的管理难题。主要功能包括: 自愈能力:自动替换故障Pod 弹性伸缩:动态调整Pod数量 滚动更新:零停机更新服务版本 版本回滚:可快速恢复到历史版本 Deployment通过ReplicaSet实现底层控制,但用户只需与Deployment交互。其实战配置通过YAML文件定义,包含Pod模板、副本数等参数,支持精细化的更新策略控制。 典型工作流程包括:创建Deployme

2025-07-02 23:41:15 979

原创 【3.3】Pod详解——容器探针&部署第一个pod

摘要 Kubernetes提供三种容器探针机制:存活探针(livenessProbe)检测容器运行状态,失败会触发重启;就绪探针(readinessProbe)判断容器是否准备好服务请求,失败会移除服务端点;启动探针(startupProbe)专用于启动耗时长的应用,成功后其他探针才会启用。这些探针数据会汇报给控制平面组件(kube-apiserver等)以维护集群状态。 部署Pod推荐使用声明式模型,通过YAML文件定义期望状态。示例展示了创建运行nginx的Pod流程:编写YAML清单→kubectl

2025-06-29 21:09:01 962

原创 安装Pod网络插件时pod状态变为ImagePullBackOff

在Kubernetes集群中,部署Pod时遇到ImagePullBackOff错误,原因是Pod被调度到未配置镜像的节点上。通过kubectl describe pod命令发现,coredns的Pod被调度到k8s-node01节点,但该节点缺少所需的镜像。解决方法包括手动拉取镜像并重新标记为所需镜像名称,最终成功恢复Pod的正常运行,并确认master节点状态为Ready。

2025-05-08 22:26:06 666

原创 【特别版】Kubernetes集群安装(1master,2node)

本文详细介绍了在虚拟机环境下安装Kubernetes集群的步骤。首先,准备三台虚拟机,分别作为控制节点和工作节点,并配置相应的IP地址和硬件要求。接着,进行系统初始化配置,包括关闭防火墙、SELinux和Swap,设置时间同步,并添加主机名解析。随后,在所有节点上安装Docker、kubeadm、kubelet和kubectl,并配置Docker加速镜像。主节点生成SSH密钥并分发给工作节点,部署Kubernetes Master,并指定阿里云镜像仓库地址。工作节点加入Kubernetes集群,并确保防火墙

2025-05-08 21:56:54 713 1

原创 pod内部共享命名空间与k8s命名空间是一个东西吗?

实际上一些容器运行时的默认配置(如 Docker Engine、containerd、CRI-O)就使用 Linux 命名空间进行隔离,这样我们就可以理解pod为什么有用户命名空间这个东西了(既Pod 网络命名空间的设置由实现容器运行时接口(CRI)的系统层面软件处理。所以,在一个pod中的容器由于拥有同一个IPC命名空间,这导致这些容器之间能够共享内存,使用同一个key获取同一个信号量,通过消息队列进行通信。Pod 有自己的私有网络命名空间,Pod 内的所有容器共享这个命名空间。

2025-04-23 21:20:45 1304 1

原创 【3.2】pod详解—— Pod的相位(phase)&状态(status)

status 字段是一个字符串,可能的值有 True、False 和 Unknown。事实上这两个名词代表的并不一样,但很多时候我们可能会混淆,为了让初学的我们能够正确理解,索性放在一起了。然后 Kubernetes 会从这个详细报告中总结一句话,归纳成几个词,比如 “正在运行”、“运行失败”、“正在调度中” —— 这就是。Pod的相位(phase),看似高大上的名字,说白了phase就是对Pod的状态进行描述的。是一个结构体,不是单一的“状态值”,所以我们刚刚的。这还听不懂那就站着听课吧😋。

2025-04-23 21:20:27 958

原创 【3.1】pod详解——Pod的结构

Pod的部署是一个原子操作。实际上一些容器运行时的默认配置(如 Docker Engine、containerd、CRI-O)就使用 Linux 命名空间进行隔离,这样我们就可以理解pod为什么有用户命名空间这个东西了(既Pod 网络命名空间的设置由实现容器运行时接口(CRI)的系统层面软件处理。在前面已经提到了,pod是k8s调度的原子单位,一个pod可以有一个或多个容器在其中运行,他们拥有同一个IPC命名空间,共享的内存,共享的磁盘、网络以及其他资源,相同的ip(通过端口区分服务)等。

2025-04-23 21:20:09 1167

原创 【2】Kubernetes 架构总览

Kubernetes 的主节点(Master)是组成集群控制平面的关键部分,负责整个集群的调度、状态管理和决策。etcd一种最简单的部署方式是将这些控制组件部署在同一台主机上,这适合实验或测试环境。而在生产环境中,主节点的高可用部署是必不可少的。通常建议使用 3 或 5 个主节点副本来实现高可用。(为什么是奇数个?🤔)因为控制平面依赖 etcd 数据库,而 etcd 的一致性机制需要多数派(quorum)投票。使用奇数个副本可以有效避免脑裂,保证集群稳定性。

2025-04-20 19:36:46 899

原创 【1】云原生,kubernetes 与 Docker 的关系

它是一种构建和运行应用程序的方法,它包含(容器容器编排微服务构架),优势是快速迭代部署应用,自动扩缩容资源,因为容器化与微服务化变得高可用与容错。让应用具备像在“云”上那样运行的能力—— 弹性、快速部署、自动扩缩、故障自愈、高可用、可观察……这些能力并不要求必须部署在公有云上☁️公有云(AWS、阿里云、腾讯云……)🏢私有云(公司内部的数据中心 + 云平台)🖥️本地机房(只要能跑容器和 Kubernetes)💻开发者本地环境(比如用 Minikube 跑个小型集群)🌍。

2025-04-20 19:35:39 1489

原创 Elastic Stack简介与Elastic Search集群安装

ElasticSearch是一个基于Lucene1的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。Elasticsearch 使用的是标准的 RESTful 风格的 API 和 JSON。

2025-04-20 09:44:03 918

原创 子网划分浅度解析

那么说明ip的前24位二进制可以作为不同网段来变换(但需遵守C类地址规则,也就是ip应为:110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx)所以前24位只有21位可变,也就是可以有2 ^ 21个子网,而还剩8位当主机号,也就是每个子网还有2^8个主机。子网掩码也是四位点分十进制数,因为和ip地址是相同的位数,也就是子网掩码的二进制可以和ip地址的二进制一一对应,因此我们会根据子网掩码1的个数来确定哪几位是网络号,剩下几位就是主机号。可以看出子网掩码显示只有后5位二进制可以变(

2025-03-30 22:31:54 882

原创 mysql 读写分离搭建过程

mysql读写分离

2025-03-17 11:24:32 260

原创 ansible速查手册

--vars:tasks:debug:# vars.yml---- vars.ymltasks:debug:template:notify:template模块的作用是将 Jinja2 模板文件渲染成普通文件,并复制到目标主机的指定位置。Jinja2 模板允许在文件中使用变量、循环、条件语句等动态内容,使得配置文件可以根据不同的环境进行灵活生成。如果这里不用j2就要写一个配置文件,然后使用copy模块了。

2025-03-17 11:21:10 1223

原创 Keepalived实现HAProxy高可用搭建

启动Keepalived。

2025-01-25 17:32:11 542

原创 Redis主从复制安装配置过程

【代码】Redis主从复制。

2025-01-21 19:11:05 155

原创 redis实现lamp架构缓存

访问phpinfo页面:http://192.168.242.51/index.php。访问网页:http://192.168.242.51/redis.php。成功应该是刷新页面后mysql与redis都有概率出现。

2025-01-21 19:10:18 540

原创 Redis源码编译安装步骤

(注意,解压位置就是安装位置)进入解压目录进行编译。

2025-01-15 15:16:33 325

原创 MysqI主从复制搭建过程

①配置方面两台都相同②两台都设置一个复制账号(例如copy)③两台主机都当作slave连接另一台如何安全关机(重要!!!)主从复制的关机顺序确实很重要。如果关机顺序不当,可能导致数据丢失、复制中断或类似问题(如重复执行事务)。合理的关机顺序可以确保主从复制状态的完整性和一致性。记一次mysql 主从复制重启后slave启动失败,提示数据已存在问题的解决方法停止复制线程在从服务器上运行以下命令:检查复制状态确认复制线程已停止:确保 和 均为 。关闭从服务器安全地关闭 MySQL 服

2025-01-15 15:14:41 743

原创 搭建分布式zabbix-proxy监控

【代码】搭建分布式zabbix-proxy监控。

2025-01-02 21:57:36 595

原创 给你的zabbix邮箱告警加上AI建议

下载zabbix-get(proxy端)测试(没有反应请重启各项服务)手动创建zabbix的配置文件(扩展目录中),用于自定义key创建配置文件,以及内容如下:(这里需要明确下我们是监控哪个服务器,就往哪个服务器写配置,这里是agent)

2025-01-02 21:55:19 1446

原创 【说人话】LVS及DR模式原理

LVS: 是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。Nginx :支持 4 层 / 7 层负载均衡,支持 HTTP、E-mail 协议;HAproxy :是 7 层负载均衡软件,支持 7 层规则的设置,性能也不错;LVS :纯 4 层负载均衡,运行在内核态,性能是软件负载均衡中最高的;它是纯 4 层负载均衡,运行在内核态,性能是软件负载均衡中最高的。

2024-12-31 16:21:43 1032

原创 记一次redis密码设置不生效并且密码总是诡异的为123456的错误

Redis 6.0 引入。所以在 Redis 6.0 及之后版本中,密码认证逻辑改为支持用户名和密码,而不仅仅是单一密码。所以在 Redis 6.0 中,机制被弱化,当 ACL 用户配置存在时,会优先使用 ACL。那么造成的后果就是。

2024-11-26 20:05:19 707

原创 记一次mysql 主从复制重启后slave启动失败,提示数据已存在问题的解决方法

主从复制的关机顺序实际上很重要。如果关机顺序不当,可能导致数据丢失、复制中断,数据不一致或类似问题(如重复执行事务)。合理的关机顺序可以确保主从复制状态的完整性和一致性。主从复制关机与开机建议顺序推荐的关机顺序优先关闭从服务器在关闭主服务器之前,先停止从服务器上的复制线程。这可以避免从服务器在主服务器关闭后尝试从主服务器拉取日志而发生错误。然后关闭主服务器关闭主服务器时,确保事务已提交并记录到二进制日志中。详细步骤关闭从服务器停止复制线程在从服务器上运行以下命令:检查复制

2024-11-23 22:50:43 1301 1

原创 mysql利用二进制日志还原误删数据的一个例子

如上图,假设第操作1处数据库碰巧备份过,但是在操作3处没有备份,操作2也没有备份,那么要想恢复操作3误删的数据,现在可以直接利用备份恢复至操作2处,现在我们依然丢失操作2的数据,那么这时候我们就可以利用二进制日志,从129-199之间选择一个开始位置点,再在255-228之间选择一个末尾位置点,重新运行两点之间的操作即可,相当于回到操作1,运行操作2,但未进行操作3(真是个穿越时空,预知未来,规避风险的好例子)那么,我们要想恢复被删除的数据,并且要从添加数据之前的命令运行到删除操作之前的命令。

2024-10-16 21:45:01 737

原创 iptables流量转发的一个例子

现在想要将访问A主机8080端口的流量转发到主机B的80端口,并且将B的反馈返还给访问者。

2024-10-02 00:44:29 1369

原创 当用户属于多个组时,对文件目录的权限是简单累加起来的吗?

在上一篇文章中介绍了某些用户同时拥有多个组时,访问文件的权限问题,但是可能有一些误导,会,但事实并非如此,,而是按照一定顺序的。

2024-09-17 17:06:31 984

原创 RSA 加密还原失败问题——模数 ( n ) 小于消息的影响

RSA 是一种非对称加密算法,它使用两个密钥:公钥 ( (e, n) ) 和私钥 ( (d, n) )。公钥用于加密消息,私钥用于解密。加密其中 ( M ) 是消息,( C ) 是密文,( e ) 是公钥指数,( n ) 是模数。解密其中 ( d ) 是私钥指数。在 RSA 加密中,模数 ( n ) 的大小至关重要。如果模数 ( n ) 小于消息,则会导致加密后的消息无法正确还原。

2024-09-16 19:05:54 2374

原创 MBR 分区最多只能分四个区,那么扩展分区是如何突破限制的呢?

分区表有4个分区记录区,分区表为:64个字节,每个分区记录区占16字节(正是由于这个原因,理论上最多只能有4个分区)第一个扇区总共512字节,前446字节是主引导记录,分区表保存在扇区中的第447-512字节中。那么为了解决分区数量不足,引入了扩展分区,以达到突破4分区限制。(严格地讲它不是一个实际意义的分区,它仅仅是一个指向其它分区的指针)MBR(主引导程序和硬盘分区表)位于硬盘第一个物理扇区处。也就是上图橙色部分扩展分区详细分解提到的样子。

2024-08-16 18:00:00 1308

原创 记一次在多用户环境中解决 IntelliJ IDEA 启动错误 “Can‘t connect to X11 window server using ‘:0‘“

在多用户环境中,有时我们需要以非启动 X11 显示服务器的用户身份运行图形界面应用程序。然而,尝试这样做时,可能会遇到无法连接到 X11 显示服务器的错误。这样, 当前用户就可以成功连接到 X11 显示服务器并启动 IntelliJ IDEA。百度了很久并没有得到解决,冷静思索后发觉,这有没有可能是因为。:(当然你也可以切换到拥有X11 显示服务器的权限的用户)用户的 X11 显示服务器的权限。该命令允许当前用户访问 X11 显示服务器。用户启动的 X11 显示服务器。

2024-08-15 20:09:42 1011 1

原创 `find` 命令中的 `-exec` 选项是如何逐个执行命令的,选项后的ls命令为什么不生效?

通过上面的几种方法,我们可以明确地证明find命令中的-exec选项是逐个文件单独执行命令的。这种行为会导致每个命令独立处理每个文件,不能一次性对所有匹配的文件进行操作,所以要用需要拿全部结果的进行操作的命令还是加一个管道符吧~

2024-08-15 19:46:29 542

原创 用户主组与附加组权限累加问题详解

用户主组与附加组权限累加问题详解

2024-08-15 18:50:56 572

空空如也

空空如也

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

TA关注的人

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