自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jenkins

Jenkins 是一个开源的、用 Java 编写的自动化服务器,主要用于持续集成和持续交付(CI/CD),专门负责处理代码从编写到上线的重复性工作。,还能做各种定时任务:每天凌晨2点自动备份数据库每小时清理临时文件每周生成项目报告定时监控服务器状态。

2025-12-16 15:08:13 399

原创 【高危漏洞预警】Kubernetes服务器端请求伪造漏洞(CVE-2025-13281)

Kubеrnеtеѕ kubе-арiѕеrvеr在解析匿名请求与Wеbhооk令牌认证链的交互过程中存在逻辑缺陷,攻击者可在无需任何集群凭据的情况下构造包含恶意Authоrizаtiоn:Bеаrеr头与空匿名用户的请求绕过正常的TоkеnRеviеԝ校验最终被系统误判为已认证身份。2.使用OPA Gаtеkеереr或Kуvеrnо添加策略,禁止匿名用户创建/更新特权Pоd与ѕесrеt。在所有API Sеrvеr实例上增加启动参数--аnоnуmоuѕ-аuth=fаlѕе并重启服务。

2025-12-16 10:25:00 332

原创 ArgoCD第一课--概念理解

Argo CD 是一个为 Kubernetes 而生的,遵循声明式 GitOps 理念的持续部署(CD)工具,它的配置和使用非常简单,并且自带一个简单易用的 Dashboard 页面,并且支持多种配置管理/模板工具(例如 Kustomize、Helm、Ksonnet、Jsonnet、plain-YAML)。

2025-12-07 23:23:52 492

原创 【shell】每日shell练习:系统定时任务安全审计/系统文件权限安全检查

检查系统中所有用户的crontab任务,识别潜在的安全风险(如root权限任务、可疑命令等)。:分析ls -la输出,找出权限设置不当的重要系统文件。

2025-10-27 14:28:36 884

原创 【shell】每日shell练习:系统备份文件管理/系统性能趋势分析

管理备份文件,自动清理过期备份并生成备份报告。:分析系统监控数据,识别性能趋势并预测潜在问题。

2025-10-24 23:29:28 1044 4

原创 【shell】每日shell练习:安全日志入侵检测/系统配置文件合规检查

分析 auth.log 安全日志,检测潜在的 SSH 暴力破解攻击。:检查 SSH 配置文件的安全设置,确保符合安全基线要求。

2025-10-21 00:16:17 1087

原创 Kubernetes从零入门(六):管理工作负载--Deployment更新与回滚

Deployment 用于管理运行一个应用负载的一组 Pod,通常适用于不保持状态的负载。一个 Deployment 为和提供声明式的更新能力。你负责描述 Deployment 中的,而 Deployment以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。

2025-10-19 01:42:13 1192

原创 【shell】每日shell练习(系统服务状态监控/系统性能瓶颈分析)

分析 systemctl 输出,识别启动失败的服务并提供详细信息。:分析 top 命令输出,识别 CPU 和内存使用率最高的进程。

2025-10-18 23:37:44 743

原创 每日手撕算法--二路归并

二路归并是将两个有序序列合并成一个有序序列的过程。这里我们假设有两个升序排列的数组,我们需要将它们合并成一个升序数组。比较两个指针所指的元素,将较小的元素放入结果数组中,并将该指针后移。重复步骤2,直到其中一个数组的所有元素都被遍历完。将另一个数组剩余的元素直接追加到结果数组中。使用两个指针分别指向两个数组的起始位置。

2025-10-17 22:45:16 108

原创 Kubernetes从零入门(五):pod中的容器--init容器、sidecar容器

Init 容器是一种特殊容器,在内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。可以在 Pod 的规约中与用来描述应用容器的containers数组平行的位置指定 Init 容器。

2025-10-17 22:09:25 1055

原创 Kubernetes从零入门(四):工作负载--pod

Pod 遵循预定义的生命周期,起始于Pending, 如果至少其中有一个主要容器正常启动,则进入Running,之后取决于 Pod 中是否有容器以失败状态结束而进入Succeeded或者Failed阶段。和一个个独立的应用容器一样,Pod 也被认为是相对临时性(而不是长期存在)的实体。Pod 会被创建、赋予一个唯一的 ID(), 并被调度到节点,并在终止(根据重启策略)或删除之前一直运行在该节点。如果一个死掉了,调度到该节点的 Pod 也被计划在给定超时期限结束后。

2025-10-16 21:25:07 1398

原创 每日手撕算法--哈希映射/链表存储数求和

