forked from ab/homelab
141 lines
3.8 KiB
YAML
141 lines
3.8 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: nginx-config
|
|
namespace: minecraft
|
|
data:
|
|
nginx.conf: |
|
|
user nginx;
|
|
worker_processes 1;
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
http {
|
|
server {
|
|
listen 80;
|
|
|
|
location / {
|
|
proxy_pass http://localhost:8123;
|
|
sub_filter 'Minecraft Dynamic Map' "Hexor's MC server";
|
|
sub_filter "</body>" '<p style="background-color: #CEC6CB; color: black; padding: 10px 10px; text-align: center; font-size: large; text-decoration: none; display: inline-block; border-radius: 4px; position: absolute; top: 10px; left: 150px;">Get <a href="https://github.com/PrismLauncher/PrismLauncher/releases/tag/8.4" >Prism Launcher</a> and <a href="/clients/1.12.2.zip" >client.zip</a> for this server. Server address <b>minecraft.hexor.cy:30565</b></p></body>';
|
|
sub_filter_once off;
|
|
}
|
|
location /clients/ {
|
|
types { }
|
|
sendfile on;
|
|
tcp_nopush on;
|
|
tcp_nodelay on;
|
|
keepalive_timeout 65;
|
|
sendfile_max_chunk 1m;
|
|
default_type application/zip;
|
|
add_header Content-Disposition "attachment";
|
|
alias /mc/clients/;
|
|
autoindex on;
|
|
}
|
|
}
|
|
}
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: minecraft
|
|
namespace: minecraft
|
|
labels:
|
|
app: minecraft
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: minecraft
|
|
replicas: 1
|
|
strategy:
|
|
type: Recreate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: minecraft
|
|
spec:
|
|
nodeSelector:
|
|
kubernetes.io/hostname: master.tail2fe2d.ts.net
|
|
volumes:
|
|
- name: storage
|
|
hostPath:
|
|
path: /k8s/mc-server/
|
|
type: DirectoryOrCreate
|
|
- name: nginx-config
|
|
configMap:
|
|
name: nginx-config
|
|
|
|
terminationGracePeriodSeconds: 10
|
|
containers:
|
|
- name: nginx
|
|
image: nginx:latest
|
|
ports:
|
|
- containerPort: 80
|
|
volumeMounts:
|
|
- name: nginx-config
|
|
mountPath: /etc/nginx/nginx.conf
|
|
subPath: nginx.conf
|
|
- name: storage
|
|
mountPath: /mc
|
|
- name: minecraft
|
|
image: 'openjdk:8-jdk-alpine'
|
|
command: ["java"]
|
|
args:
|
|
- -Xms12G
|
|
- -Xmx12G
|
|
- -XX:+UseG1GC
|
|
- -XX:+ParallelRefProcEnabled
|
|
- -XX:MaxGCPauseMillis=200
|
|
- -XX:+UnlockExperimentalVMOptions
|
|
- -XX:+DisableExplicitGC
|
|
- -XX:+AlwaysPreTouch
|
|
- -XX:G1NewSizePercent=30
|
|
- -XX:G1MaxNewSizePercent=40
|
|
- -XX:G1HeapRegionSize=8M
|
|
- -XX:G1ReservePercent=20
|
|
- -XX:G1HeapWastePercent=5
|
|
- -XX:G1MixedGCCountTarget=4
|
|
- -XX:InitiatingHeapOccupancyPercent=15
|
|
- -XX:G1MixedGCLiveThresholdPercent=90
|
|
- -XX:G1RSetUpdatingPauseTimePercent=5
|
|
- -XX:SurvivorRatio=32
|
|
- -XX:+PerfDisableSharedMem
|
|
- -XX:MaxTenuringThreshold=1
|
|
- -jar
|
|
- forge-1.12.2-14.23.5.2854.jar
|
|
- nogui
|
|
workingDir: /mc/
|
|
resources:
|
|
limits:
|
|
memory: 15Gi
|
|
#cpu: 1
|
|
requests:
|
|
memory: 10Gi
|
|
#cpu: 100m
|
|
ports:
|
|
- name: game
|
|
containerPort: 25565
|
|
protocol: TCP
|
|
- name: dynmap
|
|
containerPort: 8123
|
|
protocol: TCP
|
|
volumeMounts:
|
|
- name: storage
|
|
mountPath: /mc
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: minecraft-exporter
|
|
namespace: minecraft
|
|
spec:
|
|
selector:
|
|
app: minecraft
|
|
ports:
|
|
- protocol: TCP
|
|
port: 19565
|
|
targetPort: 19565
|
|
|