Files
k3s-cluster/minecraft-server/ss.yaml
Roger Oriol aa4793dd51 memory fixes
2026-02-02 20:47:09 +01:00

74 lines
2.3 KiB
YAML

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: minecraft-server
namespace: minecraft
spec:
selector:
matchLabels:
app: minecraft-server
template:
metadata:
labels:
app: minecraft-server
spec:
# Prevent scheduling on Raspberry Pi due to high resource requirements (1Gi-4Gi memory, 1-2 CPU)
nodeSelector:
hardware: high-memory
containers:
- name: minecraft-server
image: itzg/minecraft-server:latest # Or specific version if needed
env:
- name: EULA
value: "TRUE"
- name: MODE
value: "survival"
- name: INIT_MEMORY
value: 1G
- name: MAX_MEMORY
value: 4G
# - name: CF_SERVER_MOD
# value: "/modpacks/your-modpack.zip"
# - name: ALLOW_FLIGHT
# value: "TRUE"
# - name: USE_AIKAR_FLAGS
# value: "TRUE"
# - name: RCON_PASSWORD
# value: "rcon-password"
ports:
- name: minecraft
containerPort: 25565 # Expose port 25565
- name: minecraft-rcon
containerPort: 25575
- name: metrics
containerPort: 19565
resources:
requests:
cpu: 1 #4 # Adjust based on expected workload
memory: "1Gi" #"12Gi" # Adjust based on expected workload
limits:
cpu: 2 #8 # Adjust based on expected workload
memory: "4Gi" #"16Gi" # Adjust based on expected workload
readinessProbe:
exec:
command: [ "/usr/local/bin/mc-monitor", "status", "--host", "localhost" ]
# Give it i + p * f seconds to be ready, so 120 seconds
initialDelaySeconds: 20
periodSeconds: 5
failureThreshold: 20
# Monitor ongoing liveness
livenessProbe:
exec:
command: ["/usr/local/bin/mc-monitor", "status", "--host", "localhost"]
initialDelaySeconds: 120
periodSeconds: 60
volumeMounts:
- name: minecraft-data
mountPath: /data
volumes:
- name: minecraft-data
persistentVolumeClaim:
claimName: minecraft-data