循环条件:l1不为空,或l2不为空,或进位carry不为0(即使两个链表都遍历完,但还有进位,则需要继续处理)。创建一个哑节点作为结果链表的起始节点,这样无论是否有进位,都可以通过dummy->next得到结果链表的头。计算当前位的和:sum = carry + (l1的值,如果l1存在) + (l2的值,如果l2存在)创建一个新节点,值为digit,将其连接到当前节点的后面,然后当前节点移动到新节点。循环结束后,返回哑节点的下一个节点(即结果链表的头节点)。的链表,表示两个非负的整数。

2025-10-16 20:22:26 355

原创 【shell】每日shell练习(磁盘空间监控与告警/网络连接状态分析)

分析 netstat 输出,统计各种网络连接状态并识别异常连接。:分析df命令输出,对使用率超过80%的分区发出告警。

2025-10-16 18:53:36 630

原创 【shell】每日shell练习(系统用户安全审计/系统日志错误分析)

文件,找出所有具有登录权限但超过90天未登录的用户。:分析系统日志,提取并分类错误信息,按严重级别统计。

2025-10-15 22:15:28 789

原创 Kubernetes从零入门(三):Kubernetes API--资源模型

Kubernetes API 使你可以查询和操纵 Kubernetes 中对象的状态。Kubernetes 控制平面的核心是 API 服务器和它暴露的 HTTP API。用户、集群的不同部分以及外部组件都通过 API 服务器相互通信。大部分操作都可以通过kubectl命令行接口或类似kubeadm这类命令行工具来执行, 这些工具在背后也是调用 API。不过,你也可以使用 REST 调用来访问这些 API。Kubernetes 为那些希望使用 Kubernetes API 编写应用的开发者提供一组客户端库。

2025-10-03 20:53:01 310

原创 Kubernetes从零入门(二):深入解析集群架构与核心组件工作原理

Kubernetes 集群由一个控制平面和一组用于运行容器化应用的工作机器组成, 这些工作机器称作节点(Node)。每个集群至少需要一个工作节点来运行 Pod。工作节点托管着组成应用负载的 Pod。控制平面管理集群中的工作节点和 Pod。在生产环境中,控制平面通常跨多台计算机运行,而一个集群通常运行多个节点,以提供容错和高可用。本文概述了构建一个完整且可运行的 Kubernetes 集群所需的各种组件。

2025-10-02 16:28:06 1165

原创 Kubernetes从零入门(一):全面解读容器编排的核心价值与演进历程

Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、扩缩和管理。此开源项目由云原生计算基金会(CNCF)托管。Kubernetes这个名字源于希腊语,意为“舵手”或“飞行员”。K8s 这个缩写是因为 K 和 s 之间有 8 个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。

2025-10-02 15:55:14 1545

原创 【K8s】K8s的声明式API核心

这意味着开发者/运维人员可以继续使用他们熟悉的 Kubernetes 概念(标签、命名空间)来管理网络安全,而无需深入了解底层的复杂网络知识(IP 地址管理、路由协议、防火墙命令)。在看K8s官方文档时,发现networkpolicy网络策略资源在K8s API目录下,由这一点对K8s的声明式API驱动和控制平面与数据平面分离又有了新的理解。​:通过标准化的 API,Kubernetes 成功地将网络能力外包给了专业的第三方插件,构建了强大的生态系统。​,而不是传统的 IP 地址、子网、网卡。

2025-09-30 16:05:24 438

原创 【K8s】升级节点

注意:以下命令以root身份或使用sudo。

2025-09-30 15:44:44 706

原创 【K8s监控】Prometheus+Grafana

Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态。

2025-09-29 23:15:13 339

原创 【ansible/K8s】K8s的自动化部署源码分享

采用 ​​Ubuntu 作为我们的操作系统。

2025-09-28 21:53:51 605

原创 【Ansible】关于优化ansible的几种方式

需要注意的是:如果开启pipelining,需要被控的远程服务器将/etc/sudoers中的”Defaults requiretty”注释掉,否则会出现类似如:you must have a tty to run sudo 的报错。如果开启了pipelining,整个流程少了一个PUT脚本到远程服务器的步骤,直接在SSH的会话中进行,可以提高整个执行效率。这里的86400单位为秒,表示缓存的过期时间。需要注意的是,facts存储不支持远端的redis,需要在ansible的控制服务器上安装redis;

2025-09-26 23:20:33 558

原创 【Ansible】使用ansible部署k8s集群前的准备工作脚本

configure_containerd: 安装并配置 Containerd(推荐用于 Kubernetes)disable_swap: 关闭 swap 分区(Kubernetes 要求)安装必要的系统工具:curl、wget、python3、sshpass 等。这个脚本为 Kubernetes 集群部署提供了标准化的基础环境准备。5. Hosts 文件配置 (configure_hosts)4. 主机名配置 (configure_hostname)7. 内核参数配置 (configure_kernel)

