mysql k8s

This commit is contained in:
2026-02-06 17:27:57 +00:00
parent e3c4212357
commit 6c15e8aea5
4 changed files with 123 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- statefulset.yaml
- service.yaml
- secret.yaml
commonLabels:
tier: database

9
base/mysql/secret.yaml Normal file
View File

@@ -0,0 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
type: Opaque
stringData:
root-password: "REPLACE_WITH_SECURE_PASSWORD" # Change in production!
user: "inventory_user"
password: "REPLACE_WITH_SECURE_PASSWORD" # Change in production!

16
base/mysql/service.yaml Normal file
View File

@@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: mysql
labels:
app: mysql
component: database
spec:
type: ClusterIP
clusterIP: None # Headless service for StatefulSet
ports:
- port: 3306
targetPort: 3306
name: mysql
selector:
app: mysql

View File

@@ -0,0 +1,88 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
labels:
app: mysql
component: database
spec:
serviceName: mysql
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
component: database
spec:
containers:
- name: mysql
image: mysql:8.0
ports:
- containerPort: 3306
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: root-password
- name: MYSQL_DATABASE
value: "inventory"
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mysql-secret
key: user
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: password
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
livenessProbe:
exec:
command:
- mysqladmin
- ping
- -h
- localhost
- -u
- root
- -p$(MYSQL_ROOT_PASSWORD)
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
readinessProbe:
exec:
command:
- mysql
- -h
- localhost
- -u
- root
- -p$(MYSQL_ROOT_PASSWORD)
- -e
- SELECT 1
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
volumeClaimTemplates:
- metadata:
name: mysql-data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Gi