智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程

news2025/3/6 14:20:11

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程

github地址
https://github.com/xiaoxiaoranxxx/POT-ZHIYUN

k8s搭建教程

首先下载代码文件

git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git
cd POT-ZHIYUN

编译镜像

代码相关文件在github
https://github.com/xiaoxiaoranxxx/POT-ZHIYUN

docker build -t install/pot-main:v1 .

在这里插入图片描述

创建命名空间和configmap

kubectl create -f pot-mysql-init.yaml

# 查看创建情况
kubectl get configmaps -n pot-zhiyun

在这里插入图片描述

创建pv,pvc,mysql

kubectl create -f pot-mysql.yaml

在这里插入图片描述

查看mysql容器中的init.sql是否成功初始化

kubectl logs -n pot-zhiyun pot-mysql-0

在这里插入图片描述

创建pv,pvc,web

kubectl create -f pot-web-deployment.yaml

在这里插入图片描述

确认正常安装

kubectl get pods -n pot-zhiyun

pot-zhiyun空间下所有pod都为Running状态

在这里插入图片描述

kubectl get svc -n pot-zhiyun

查看svc的状态,pot-web 的NodePort出口端口为31394,因此访问http://127.0.0.1:31394/为200说明搭建成功

在这里插入图片描述

设计思路

mysql

mysql为StatefulSet类型,单数据库来存储

通过configMap来初始化数据库文件

通过pv卷来实现持久化存储,默认分配大小为10G

创建一个services,可通过pot-mysql来获取主机名

web

web为Deployment类型,可生成多个pod来实现负载

通过pv卷来实现runtime目录共享,达到多个pod数据同步问题

pv卷默认分配大小为1G

创建一个services,可通过Local来获取真实IP地址

NodePort会对外映射一个端口

面对多个扫描器同时扫描可达到负载效果,可以在内网多个节点配置蜜罐来达到内网多节点蜜罐

在这里插入图片描述

相关配置文件

pot-mysql-init.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: pot-zhiyun
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-initdb-config
  namespace: pot-zhiyun
data:
  init.sql: |
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
...

pot-mysql.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-pv
  namespace: pot-zhiyun
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: standard-pot-mysql
  hostPath: 
    path: /mnt/data/pot-mysql
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-data-pot-mysql
  namespace: pot-zhiyun
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard-pot-mysql
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: pot-mysql
  namespace: pot-zhiyun
spec:
  serviceName: "pot-mysql"
  replicas: 1
  selector:
    matchLabels:
      app: pot-mysql
  template:
    metadata:
      labels:
        app: pot-mysql
    spec:
      volumes:
      - name: init-scripts
        configMap:
          name: mysql-initdb-config
      containers:
      - name: pot-mysql
        image: mysql:8.0.22
        env:
        - name: MYSQL_DATABASE
          value: pot_admin
        - name: MYSQL_USER
          value: root
        - name: MYSQL_ROOT_PASSWORD
          value: pot_admin@123
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mysql-data-pot
          mountPath: /var/lib/mysql
        - name: init-scripts
          mountPath: /docker-entrypoint-initdb.d
  volumeClaimTemplates:
  - metadata:
      name: mysql-data-pot
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
  name: pot-mysql
  namespace: pot-zhiyun
spec:
  ports:
    - port: 3306
      targetPort: 3306
  selector:
    app: pot-mysql

pot-web-deployment.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-data-pot-web
  namespace: pot-zhiyun
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: standard-pot-web
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pot-web-pv
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: standard-pot-web
  hostPath:
    path: /mnt/data/pot-web
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pot-web
  namespace: pot-zhiyun
spec:
  replicas: 5
  selector:
    matchLabels:
      app: pot-web
  template:
    metadata:
      labels:
        app: pot-web
    spec:
      initContainers:
        - name: init-permissions
          image: busybox
          command: ["sh", "-c", "chmod -R 777 /var/www/html/runtime/"]
          volumeMounts:
            - name: mysql-data-pot
              mountPath: /var/www/html/runtime/
      containers:
        - name: pot-web
          image: install/pot-main:v1
          ports:
            - containerPort: 80
          volumeMounts:
            - name: mysql-data-pot
              mountPath: /var/www/html/runtime/
      volumes:
        - name: mysql-data-pot
          persistentVolumeClaim:
            claimName: mysql-data-pot-web
---
apiVersion: v1
kind: Service
metadata:
  name: pot-web
  namespace: pot-zhiyun
spec:
  type: NodePort
  externalTrafficPolicy: Local
  ports:
    - port: 80
      targetPort: 80
  selector:
    app: pot-web

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2289347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

万物皆有联系:驼鸟和布什

布什?一块布十块钱吗?不是,大家都知道,美国有两个总统,叫老布什和小布什,因为两个布什总统(父子俩),大家就这么叫来着,目的是为了好区分。 布什总统的布什&a…

< OS 有关 > 阿里云:轻量应用服务器 的使用 :轻量化 阿里云 vpm 主机

原因: < OS 有关 > 阿里云:轻量应用服务器 的使用 :从新开始 配置 SSH 主机名 DNS Tailscale 更新OS安装包 最主要是 清除阿里云客户端这个性能杀手-CSDN博客 防止 I/O 祸害系统 操作: 查看进程&#x…

SOME/IP--协议英文原文讲解3

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 Note: Thi…