2025-09-26 00:12:16 1298

原创 【Linux】top:系统动态监视工具 输出内容详解

第 1 行:系统概览10:30:00:当前系统时间。up 100 days, 1:23:系统已运行时间。这里表示连续运行了 100 天零 1 小时 23 分钟。​​时间长代表系统稳定​​。2 users:当前登录到系统的用户数量。load average: 0.05, 0.10, 0.15:​​系统平均负载​​(过去 1、5、15 分钟)。​​这是核心监控指标​​。第 2 行:任务(进程)total:当前系统中的进程总数。running:正在运行或在运行队列中等待运行的进程数。

2025-09-22 14:15:35 926

原创 【MySQL】索引

当查询的列全部包含在索引中时,数据库引擎可直接通过索引返回结果,减少磁盘 I/O 和性能开销。最左前缀原则是数据库索引使用中的核心概念,指的是复合索引(多列索引)的查询必须从索引的最左列开始,并且不能跳过中间的列。B树的变种,非叶子节点仅存储键值,数据全部存储在叶子节点,且叶子节点通过指针链接。相比于B树,B树的叶子节点和非叶子节点都存放数据,一个页面内存放的键值对少,存放相同量的数据时,层级更深;索引的叶子节点直接存储数据行,表的物理顺序与索引顺序一致。可以包含重复值和NULL值,是最基础的索引类型。

2025-09-20 23:53:41 1038

原创 【MySQL】SQL性能分析

-展示全局命令执行频次。

2025-09-19 17:28:28 657 1

原创 【MySQL】体系结构

如果启用了查询缓存,SQL语句和结果将完全保存在查询缓存中。2、查询缓存,如果启用了 Query Cache (查询缓存),并且在查询缓存期间查询到相同的SQL语句,则查询结果将直接返回给客户端,MySQL优化查询;5、查询执行引擎执行SQL语句,查询执行引擎,将根据SQL语句中表的存储引擎类型以及相应的API接口与底层存储引擎缓存或物理文件之间的交互来获得查询结果。4、存储引擎底部是物理存储层,是文件的物理存储层,包括二进制日志,错误日志,重做日志、数据文件、索引、慢查询日志、全日志等。

2025-09-17 23:41:43 484

原创 【linux】特殊权限

典型应用:/usr/bin/passwd(允许普通用户修改自己的密码,但需要 root 权限)对目录:即使目录有写权限,也只有文件所有者能重命名或删除自己的文件。典型应用:/tmp目录(所有用户可写,但无法删除他人文件)对文件:用户执行该文件时,会以文件所有者的权限运行。对文件:用户执行该文件时,以文件所属组的权限运行。对目录:新创建的文件继承目录组的身份。

2025-09-14 16:22:17 245

原创 【Linux】添加sudo权限/设置默认权限/配置别名/配置新用户的密码策略

用户 `manalo` 在 servera 上,所有新创建的文件都应具有 -r--r--r-- 的默认权限。这个应用以 `natasha` 身份运行时,会显示一个字符串 `This is a rhcsa`在natasha用户家目录中的.bashrc中,添加一行alias即可。此用户的所有新创建目录应具有 dr-xr-xr-x 的默认权限。创建新用户时,新用户的默认密码策略为20天后密码会过期。允许`sysmgrs`组成员sudo时不需要密码。配置一个应用 `ex200`4. 配置新用户的密码策略。

2025-09-13 23:54:09 526

原创 【MySQL】事务

事务是数据库操作的最小工作单元,是一个不可分割的逻辑整体。它包含一个或多个 SQL 语句,这些语句要么​​全部成功​​,要么​​全部失败​​。最经典的例子就是银行转账。

2025-09-12 23:46:36 807

原创 【MySQL】约束

约束是应用于表中列的规则,用于限制可存储的数据类型。它们的主要作用是:维护数据准确性、保证数据一致性、防止无效数据插入。

2025-09-11 23:40:45 975

原创 【MySQL】常用SQL语句

分号结尾使用空格和缩进不区分大小写--或#注释单行内容 /*注释多行内容*/DDL数据定义语句:定义数据库、表、字段一、操作库-- 创建库-- 创建库是否存在,不存在则创建-- 查看所有数据库-- 查看某个数据库的定义信息-- 修改数据库字符信息-- 删除数据库二、操作表--创建表id int,age int ,-- 查看表结构desc 表名;-- 查看创建表的SQL语句show create table 表名;-- 修改表名。

2025-09-10 23:47:45 2603

原创 【MySQL】常用函数

