Minecraft
Quelle joie pour moi de déployer un serveur minecraft dans K8S !
En prérequits à ce tuto :
- https://docs.nehemiebarkia.fr/books/kubernetes/page/avec-cilium
- https://docs.nehemiebarkia.fr/books/kubernetes/page/longhorn
Création du namespace Minecraft :
kubectl create namespace minecraft
Déclaration du PVC :
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minecraft-srv-01-pvc
namespace: minecraft
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Gi
EOF
Déploiement & service minecraft :
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: minecraft-01
namespace: minecraft
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: minecraft-01
template:
metadata:
labels:
app: minecraft-01
spec:
containers:
- name: minecraft-01
image: itzg/minecraft-server:java8
env:
- name: EULA
value: "TRUE"
- name: VERSION
value: "1.12.2"
- name: TYPE
value: "MOHIST"
- name: MEMORY
value: "4G"
- name: FORGE_VERSION
value: "14.23.5.2860" # version Forge stable pour 1.12.2
- name: REMOVE_OLD_MODS
value: "false" # ne pas supprimer les mods au redémarrage
- name: ONLINE_MODE
value: "true"
ports:
- containerPort: 25565
resources:
requests:
memory: "4.5Gi"
cpu: "1000m"
limits:
memory: "6Gi"
cpu: "4000m"
volumeMounts:
- name: storage-volume
mountPath: /data
volumes:
- name: storage-volume
persistentVolumeClaim:
claimName: minecraft-srv-01-pvc
---
apiVersion: v1
kind: Service
metadata:
name: minecraft-01
namespace: minecraft
labels:
expose: "true"
annotations:
lbipam.cilium.io/ips: "192.168.1.3"
spec:
type: LoadBalancer
selector:
app: minecraft-01
ports:
- port: 25565
targetPort: 25565
EOF