このガイドは、すでに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環境変数を渡すことを忘れないでください。そうしないと、管理者アカウントを手動で作成する必要があります。serverフィールドにhttps://kubernetes.default.svc.cluster.local:443を使用できます。