示例:从phone_home、phone_work和phone_mobile列中选择第一个非空的电话号码。示例:将birth_date列中的日期格式化为YYYY - MM - DD的形式。示例:将first_name和last_name连接成一个完整的姓名。示例:计算end_date和start_date之间的天数差。示例:将product_name列中的所有字符串转换为大写。示例:插入当前日期到orders表的order_date列。示例:在order_date列的日期基础上添加7天。

2025-09-09 22:37:13 591

原创 使用Ansible自动化部署Hadoop集群(含源码)--环境准备

我们的目标是通过Ansible实现自动化部署hadoop集群。在此之前,我们先编写一个shell脚本来配置hadoop集群的环境,包括安装软件、安装配置Ansible(一个主节点+四个工作节点)、实现节点间的免密访问、配置hdfs yarn zookeeper等角色分组,为后续自动化部署hadoop集群做准备。现在我们有5台虚拟机,已经配置好了主机名和网络。

2025-09-06 21:51:36 275

原创 【MySQL】表的定义/创建、修改和删除

SQL支持数据库系统的三级模式结构,其模式、外模式和内模式中的基本对象有表、视图和索引,因此,SQL的数据定义功能包括定义表、定义视图和定义索引。SQL中只有三个数据定义动词,分别是:CREATE(创建)、DROP(删除)ALTER(修改)。虽然只有三个动词,但通过灵活的使用能够发挥强大的作用。本篇文章介绍如何定义/创建、修改和删除基本表。定义表需要定义表名、列名、列的数据类型。还可以定义与该表有关的完整性约束条件。语法CREATE TABLE <表名>(

2025-09-04 23:49:37 376

原创 执行一条select语句期间发生了什么?

第四步是执行sql,执行sql分为三个步骤,一是预处理阶段,预处理阶段,由预处理器来完成,他负责,查询字段存不存在,以及将select *中的*展开为表中的每一列,二是优化阶段,由优化器来完成,它负责根据查询成本确定一个最终的查询方案,三是执行阶段,由执行器完成,根据计划执行sql语句从存储引擎读取记录并返回给客户端。首先是连接器的工作,嗯,与客户端进行TCP三次握手建立连接,校验客户端的用户名和密码,如果用户名和密码都对了,那么就会检查该用户的权限,之后执行的所有SQL语句都是基于该权限。

2025-09-03 23:55:16 448

原创 整体认识K8s之PriorityClass优先级调度/HPA自动扩缩容机制

HPA的本质是一个经典的闭环控制系统,三个组件完美的构成了这个循环,一是metric server,它是指标的来源,它负责收集所有的pod的CPU和内存使用率。第二是HPA controller是HPA的大脑,它内置于kube-controller-manager中定期查询指标,向metric API发起请求,获取当前的指标,然后计算所有pod的指标的平均使用率,将平均使用率与在HPA清单中设定的目标值进行比较,然后做出决策,决定是扩容缩容还是保持不变;通常建议只为少数真正关键的系统组件分配高优先级。

2025-09-02 22:12:06 250

原创 【K8s】整体认识K8s之监控与升级/ETCD的备份和恢复/kustomization/CRD

先说一下,这是一个聚合器,专门用来显示集群的资源使用情况,主要是内存和cpu。安装部署好以后,执行kubectl top命令就会返回结果。

2025-09-01 23:53:49 1498

原创 【K8s】整体认识K8s之Configmap、Secret/ResourceQuota资源配额/访问控制

每一个pod在创建的时候都会被自动分配一个service account,默认是default,这个身份信息被编码到一个token中,并且自动挂载到pod内部的一个固定目录,当pod中的应用程序需要访问API服务器的时候,API服务服务器收到请求后会验证令牌的有效性,从而确认这个请求是来自某个命名空间下的某个service account。不同的团队在不同的命名空间里工作,管理员给每个命名空间创建一个或多个ResourceQuota对象,定义这个命名空间可以使用的最大资源总量。命名空间内的所有资源,但。

2025-09-01 21:30:16 1280

原创 【K8s】整体认识K8s之存储--volume

这时候我们可以将它挂载到某个pod上来查看其中的数据或者手动删除这个PV,但是这仅仅删除了k8s中的PV对象,外部的存储资源依然存在,所以我们还需要清理外部存储手动删除对应的外部存储卷才真正的释放空间,这适用于数据非常重要的场景,确保不会误删数据,是很多数据库生产环境中默认和推荐的策略,因为它提供了最高的数据安全性。第二种delete(删除)自动回收,当PVC被删除时,k8s会自动删除PV对象,并调用后端存储的接口释放并删除外部存储资源,这时候,存储空间被自动释放,数据会永久丢失。

2025-08-31 21:52:38 1108

空空如也

空空如也

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

TA关注的人

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