avatar
文章
28
标签
12
分类
8
首页
文章
  • 分类
  • 归档
  • 标签
关于
Yiiong's Blog
搜索
首页
文章
  • 分类
  • 归档
  • 标签
关于

Yiiong's Blog

基于Jenkins+Git+SonarQube+Draft+Buildah+Helm的CI/CD流
发表于2025-12-08|Achievements
## 构建部署工具及镜像作用介绍 工具Jenkins:通过Pipeline实现CI/CD流 Sonar:进行代码检查 draft:根据项目自动生成Dockerfile与Helm Chart Buildah:打包、推送镜像 Helm:部署Chart到Kubernetes集群 镜像beatrueman/builder:1.0:整合了draft与buildah,负责镜像构建与镜像推送 beatrueman/deployer:1.0:整合了Helm,用于部署Chart到Kubernetes sonarsource/sonar-scanner-cli:latest:用于执行代码检查 jenkins/inbound-agent:3206.vb_15dcf73f6a_9-2:它是 Jenkins Pipeline 中的一种代理机制,允许在 Jenkins 中动态创建代理节点以执行特定的构建任务。 整体流程 开发人员推送代码到Git仓库,自动触发Jenkins CI/CD流 SonarQube进行代码检查 查找Dockerfile,如果没有则通过Draft自动生成Doc...
红岩打印姬复活记录
发表于2025-12-08|Trouble Shooting
下面记录一下在复活网校打印机机器人-**红岩打印姬**时遇到的问题和解决方案 做出的更新1.使用了Helemet-CI进行镜像打包 2.更改了Dockerfile的内容,使镜像可以快速且正确的被打包 3.由于飞书接收消息接口的json接收体发生了改变,对reply.py中的file_name、file_key和image_key三个变量的获取造成了影响,使用json.loads()函数解决 1.读取环境变量问题机器人通过configmap读取app_id,app_secret等环境变量,没有configmap的话机器人会报以下错误 Traceback (most recent call last): File "/nonebot/bot.py", line 22, in <module> driver.register_adapter(FeishuAdapter) File "/usr/local/lib/python3.10/dist-packages/nonebot/internal/driver/abstract.py...
关于GZCTF反向代理配置不当导致平台在高并发下崩溃
发表于2025-12-08|Trouble Shooting
## 环境 GZCTF单实例部署在172.20.14.20、172.20.14.110、172.20.14.111三台机器的K8s集群上,使用LoadBalancer对外暴露服务,LoadBalancer IP由MetalLB分得:172.20.14.118 问题描述2024年11月16日,2024 Redrock CTF开赛,这次比赛使用了新的比赛平台GZ::CTF - GZ::CTF Docs。 由于反向代理配置不当,导致平台在刚开赛时就因为高并发而立即崩溃,报错显示错误代码429,并且平台响应很慢,无法正常刷新。 排查过程在遇到429问题后,首先是检查了配置文件中和访问限制有关的参数配置,都适当的调大,发现并没有什么改善,没有解决问题。 GZCTF是单实例部署的,为了让流量分流,我将Pod扩容,但是单实例部署与多实例部署存在差别,并且据官方介绍单实例已经能满足大部分的一般比赛(满足2000人200题),并且是官方最为推荐的部署方式。多实例部署需要配置对象存储,否则会导致数据不一致的问题。 最后在咨询开发者以及在检查日志的过程中发现了问题: 配置文件中的Forwa...
工作负载与服务发现
发表于2025-12-08|Kubernetes
在没有工作负载之前,我们都是直接手动创建一个一个的Pod。但是如果当我们需要将一个复杂的服务部署到庞大的集群上并且实现高可用,我们总不能每个节点上都部署一遍吧。况且如果你可以将所有的Pod手动都创建好,但是如果镜像发生了更新,我们也需要将一个一个的Pod手动进行更新。太麻烦了,这个时候我们就可以使用工作负载,它可以帮助我们更高的管理Pod。 工作负载 工作负载 | Kubernetes 工作负载是在 Kubernetes 上运行的应用程序。 为了减轻用户的使用负担,通常不需要用户直接管理每个 Pod。 而是使用负载资源来替用户管理一组 Pod。 这些负载资源通过配置控制器来确保正确类型的、处于运行状态的 Pod 个数是正确的,与用户所指定的状态相一致。 Kubernetes 提供若干种内置的工作负载资源 Deployment和ReplicaSet StatefulSet:有状态服务,为 Pod 提供持久存储和持久标识符。 DaemonSet:守护型应用部署,如日志、监控组件。 Job和CronJob:定时任务部署,指定时间运行。 DeploymentDeployment...
调度与Helm
发表于2025-12-08|Kubernetes
## 调度 Kubernetes允许你去影响pod被调度到哪个节点。起初,只能通过在pod规范⾥指定节点选择器来实现,后⾯通过其他机制的逐渐加⼊来扩容这项功能。 固定节点(NodeName)指定Pod调度到某个节点上并且固定 apiVersion: apps/v1kind: Deploymentmetadata: name: node-name-test labels: app: node-name-testspec: replicas: 5 selector: matchLabels: app: node-name-test template: metadata: labels: app: node-name-test spec: nodeName: master # 指定节点名即可 containers: - image: nginx name: nginx 标签选择器根据标签选择可以调度的节点 给节点打标签 kubect label nodes master...
O2O用户优惠券预测记录
发表于2025-12-08|机器学习
# 数据挖掘汇报 大家好,今天由我向大家汇报一下我们组的项目。我们组做的项目题目是:基于XGBoost模型的O2O用户优惠券使用行为分析与预测方法研究。相信一些同学应该对这个题目很熟悉,因为这个题目来源于CSA数据工程实践的考核任务。之所以选择这个题目,一方面是因为它涵盖了许多我们在数据挖掘课程中学习过的机器学习相关知识点,另一方面也是因为我在这个项目上投入了大量时间和精力,并从中真正获得了一些实质性的收获。 因此,我希望借此机会向大家分享我的学习成果和一些心得体会。 下面我会从这几个方面来具体展开整个项目流程,最后还会讲讲K-Means的代码实现。 项目介绍首先是项目介绍。 可能很多同学不知道O2O是做什么的,这里我对O2O做一个解释。O2O是“Online to Offline”的缩写,它是一种商业模式,指的是通过线上平台将用户引导到线下实体店进行消费的方式。比如美团外卖就采用的这种模式,也就是用户线上先下单,商家线下制作并且送餐这种。 那我们为什么要对优惠券进行预测呢?因为优惠券是O2O的一种重要营销手段,反映到我们的生活上也是,哪个商家发优惠券我们就比较喜欢去这个商家...
wasm-plugin-github action
发表于2025-12-08|Achievements
## 功能描述 功能:添加了利用 GitHub Actions 来自动完成相应的镜像构建和发布工作的Workflow。支持通过push tag和手动触发两种方式。同时也遵循使用oras打包工具。特点:完全按照Wasm 插件镜像规范进行镜像打包。 更新: 添加了查找文件的逻辑,会在插件目录中查找spec.yaml​、README.md​和README-{lang}.md​三个文件,有则在打包推送镜像时设置相应的media type​。 修改了review后存在的问题。 修改了builder​容器的启动命令为 docker run -itd --name builder xxx /bin/bash​,之前使用sleep 99999​是希望容器保持后台持续运行,这样只适合测试容器,不适合在生产环境中使用。 重新提交PR​是因为错误地提交了一些没用的commit​,不太会删除,担心破坏仓库并且为了保持PR​整洁所以重新提交。 1.准备工作添加Repository Secrets和 Repository variables。​​2.通过push tag​触发,先查找相关文件,然后将...
Operator介绍
发表于2025-12-08|Kubernetes
# Operator 为什么要用?当K8s中的原生资源无法满足业务要求时,这时候就需要Operator来创建自己的CRD以及对应Controller。利用Controller实现CRD所需要的业务逻辑。 比如,我们想在Kubernetes中部署一个Nginx并让外界可以访问到,这时我们首先需要创建一个Deployment用来部署Nginx,然后创建一个Service用来将Deployment的Pod的容器端口映射到主机端口。我们觉得太麻烦了,想要创建一次资源就可以同时包含Deployment和Service。 是什么?Operator是一种通过自定义控制器(Customer Controller)扩展K8s API的模式。它的核心思想是将运维知识代码化。允许开发者将应用的管理逻辑(如部署、升级、备份、恢复)封装成代码,使K8s能够像管理原生资源一样管理复杂的有状态应用(如数据库、消息队列) 解决了什么? 管理有状态应用的复杂性:例如pg集群的自动故障转移、redis的数据持久化 自动化运维:通过代码替代人工操作 统一生命周期管理:标准化应用的安装、配置、扩缩容流程等 什么时...
存储与配置
发表于2025-12-08|Kubernetes
## 存储 持久化Pod是由多个容器组成的,在了解Pod的文件系统结构时,我们可以先看看一个Docker容器是如何被制作的。 容器根据镜像启动。我们在Dockerfile中的每一条RUN命令,会生成一层一层的镜像层,这些镜像层从下向上以栈的形式组成了一个镜像。而容器和镜像都是由多个层组成的,他们之间最大的区别就是容器的最上面的一层是读写层,叫做容器层。但镜像的所有层都是只读层,叫做镜像层。 容器启动后,Docker会在容器使用的镜像上添加一个容器层。容器运行时,所有和数据变化相关的操作都是在这个读写层中完成的,如新建文件,修改文件等。删除容器时,Docker同时会删除这个容器层。 每个容器运行时,都有自己的容器层,并在容器层中保存容器运行相关的数据。容器层之下的所有镜像层都是只读的,因此多个容器可以共享同一个镜像。 Pod中有若干个容器,每个容器的文件系统都是独立且一次性的。当容器因为某些原因重启时(崩溃、调度等情况),容器层就会被销毁并重新创建。 假如我们运行了一个MySQL的Pod,如果你没有对它做持久化存储,一旦这个Pod因为某些原因被销毁,那么这个Pod里的数据就会...
NLP语义匹配学习赛记录
发表于2025-12-08|机器学习
# 赛题介绍 背景本次项目来源于阿里云天池的日常学习赛:【NLP系列学习赛】语音助手:对话短文本语义匹配_学习赛_天池大赛-阿里云天池的排行榜 背景是OPPO公司有一个语音助手,这个语音助手需要根据对话来识别意图。赛题要求是参赛队伍需要根据脱敏后的短文本query-pair,来预测他们是否属于同一语义,最终提交一个预测概率文件来进行评测。 简单来说就是提供了两句话,需要判断这两句话是不是同一个意思(语义匹配)。 比如用下面的几个训练样本来举例: 肖战的粉丝叫什么名字 肖战的粉丝叫什么 1王者荣耀里面打野谁最厉害 王者荣耀什么英雄最好玩 0我想换个手机 我要换手机 1我是张睿 我想张睿 0不想 不想说 0 可以看到意思完全不同的两句话,最终真值标签输出0,表示不匹配。而意思相同的两句话,最终真值标签输出1。 提交最终需要提交一份预测结果文件,结果文件中每行为一个0-1的预测值,代表query-lair语义匹配的概率,与测试数据每行一一对应。 0.0010.999 评估 赛题解析本赛题属于自然语言处理(NLP)领域的文本匹配/语义相似度分类任务。给定两段脱敏后的短文...
123
avatar
Yiiong
文章
28
标签
12
分类
8
Follow Me
公告
Study in Redrock SRE!
最新文章
2025:向外走2025-12-31
Redrock Horizon|一站式运维平台2025-12-25
运维变更规范2025-12-25
MariaDB Galera错误的更改配置方式导致集群无法拉起2025-12-22
MariaDB Galera容器集群恢复方法2025-12-22
分类
  • Achievements7
  • Blogs2
  • CS1
  • Kubernetes6
  • Trouble Shooting4
  • 年度总结1
  • 服务器运维5
  • 机器学习2
标签
Blogs Achievements Operator CS Kubernetes 服务器运维 安全 Trouble Shooting Redis 机器学习 DNS CICD
归档
  • 十二月 2025 28
网站信息
文章数目 :
28
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Yiiong框架 Hexo 8.1.1|主题 Butterfly 5.5.2
搜索
数据加载中