自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 k8s-创建yaml文件

2.在命名空间下创建 Pod,并打上标签,运行nginx容器,指定节点。查看 Pod 资源中kind字段的具体说明,可一层一层往下。创建daemonset资源 -> 日志收集。创建cronjob -> 定时任务。参考其他的yaml文件。1.创建一个命名空间。

2025-10-09 18:19:44 431

原创 k8s-ingress控制器

是kubernetes对反向代理的一个抽象,它的工作原理类似于Nginx,可以理解成在Ingress里建立诸多映射规则,Ingress Controller通过监听这些配置规则并转化成Nginx的反向代理配置 , 然后对外部提供服务。因为我们是基于域名做的负载均衡的配置,所有必须要在浏览器里使用域名去访问,不能使用ip地址。再次在nfs服务器上测试,多测试几次,因为service 背后的ipvs的调度算法是轮询的。/usr/share/nginx/html/bar 文件夹不存在,导致404错误。

2025-10-07 22:54:52 839 3

原创 k8s集群综合项目

项目名称:搭建 nginx 的高性能 web 集群项目环境:rocky Linux 9.6,nginx 1.28,ansible 2.14.18,docker 18.4.0,prometheus 3.6.0,grafana 12.1.1,kubelet 1.23.17等项目背景:在测试环境中,以 K8s 为核心搭建容器化集群,承载 Web 业务,配套集成 GitLab、Harbor、Jenkins、Jumpserver,构建一个高可用高性能的系统项目步骤:1.搭建k8s单master集群(1个master

2025-10-07 10:19:08 1517

原创 k8s-RBAC鉴权

把xa 这个用户通过rolebinding绑定到clusterrole上,授予权限,权限只是在xa这个名称空间有效。修改/home/xa/.kube/config文件,把kubernetes-admin相关的删除,只留xa用户。鉴定权限的目的: 保障安全 ,防止没有得到授权的用户访问我们的k8s资源,破坏k8s里的资源。不同租户给与不同的linux系统账号,然后关联不同的k8s集群里的useraccount。目的:防止k8s里的pod(会运行程序)能随意获取整个集群里的信息和访问集群里的资源。

2025-10-04 19:43:09 1020 1

原创 k8s-卷-数据存储

尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,但这些容器都可以读写 emptyDir 卷中相同的文件。当 Pod 因为某些原因被从节点上删除时,emptyDir 卷中的数据也会被永久删除。使用时, Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。建议k8s集群内的所有的节点都安装nfs-utils软件,因为节点服务器里创建卷需要支持nfs网络文件系统。在k8s集群里的任意一个节点服务器上测试能否挂载nfs服务器共享的目录。基于base64 编码转换。

2025-10-04 19:42:38 973

原创 k8s-无状态应用和有状态应用

无状态应用适合不需要持久化数据、实例可随意替换的场景,部署和扩展更简单有状态应用适合依赖持久化数据或稳定身份的场景,需要严格的实例管理和存储保障。

2025-10-03 19:32:21 479

原创 搭建nginx的高性能web集群

项目名称:搭建 nginx 的高性能 web 集群项目环境:rocky Linux 9.6,nginx 1.28,ansible 2.14.18,prometheus 3.6.0,keepalived 2.2.8,grafana等项目背景: 在测试环境中,目的是构建一个高可用高性能的 web 集群系统,部署 nginx 负载均衡系统+keeplived 高可用软件,后端使用 nginx 做 web 服务器,同时搭建一套基于 Pometheus+grafana 监控系统。

2025-10-03 16:56:41 1082

原创 k8s-pod调度

lyb-nginx Pod 的标签是 workcity: guangzhou,符合 labelSelector 规则,因此 xa-nginx 被调度到了 lyb-nginx 所在的 k8s-2 节点。污点理解为一个标签,打了污点标签的节点,调度器在调度pod的时候,尽量不会调度到有污点的节点上,使节点能够排斥一类特定的 Pod。调度是强制的,这就意味着即使要调度的目标Node不存在,也会向上面进行调度,只不过pod运行失败而已。以pod为目标,解决pod可以和哪些已存在的pod部署在同一个拓扑域中的问题。

2025-10-02 15:40:14 1295

原创 k8s-HPA-VPA

HPA 优先:对于无状态应用,优先使用 HPA,扩缩更灵活且对应用无侵入VPA 辅助:对于资源需求不稳定的应用,可结合 VPA 优化资源配置,避免浪费避免同时使用:同一工作负载尽量不同时启用 HPA 和 VPA,可能导致扩缩逻辑冲突合理设置阈值:根据应用特性调整扩缩阈值(如 CPU 利用率 70-80% 较为常见)通过 HPA 和 VPA 的合理配置,可实现 Kubernetes 集群资源的动态优化,提升应用稳定性和资源利用率。

2025-10-02 15:39:35 557

原创 k8s-pod的镜像升级与回滚

回滚本质是 “反向滚动升级”,也可直接修改yaml文件。会重新创建一个新的rs ,deploy名字不会改变。deploy升级过程 --》滚动升级。修改副本数量和镜像文件版本或者名字。一个一个去升级,无服务中断。新的rs会去创建新的pod。变更镜像版本,rs也会变。

2025-10-01 22:34:31 460

原创 k8s-Service服务

作用:将内部的pod暴露到外面,让用户可以访问。

2025-10-01 22:33:47 792 1

原创 k8s-容器探针

如果就绪态探测失败, EndpointSlice 控制器将从与该 Pod 匹配的所有 Service 的 EndpointSlice 中删除该 Pod 的 IP 地址。如果容器不提供就绪态探针,则默认状态为 Success。如果存活态探测失败,则 kubelet 会杀死容器, 并且容器将根据其重启策略决定未来。如果启动探测失败,kubelet 将杀死容器, 而容器依其重启策略进行重启。当探针发现pod没有运行的时候,kubelet会根据pod的重启策略,重启pod。指示容器中的应用是否已经启动。

2025-09-30 15:12:22 612

原创 k8s-pod的容器类型

的一个特殊容器,它不运行任何业务逻辑,而是作为 Pod 中所有容器的 “基础容器”,负责为整个 Pod 提供共享的网络命名空间和 PID 命名空间。像主容器的 “副驾驶”,与主容器共享 Pod 的网络和存储,提供非业务性的辅助功能,且与主容器同时启动、同时退出。初始化容器像常规应用容器一样,只有一点不同:初始化容器必须在应用容器启动前运行完成。初始化容器检测到服务可用后完成初始化,主容器成功启动并进入运行状态。删除整个 Pod 后,重新创建不包含该边车容器的新 Pod。创建仅包含主容器的pod。

2025-09-30 15:11:38 561

原创 k8s-pod的资源限制

Pod 的资源限制是保障集群稳定性、避免资源争抢的核心机制,通过定义 Pod 对 CPU、内存等计算资源的 “需求” 和 “上限”,实现资源的合理分配requests -> Pod 运行所需的最小资源保障limits -> Pod 能使用的最大资源上限。

2025-09-29 15:11:55 479

原创 k8s-组件、三大接口

CRI:连接 k8s 与容器运行时,负责容器的创建和管理CSI:连接 k8s 与存储系统,负责存储卷的生命周期管理CNI:连接 k8s 与网络插件,负责容器网络的配置和通信这三大接口共同构成了 Kubernetes 的扩展层,使 k8s 具备高度的灵活性和可扩展性,能够适配不同的底层基础设施和业务需求。

2025-09-29 14:10:53 1196

原创 k8s-pod的启动

pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。

2025-09-28 23:41:08 2954 3

原创 k8s-部署单master节点

实验环境规划:操作系统:全新的rocky9.6配置: 4核cpu +/8Gib 内存/100G磁盘网卡模式:NATK8S集群角色IP主机名控制节点masterK8s-1工作节点node1K8s-2工作节点node2K8s-3不做特殊说明所有机器都需要做相同的操作,只不过这里我使用k8s1实验部分脚本是否可行,k8s2来验证每一步是否可行,k8s3实验所有脚本是否可行。

2025-09-28 18:31:39 1184

原创 docker-私有仓库harbor

docker compose 是在一台机器上进行容器编排的工具。必须进入存放docker-compose.yml的目录。密码:Harbor12345(未对配置文件修改)启动 / 停止 / 重启 Harbor。在项目中添加成员huang为系统管理员。在用户管理中新建一个用户huang。下载harbor的源码,解压。登录账号:admin。

2025-09-27 23:43:32 981

原创 docker相关进程的作用

进程特征:每一个端口映射规则(-p)对应一个独立的 docker-proxy 进程,进程名通常包含端口信息(如 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.2 -container-port 80)核心作用:容器的 “业务进程”,容器的生命周期与该进程强绑定(进程退出,容器也会退出,除非配置了 --restart 策略)容器运行时与主进程,保证容器的稳定性。

2025-09-27 23:42:22 931

原创 docker-卷

容器的数据保存问题-数据持久化-数据共享-volume正常停止容器,容器里的数据会丢失吗?不会丢失,会保存 -> /var/lib/docker/volumes/如何将容器里的数据保存到宿主机?volumn如何在容器和宿主机之间传输数据?docker cp修改了容器里某个应用程序对应的配置文件如何让配置文件生效?重启容器Docker 卷(Volume)是 Docker 中用于持久化存储。

2025-09-25 23:20:03 1246 1

原创 docker-镜像

Docker 镜像通过将应用程序及其所有依赖(运行时、库、配置)打包成一个不可变的文件,确保了无论在哪个环境,只要运行该镜像,就能获得完全一致的执行环境。只有容器层是可写的,容器层下面的所有镜像层都是只读的。容器启动的时候,内核启动bootfs后直接将基础镜像加载,然后一层一层的加载–》自下而上。尽量不把数据拷贝到容器里,当容器启动起来后,可以使用挂载卷的方法,减少镜像的数据。它就像一个静态模板,是创建容器的 “蓝图”,容器则是镜像的动态运行实例。进入容器内部,创建user表,然后导入表和基础的数据。

2025-09-25 23:19:13 1225

原创 docker-容器网络类型

创建网络的命名空间(默认bridge)bridge sc使用自定义网络创建两个容器--networksc nginx查看两个容器ip地址进入创建容器里面,ping一下^C^C。

2025-09-24 23:23:15 1033 3

原创 MySQL-主从复制

MySQL 8.0 默认的 caching_sha2_password 认证插件在非 SSL 连接下要求 “安全连接”,而当前从库未配置 SSL,会导致认证失败。-> 兼容性方案:改用 mysql_native_password 插件。slave是一直连接到master的,传输层使用tcp。主服务器上开启二进制日志,server_id=1。新建一个授权用户,给slave来复制二进制日志。查看是否开启二进制日志,主库状态。master:主服务器。slave:从服务器。查看主上所有活跃连接。

2025-09-24 23:22:14 473

原创 docker底层的隔离机制和资源控制机制

Cgroups v2(目录结构为 /sys/fs/cgroup/ 直接包含控制组),而早期的 Cgroups v1 是按子系统分目录(如 /sys/fs/cgroup/cpu/、/sys/fs/cgroup/memory/)。1.使用docker容器启动mysql, -m 1000000000 --》自动会创建cgroup策略来限制mysql容器对应的进程的内存使用空间。cgroups --》资源控制 --》限制cpu、内存使用等(限制进程的资源)命名空间是内存里存放数据的一个空间。

2025-09-23 23:41:14 697 1

原创 docker概念、安装与基本使用

类似软件的集装箱使用容器的好处:1.成本低廉2.管理方便颗粒度更加小的虚拟化技术–》容器技术–》可以控制资源很多企业里的物理机的资源使用率比较低,一个业务一群机器,导致大量的资源浪费,成本过高docker技术可以控制资源的使用率,可以让物理机很饱和的运行 --》减少机器的数量,同时业务也能正常的运行使用docker可以降低基础设施成本。

2025-09-23 23:40:37 1003

原创 ansible-playbook的使用

Ansible Playbook 是 Ansible 实现自动化任务编排的核心文件,采用YAML格式编写,用于定义一系列任务、变量、条件和执行逻辑,实现对被管理节点的批量配置、部署或操作相比临时命令(Ad-hoc),Playbook 更适合复杂场景(如多步骤任务、依赖关系控制、动态配置),且支持版本化管理(可存入 Git 等仓库)

2025-09-22 22:24:47 804

原创 ansible安装与模块使用

Ansible 是一款由 Red Hat 主导开发的开源自动化工具,主要用于配置管理、应用部署、任务编排和 IT 基础设施自动化。它基于 Python 开发,采用 “无代理(Agentless)” 架构,通过 SSH 协议(Linux/Unix)或 WinRM(Windows)与目标节点通信,无需在被管理机器上安装额外客户端,极大降低了部署和维护成本其他自动化运维工具Puppet:一种成熟的配置管理工具,采用客户端 - 服务器架构,有自己独特的声明式语言。

2025-09-22 22:23:24 1034

原创 Linux-文本三剑客(grep、sed、awk)

grep、sed、awk 被称为 “文本三剑客”,它们是处理文本文件的强大工具,广泛用于日志分析、数据提取、文本转换等场景。三者各有侧重,常结合管道(|)使用基于行处理的文本命令grep 过滤文本sed 过滤,替换文本awk 截取文本,统计文本输出/etc/passwd文件里的uid大于1000的用户的信息,输入格式如下:while 和 readIFS 输入字段分割符 input field separator/bin/bashdoif ((uid。

2025-09-14 23:16:11 1166

原创 Prometheus监控

Prometheus Server 配置 “采集任务(Job)”,按指定间隔从 targets(exporters/Pushgateway) 拉取(Pull)指标数据。:拉取的指标数据按时序结构存储到本地时间序列数据库(TSDB)中,数据包含 “指标名 + 标签(Labels) + 时间戳 + 数值”,支持高效查询和压缩。在prometheus服务器上添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里。将node-exporter传递到所有的服务器上的/root目录下。

2025-09-07 23:53:32 1179

原创 Redis-集群

> Redis 集群中,每个 key 会通过 CRC16(key) % 16384 计算出对应的槽位(k1 计算后为槽 12706)redis-benchmark : 可以测试redis读写能力,并发。使用确定性哈希函数,对给定的key通过CRC16计算始终得到同一个结果,数据会映射到同一个分片。:使用Redis集群时会将数据分散到多台Redis服务器上,一台Redis实例被称为一个分片。(-c 表示开启集群模式,让客户端自动跟随集群的槽路由,无需手动切换节点)未加 -c 参数(开启集群模式)时的。

2025-09-07 23:52:58 1159 4

原创 git在Linux中的使用

复制生成后的 ssh key ,通过仓库主页 [管理] -> [部署公钥管理] -> [添加部署公钥],将生成的公钥添加到仓库中。修改尚未加入提交(使用 “git add” 和/或 “git commit -a”)(使用 “git restore --staged <文件>…(使用 “git restore --staged <文件>…总共 3(差异 1),复用 0(差异 0),包复用 0(来自 0 个包)提交为空,但是存在尚未跟踪的文件(使用 “git add” 建立跟踪)” 以包含要提交的内容)

2025-09-06 23:58:22 1386

原创 Redis-主从复制-哨兵模式

3哨兵(26379, 26389, 26399) => 建议放在监控服务器或其他功能的服务器(不放在Redis服务器)配置好一主二从(所有Redis: masterauth 12345678,requirepass 12345678)当从Redis断开连接后,主Redis执行了写操作,再重新连接上来之后,数据是否会同步过来?主从(主故障了不能写) -> 哨兵(实现故障迁移,有延时可能丢失数据) -> Redis集群。当主Redis Down掉,从Redis是否会变成主。

2025-09-06 23:57:42 913

原创 Redis-事务与管道

事务基本流程开启事务:multi放弃事务:discard执行事务:exec监控数据:watch keyname取消监控:unwatch管道 是一种优化命令执行效率的机制,它允许客户端一次性发送多个命令到服务器,而不必等待每个命令的响应,待所有命令执行完成后,服务器再将所有结果一次性返回给客户端特性管道事务原子性不保证原子性(命令按顺序执行,中间出错不影响后续)保证原子性(要么全执行,要么全不执行)执行机制批量发送命令,服务器依次执行并返回结果。

2025-09-05 23:50:16 1219

原创 Redis-持久化

Redis是内存型数据库当redis服务被Kill掉,重新启动,查看数据,发现数据会被清空持久化:将内存中数据存储到磁盘两种模式:RDB和AOF。

2025-09-05 23:49:37 1198

原创 bash自带的切片操作

统计一个字符串的个数。

2025-09-04 23:59:34 509

原创 Linux-xargs-seq-tr-uniq-sort

xargs、seq、uniq、tr、sort是一组常用的文本处理和批处理工具,它们常通过管道组合使用,完成复杂的文本处理或任务自动化。

2025-09-04 23:59:17 731

原创 keepalived高可用

双vip架构步骤:1.在每个机器上启用2个vrrp实例第2台机器上的配置验证一下vip漂移,停止下keepalived服务查看。

2025-09-03 23:59:06 1087

原创 VRRP协议

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种用于实现路由器冗余的协议,旨在提高网络的可靠性和可用性它允许多台路由器组成一个虚拟路由器组,对外表现为一个单一的虚拟路由器(拥有一个虚拟 IP 地址和虚拟 MAC 地址)。当主路由器(Master)发生故障时,备份路由器(Backup)会接管其工作,确保网络流量的无缝切换。其核心是通过 “逻辑虚拟路由器” 替代物理网关,实现网关的高可用性基本概念虚拟路由器(Virtual Router)

2025-09-03 23:53:32 1243

原创 nginx-压力测试

什么是压力测试?为什么要做压力测试?压力测试的目的是想了解某台web服务器能承受多少用户同时访问(流量访问),承受流量测试的过程,叫做压力测试只有了解了一台服务器能抗多少流量,我们要提前规划,防止服务器down机,特别在公司做活动的时候,会有大量的用户访问,如果我们没有提前做演练,就会导致活动当天,服务器承受不了大的流量,导致公司受损失,用户体验差的情况任何的业务上线之前,都要进行压力测试压力测试是对我们整个web集群进行检验,到底可以抗多少个用户并发连接访问。

2025-09-01 23:50:56 671

原创 nginx-realip问题解决方案

将nginx内部的remote_addr这个变量的值,赋值给X-Real-IP这个变量,X-Real-IP这个变量会在http协议的请求报文里添加一个X-Real-IP的字段,后端的real server 服务器上的nginx就可以读取这个字段的值 X-Real-IP。效果就是在日志文件里能看到前端用户的ip地址,具体看哪个日志文件,需要在web服务器上确认访问的是哪个虚拟主机,然后确认是哪个access.log文件,就能看到real ip的地址。web1和web2服务器上都要进行修改。

2025-09-01 23:37:20 678

空空如也

空空如也

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

TA关注的人

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