apiVersion: apps/v1 kind: Deployment metadata: name: mysql labels: app.kubernetes.io/name: mysql app.kubernetes.io/component: database spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: mysql app.kubernetes.io/component: database template: metadata: labels: app.kubernetes.io/name: mysql app.kubernetes.io/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: MYSQL_ROOT_PASSWORD - name: MYSQL_DATABASE valueFrom: secretKeyRef: name: mysql-secret key: DB_NAME - name: MYSQL_USER valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_USER - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_PASSWORD volumeMounts: - name: mysql-data mountPath: /var/lib/mysql resources: requests: cpu: 250m memory: 512Mi limits: cpu: "1" memory: 1Gi livenessProbe: exec: command: ["mysqladmin", "ping", "-h", "localhost"] initialDelaySeconds: 90 periodSeconds: 15 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: exec: command: ["mysqladmin", "ping", "-h", "localhost"] initialDelaySeconds: 60 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 5 volumes: - name: mysql-data persistentVolumeClaim: claimName: mysql-data-pvc # apiVersion: apps/v1 # kind: Deployment # metadata: # name: mysql # labels: # app.kubernetes.io/name: mysql # app.kubernetes.io/component: database # spec: # replicas: 1 # strategy: # type: Recreate # selector: # matchLabels: # app.kubernetes.io/name: mysql # app.kubernetes.io/component: database # template: # metadata: # labels: # app.kubernetes.io/name: mysql # app.kubernetes.io/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: MYSQL_ROOT_PASSWORD # - name: MYSQL_DATABASE # valueFrom: # secretKeyRef: # name: mysql-secret # key: DB_NAME # volumeMounts: # - name: mysql-data # mountPath: /var/lib/mysql # resources: # requests: # cpu: 250m # memory: 512Mi # limits: # cpu: "1" # memory: 1Gi # livenessProbe: # exec: # command: ["mysqladmin", "ping", "-h", "localhost"] # initialDelaySeconds: 90 # was 30 — must survive full init # periodSeconds: 15 # timeoutSeconds: 5 # failureThreshold: 3 # readinessProbe: # exec: # command: ["mysqladmin", "ping", "-h", "localhost"] # initialDelaySeconds: 60 # was 10 — critical fix # periodSeconds: 10 # timeoutSeconds: 5 # failureThreshold: 5 # volumes: # - name: mysql-data # persistentVolumeClaim: # claimName: mysql-data-pvc