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

news/2025/1/31 16:39:12 标签: 前端, kubernetes, 容器, 蜜罐, 负载均衡

智云-一个抓取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.niftyadmin.cn/n/5838761.html

相关文章

使用DeepSeek API生成Markdown文件

DeepSeek技术应用与代码实现 一、DeepSeek简介 DeepSeek是一款强大的人工智能写作助手,能够根据用户输入的提示(Prompt)快速生成高质量的文章。它不仅支持批量生成文章,还能通过智能分段、Markdown转HTML等功能优化内容。此外&…

程序代码篇---Python随机数

文章目录 前言Python随机数函数random.random()random.randint(a,b)random.randrange(start,stop[,step])random.uniform(a,b)random.choice(sequence)random.sample(population,k)random.shuffle(x[,random])random.seed(aNone) 总结 前言 以上就是今天要讲的内容&#xff0c…

gesp(C++六级)(7)洛谷:P10376:[GESP202403 六级] 游戏

gesp(C六级)(7)洛谷:P10376:[GESP202403 六级] 游戏 题目描述 你有四个正整数 n , a , b , c n,a,b,c n,a,b,c,并准备用它们玩一个简单的小游戏。 在一轮游戏操作中,你可以选择将 n n n 减去 a a a&am…

进阶数据结构——高精度运算

目录 前言一、高精度运算的定义与背景二、高精度运算的实现方式三、高精度运算的算法实现四、高精度运算的应用场景五、代码模版(c)六、经典例题1.[高精度加法](https://www.lanqiao.cn/problems/1516/learning/?page1&first_category_id1&name…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…

Hypium+python鸿蒙原生自动化安装配置

Hypiumpython自动化搭建 文章目录 Python安装pip源配置HDC安装Hypium安装DevEco Testing Hypium插件安装及使用方法​​​​​插件安装工程创建区域 Python安装 推荐从官网获取3.10版本,其他版本可能出现兼容性问题 Python下载地址 下载64/32bitwindows安装文件&am…

AI 计算的未来:Deepseek从中心化到去中心化的变革

引言 人工智能(AI)技术正以惊人的速度发展,最新的 DeepSeek r1 证明了一个重要趋势:AI 计算正从昂贵的云端推理向更廉价、更高效的本地推理转变。这一变化不仅影响 AI 产业格局,也可能彻底改变全球计算基础设施、经济模…

2025创业思路和方向有哪些?

创业思路和方向是决定创业成功与否的关键因素。以下是一些基于找到的参考内容的创业思路和方向,旨在激发创业灵感: 一、技术创新与融合: 1、智能手机与云电视结合:开发集成智能手机功能的云电视,提供通讯、娱乐一体化体…