kubernetes/mysql/mysql-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
tier: backend
component: database
app: mysql
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9104"
spec:
containers:
- name: mysql
image: yurak/mysql:latest
imagePullPolicy: Always
args:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --max_connections=200
- --wait_timeout=60
ports:
- name: mysql
containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: mysql-root-password
- name: TZ
valueFrom:
configMapKeyRef:
name: mysql-configmap
key: tz
livenessProbe:
tcpSocket:
port: 3306
readinessProbe:
tcpSocket:
port: 3306
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
- name: mysql-exporter
image: prom/mysqld-exporter:v0.15.1
ports:
- containerPort: 9104
env:
- name: DATA_SOURCE_NAME
valueFrom:
secretKeyRef:
name: mysql-secret
key: mysql-exporter-password
livenessProbe:
tcpSocket:
port: 9104
readinessProbe:
tcpSocket:
port: 9104
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pvc