1. apiVersion: v1
    2. kind: Service
    3. metadata:
    4. name: mysql
    5. labels:
    6. app: mysql
    7. spec:
    8. ports:
    9. - port: 3306
    10. selector:
    11. app: mysql
    12. clusterIP: None
    13. ---
    14. apiVersion: v1
    15. kind: PersistentVolumeClaim
    16. metadata:
    17. name: mysql-pvc
    18. spec:
    19. accessModes:
    20. - ReadWriteOnce
    21. storageClassName: longhorn
    22. resources:
    23. requests:
    24. storage: 2Gi
    25. ---
    26. apiVersion: apps/v1
    27. kind: Deployment
    28. metadata:
    29. name: mysql
    30. labels:
    31. app: mysql
    32. spec:
    33. selector:
    34. matchLabels:
    35. app: mysql # has to match .spec.template.metadata.labels
    36. strategy:
    37. type: Recreate
    38. template:
    39. metadata:
    40. labels:
    41. app: mysql
    42. spec:
    43. restartPolicy: Always
    44. containers:
    45. - image: mysql:5.6
    46. name: mysql
    47. livenessProbe:
    48. exec:
    49. command:
    50. - ls
    51. - /var/lib/mysql/lost+found
    52. initialDelaySeconds: 5
    53. periodSeconds: 5
    54. env:
    55. - name: MYSQL_ROOT_PASSWORD
    56. value: changeme
    57. ports:
    58. - containerPort: 3306
    59. name: mysql
    60. volumeMounts:
    61. - name: mysql-volume
    62. mountPath: /var/lib/mysql
    63. env:
    64. - name: MYSQL_ROOT_PASSWORD
    65. value: "rancher"
    66. volumes:
    67. - name: mysql-volume
    68. persistentVolumeClaim:
    69. claimName: mysql-pvc