KEDA를 이용한 Auto Scaling (+cronjob)
apiVersion: v1
kind: ServiceAccount
metadata:
name: gameserver-restart
namespace: dev
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: role-gameserver-restart
namespace: dev
rules:
- apiGroups: ["apps"]
resources: ["statefulsets", "statefulsets/scale"]
resourceNames: ["sts-dev-gameserver"]
verbs: ["get", "list", "update", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: rolebinding-webgameserver-quiz-restart
namespace: stage
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role-webgameserver-quiz-restart
subjects:
- kind: ServiceAccount
name: gameserver-restart
namespace: stage
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: "{{ .Values.env }}-{{ .Chart.Name }}-scale-in"
namespace: {{ .Values.env }}
spec:
timeZone: 'Asia/Seoul'
schedule: "00 00 * * *"
jobTemplate:
spec:
template:
spec:
serviceAccountName: gameserver-restart
containers:
- image: bitnami/kubectl:latest
name: gameserver-restart
command:
- /bin/sh
- -c
- "kubectl scale statefulset sts-{{ .Values.env }}-{{ .Chart.Name }} --replicas={{ .Values.statefulset.minReplicas }} -n stage"
securityContext:
runAsUser: 0
restartPolicy: Never
Last updated