unity学习24:场景scene相关生成,加载,卸载,加载进度,异步加载场景等

目录 1 场景数量 SceneManager.sceneCount 2 直接代码生成新场景 SceneManager.CreateScene 3 场景的加载 3.1 用代码加载场景,仍然build setting里先加入配置 3.2 卸载场景 SceneManager.UnloadSceneAsync(); 3.3 同步加载场景 SceneManager.LoadScene 3.3.…

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用) 文章目录 四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)1. 有序集合 Zset(sorted set)2. zset 有序…

S4 HANA税码科目确定(OB40)

本文主要介绍在S4 HANA OP中税码科目确定(OB40)相关设置。具体请参照如下内容: 税码科目确定(OB40) 在以上界面维护“Transaction Key”的记账码。 在以上界面进一步维护“Transaction Key”确定科目的规则。 Chart of Account:用于明确该规则适用于什么科目表。 …

vim的特殊模式-可视化模式

可视化模式:按 v进入可视化模式 选中 y复制 d剪切/删除 可视化块模式: ctrlv 选中 y复制 d剪切/删除 示例: (vim可视化模式的进阶使用:vim可视化模式的进阶操作-CSDN博客)

UE5制作视差图

双目深度估计开源数据集很多都是用UE制作的,那么我们自己能否通过UE制作自己想要的场景的数据集呢。最近花了点时间研究了一下,分享给需要的小伙伴。 主要使用的是UnrealCV插件,UnrealCV是一个开源项目,旨在帮助计算机视觉研究人…

记忆化搜索(5题)

是什么? 是一个带备忘录的递归 如何实现记忆化搜索 1.添加一个备忘录(建立一个可变参数和返回值的映射关系) 2.递归每次返回的时候把结果放到备忘录里 3.在每次进入递归的时候往备忘录里面看看。 目录 1.斐波那契数列 2.不同路径 3.最…

【游戏设计原理】96 - 成就感

成就感是玩家体验的核心,它来自完成一件让自己满意的任务,而这种任务通常需要一定的努力和挑战。游戏设计师的目标是通过合理设计任务,不断为玩家提供成就感,保持他们的参与热情。 ARCS行为模式(注意力、关联性、自信…

【设计测试用例自动化测试性能测试 实战篇】

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 设计测试用例…

20-30 五子棋游戏

20-分析五子棋的实现思路_哔哩哔哩_bilibili20-分析五子棋的实现思路是一次性学会 Canvas 动画绘图(核心精讲50个案例)2023最新教程的第21集视频,该合集共计53集,视频收藏或关注UP主,及时了解更多相关视频内容。https:…

受击反馈HitReact、死亡效果Death Dissolve、Floating伤害值Text(末尾附 客户端RPC )

受击反馈HitReact 设置角色受击标签 (GameplayTag基本了解待补充) 角色监听标签并设置移动速度 创建一个受击技能,并应用GE 实现设置角色的受击蒙太奇动画 实现角色受击时播放蒙太奇动画,为了保证通用性,将其设置为一个函数,并…

STM32 LED呼吸灯

接线图: 这里将正极接到PA0引脚上,负极接到GND,这样就高电平点亮LED,低电平熄灭。 占空比越大,LED越亮,占空比越小,LED越暗 PWM初始化配置 输出比较函数介绍: 用这四个函数配置输…

栈和队列特别篇:栈和队列的经典算法问题

图均为手绘,代码基于vs2022实现 系列文章目录 数据结构初探: 顺序表 数据结构初探:链表之单链表篇 数据结构初探:链表之双向链表篇 链表特别篇:链表经典算法问题 数据结构:栈篇 数据结构:队列篇 文章目录 系列文章目录前言一.有效的括号(leetcode 20)二.用队列实现栈(leetcode…

2024年数据记录

笔者注册时间超过98.06%的用户 CSDN 原力是衡量一个用户在 CSDN 的贡献和影响力的系统,笔者原力值超过99.99%的用户 其他年度数据

DBO优化最近邻分类预测matlab

蜣螂优化算法(Dung Beetle Optimizer,简称 DBO)作为一种新兴的群智能优化算法,于 2022 年末被提出,其灵感主要来源于蜣螂的滚球、跳舞、觅食、偷窃以及繁殖等行为。 本次使用的数据为 Excel 格式的分类数据集。该数据…

PSpice for TI体验

前言 基于 从零开始学 PSpice for TI 仿真工具 - 手把手操作实训课程_哔哩哔哩_bilibili 体验PSpice for TI的功能,并记录下来。文章内容大部分都参考自视频,可以理解成图文版。目前发现是没有支持中文语言,而且部分仿真,时间消耗…

苯乙醇苷类化合物的从头生物合成-文献精读108

Complete pathway elucidation of echinacoside in Cistanche tubulosa and de novo biosynthesis of phenylethanoid glycosides 管花肉苁蓉中松果菊苷全生物合成途径解析及苯乙醇苷类化合物的从头生物合成 摘要 松果菊苷(ECH)是最具代表性的苯乙醇苷…

【C++】设计模式详解:单例模式

文章目录 Ⅰ. 设计一个类,不允许被拷贝Ⅱ. 请设计一个类,只能在堆上创建对象Ⅲ. 请设计一个类,只能在栈上创建对象Ⅳ. 请设计一个类,不能被继承Ⅴ. 请设计一个类,只能创建一个对象(单例模式)&am…