本篇指南仅适用于接触过 K8s 的用户。此篇文章不会介绍如何搭建 K8s 集群,也不会含有如何使用 kubectl 等命令的教程,同时文中可能出现一些 K8s 的专业术语,需要一定的基础进行阅读。
本文将着重介绍如何在 K8s 集群中部署 GZCTF,GZCTF 自身的配置教程请参考 快速上手。
在安装时指定 --kube-controller-manager-arg=node-cidr-mask-size=16,默认的 CIDR 为 /24,最多支持 255 个 Pod。此配置项在安装后无法更改。
请自行调整 maxPods 的值,否则可能会导致 Pod 数量达到上限而无法调度。
创建命名空间及配置文件
创建本地 PV(如果需要多实例共享存储请自行更改配置)
创建 GZCTF 的 Deployment
创建 Service 和 Ingress
Traefik 的额外配置
为了让 GZCTF 能够正常通过 XFF 获取用户真实 IP,需要让 Traefik 能够正确地添加 XFF 头。请注意如下内容不一定总是具有时效性和适用于所有版本的 Traefik,此处举例为 helm values,请自行查找最新的配置方法。
GZCTF_ADMIN_PASSWORD 环境变量,否则需要手动创建管理员账户。https://kubernetes.default.svc.cluster.local:443 作为集群配置文件中的 server 字段。