Mysql 8
configmap.yaml
YAML
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app: mysql8-configmap
name: mysql8-configmap
namespace: default
data:
custom.cnf: |-
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
default_authentication_plugin = mysql_native_password
max_connections = 666
bind-address = 0.0.0.0
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
deployment.yaml
YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql8
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: mysql8
template:
metadata:
labels:
app: mysql8
spec:
containers:
- env:
# - name: MYSQL_ROOT_PASSWORD
# valueFrom:
# secretKeyRef:
# name: mysql8-secrets
# key: root-password
- name: MYSQL_ROOT_PASSWORD
value: password
- name: MYSQL_DATABASE
value: test
- name: MYSQL_USER
value: test
- name: MYSQL_PASSWORD
value: Some1234
image: mysql:8.0.32-debian
imagePullPolicy: IfNotPresent
name: mysql8
ports:
- containerPort: 3306
name: mysql
protocol: TCP
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "0.1"
memory: 100Mi
volumeMounts:
- mountPath: /var/lib/mysql
name: vol-mysql8
- mountPath: /etc/mysql/conf.d/custom.cnf
name: mysql8-configmap
subPath: custom.cnf
restartPolicy: Always
volumes:
- name: vol-mysql8
persistentVolumeClaim:
claimName: vol-mysql8
- configMap:
defaultMode: 420
name: mysql8-configmap
name: mysql8-configmap
secret.yaml - optional
YAML
apiVersion: v1
data:
root-password: cmVtc2V1Y2VnYU9wYUN1cGEK
kind: Secret
metadata:
name: mysql8-secrets
namespace: default
type: Opaque
service.yaml
YAML
apiVersion: v1
kind: Service
metadata:
name: mysql8
namespace: default
spec:
ports:
- port: 3306
protocol: TCP
targetPort: 3306
selector:
app: mysql8
type: ClusterIP
volume.yaml - for persistent data
YAML
apiVersion: v1
kind: PersistentVolume
metadata:
labels:
type: local
name: vol-mysql8
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 20Gi
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: vol-mysql8
namespace: default
hostPath:
path: /k3s-volume/mysql8
type: ""
persistentVolumeReclaimPolicy: Retain
storageClassName: mysql8
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: vol-mysql8
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 20Gi
storageClassName: mysql8
volumeMode: Filesystem
volumeName: vol-mysql8