docker+k3s部署GZCTF

这篇具有很好参考价值的文章主要介绍了docker+k3s部署GZCTF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



k3s官网

gzctf官方部署文档地址

gzctf官网

一、准备工作

1、准备三台服务器(gzctfweb、k3s-master、k3s-slave)

name ip
gzctfweb 192.168.8.100
k3s-master 192.168.8.101
k3s-slave 192.168.8.102

2、修改用户名

hostnamectl set-hostname gzctfweb  # gzctfweb服务器执行

hostnamectl set-hostname k3s-master

hostnamectl set-hostname k3s-slave

3、关闭防火墙、清空iptables规则、(所有机器执行)

systemctl disable firewalld && systemctl stop firewalld

iptables -F

4、关闭swap分区,关闭selinux(k3s-master和k3s-slave机器执行)

sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
setenforce 0

swapoff -a
sed -i ' / swap / s/^\(.*\)$/#\1/g' /etc/fstab

5、配置hosts解析(k3s-master和k3s-slave机器执行)

cat >>/etc/hosts<<EOF
192.168.8.101 k3s-master
192.168.8.102 k3s-slave
EOF

二、安装docker(k3s-master和k3s-slave机器执行)

curl https://releases.rancher.com/install-docker/20.10.sh | sh

systemctl enable --now docker  # docker开启自启

三、安装k3s集群

1、k3s-master节点执行:

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker --kube-controller-manager-arg=node-cidr-mask-size=18" sh -

systemctl enable --now k3s  # k3sserver自启

注意:在安装slave节点时,先在master节点用如下命令查看token

cat /var/lib/rancher/k3s/server/node-token

2、k3s-slave节点执行:

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="--docker" K3S_URL=https://myserver:6443 K3S_TOKEN=mytoken sh -  

# myserver:master节点的ip、mytoken就是在master节点查看到的内容

systemctl enable --now k3s.agent   # 开启自启

3、更改 NodePort 端口范围(k3s-master机器执行)

vim /etc/systemd/system/k3s.service

在ExecStart=/usr/local/bin/k3s最后写入如下内容
 

    --kube-apiserver-arg service-node-port-range=20000-50000

4、更改 K3s 的容器数量限制(k3s-master和k3s-slave机器执行)

①:

vim /etc/rancher/k3s/kubelet.config


编写如下内容:
 

apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
maxPods: 500  # 容器数量限制

②:

vim /etc/systemd/system/k3s.service

在ExecStart=/usr/local/bin/k3s最后写入如下内容:

--kubelet-arg=config=/etc/rancher/k3s/kubelet.config

5、添加容器镜像仓库(k3s-master机器执行)

vim /etc/rancher/k3s/registries.yaml


写入以下内容(我用的是docker仓库,这里可以根据自己的实际情况更改):
 

mirrors:
  "docker.io":
    endpoint:
      - "https://hub.docker.com"

6、重启k3s集群  

systemctl daemon-reload && systemctl restart k3s  # master节点
systemctl daemon-reload && systemctl restart k3s-agent # slave节点

四、搭建gzctf(在gzctfweb机器上执行)

1、准备文件

docker-compose.yml  #在k3s官网下载

version: '3.0'
services:
  gzctf:
    image: gztime/gzctf:latest
    restart: always
    environment:
      - "GZCTF_ADMIN_PASSWORD=myctfpassword"  # gzctf管理员初始密码
    ports:
      - "8080:80"
    networks:
      default:
    volumes:
      - "./data/files:/app/uploads"
      - "./appsettings.json:/app/appsettings.json:ro"
      - "./logs:/app/log"
      # - "./data/keys:/root/.aspnet/DataProtection-Keys"
      - "./k8sconfig.yaml:/app/k8sconfig.yaml:ro"
      # - "/var/run/docker.sock:/var/run/docker.sock"
    depends_on:
      - db

  db:
    image: postgres:alpine
    restart: always
    environment:
      - "POSTGRES_PASSWORD=mydbpassword"  # 数据库的密码
    networks:
      default:
    volumes:
      - "./data/db:/var/lib/postgresql/data"

networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.12.0/24


appsettings.json  # 在k3s官网下载

{
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=mydbpassword"  //数据库的信息
    // redis is optional
    //"RedisCache": "cache:6379,password=<Redis Password>"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "EmailConfig": {
    "SendMailAddress": "a@a.com",
    "UserName": "",
    "Password": "",
    "Smtp": {
      "Host": "localhost",
      "Port": 587
    }
  },
  "XorKey": "<Random Key Str>",
  "ContainerProvider": {
    "Type": "Kubernetes", // or "Kubernetes"
    "PublicEntry": "192.168.100.101", // or "xxx.xxx.xxx.xxx"  //这里可以写k3s-master的ip
    "DockerConfig": {
      // optional
      "SwarmMode": false,
      "Uri": "unix:///var/run/docker.sock"
    }
  },
  "RequestLogging": false,
  "DisableRateLimit": false,
  "RegistryConfig": {
    "UserName": "",
    "Password": "",
    "ServerAddress": ""
  },
  "GoogleRecaptcha": {
    "VerifyAPIAddress": "https://www.recaptcha.net/recaptcha/api/siteverify",
    "Sitekey": "",
    "Secretkey": "",
    "RecaptchaThreshold": "0.5"
  }
}


k8sconfig.yaml  # 在master节点获取:cat /etc/rancher/k3s/k3s.yaml 保存为k8sconfig.yaml,
    修改k8sconfig.yaml中的server字段,将ip地址改为master节点ip,端口号不变

2. 将以上三个文件置于同一文件夹下

3、启动gzctf

docker compose -f docker-compose.yml up  # 前台运行,加-d参数可后台运行
docker compose -f docker-compose.yml stop  # 停止

docker compose -f docker-compose.yml rm  # 删除文章来源地址https://www.toymoban.com/news/detail-719268.html

到了这里,关于docker+k3s部署GZCTF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K3S+Rancher

    查看系统版本 查看系统命令集 这是我系统配置情况 服务器清单 名称 IP 配置 系统 主-服务 192.168.23.171 4Cpu8G Ubuntu 20.04.6 副主-服务 192.168.23.103 4Cpu8G Ubuntu 20.04.6 代理-服务 192.168.23.248 4Cpu8G Ubuntu 20.04.6 外置均衡代理 192.168.23.205 4Cpu8G Ubuntu 20.04.6 修改/etc/apt/sources.list文件 修改主机服

    2024年01月18日
    浏览(30)
  • kubernetes快速入门之K3S

    Kubernetes 是一个开源的容器编排引擎和容器集群管理工具,用来对容器化应用进行自动化部署、 扩缩和管理。 Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有8个字符。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大

    2024年03月10日
    浏览(84)
  • 使用 k3d 在Windows上安装 k3s

    k3d是运行k3s的一个轻量化程序,k3s 是Rancher实验室提供的一个k8s分支。k3d 是的 k3s 的安装非常便捷,能极大提高k8s的开发与练习。 kubectl是K8s官方客户端工具,K3s是K8s得简化版本,可以用它来操作k3s。下载完成后将 kubectl.exe 加入 环境变量 path 中。 k3d 即 k3s in docker ,它是将k3s以

    2024年02月09日
    浏览(37)
  • k3s 轻量级Kubernetes 安装实例

    k3s 是由Rancher开发的轻量级Kubernetes,支持嵌入式系统,边缘计算节点等 易于安装,所有组件都在一个小于100MB的二进制文件中,占用资源低 1.1、简单安装试例 1.2、使用国内源+安装指定版本+添加参数 安装过程如下,安装时间13秒 参数说明: time 测量命令执行时间 INSTALL_K3S_MIRROR=cn 使

    2024年02月14日
    浏览(37)
  • 09-K3S 安装-私有镜像仓库配置参考

    K3s 默认使用 containerd 作为容器运行时,所以在 docker 上配置镜像仓库是不生效的[ 除非将容器运行时环境设置为Docker,本篇以 containerd 作为容器运行时环境 ] K3s registry 配置目录为: /etc/rancher/k3s/registries.yaml 。K3s 启动时,K3s 会检查 /etc/rancher/k3s/ 中是否存在 registries.yaml 文件,

    2024年02月08日
    浏览(33)
  • 三台N1上离线安装k3s集群

    三台N1 分别是 hostname IP server n101 192.168.0.101 agent n102 192.168.0.102 agent n103 192.168.0.103 1. 创建k3s文件夹并进入 2. 下载 去https://github.com/k3s-io/k3s/releases下载最新的k3s二进制和依赖镜像的压缩包 k3s: 二进制。 k3s-airgap-images-amd64.tar: 镜像压缩包。 amd的直接选择k3s和带有amd的文件,arm或者

    2024年02月10日
    浏览(31)
  • K3S和 K8S 有何不同?

    K3s 是CNCF 认证的 Kubernetes 发行版和Sandbox项目,专为低资源环境而设计。由 Rancher Labs 维护着 K3s。 总的来说,K3s 提供了一个开销较小的 Kubernetes 集群设置,但仍然集成了 K8s 的大部分架构和功能。 以下是 K3s 成为轻量级发行版的原因: 打包为具有最小外部依赖性的单个二进制

    2023年04月09日
    浏览(30)
  • 解决安装了k3s以后80和443端口被占用的问题

    今天服务器安装了一个k3s,该服务器的其他服务就都访问不了了,查了一下是因为k3s默认会安装traefik来替代k8s的ingress来代理流量,此时默认情况会占据系统的 80 和 443 端口。 并且很奇怪的是lsof -i:80 都查不到traefik这个端口。因为通过iptables来转发流量所以lsof不会找到该应用

    2024年02月11日
    浏览(27)
  • K3s vs K8s:轻量级对决 - 探索替代方案

    在当今云原生应用的领域中,Kubernetes(简称K8s)已经成为了无可争议的领导者。然而,随着应用规模的不断增长,一些开发者和运维人员开始感受到了K8s的重量级特性所带来的挑战。为了解决这一问题,一个名为K3s的新兴项目逐渐崭露头角。K3s被誉为轻量级的Kubernetes,它旨

    2024年02月14日
    浏览(30)
  • Minikube vs. kind vs. k3s vs k3d vs MicroK8s

    minikube 是一个 Kubernetes SIG 项目,已经启动三年多了。它采用生成虚拟机的方法,该虚拟机本质上是一个单节点 K8s 集群。由于支持大量管理程序,它可以在所有主要操作系统上使用。这也允许您并行创建多个实例。 从用户的角度来看,minikube 是一个非常适合初学者的工具。您

    2024年01月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包