参考链接:https://blog.csdn.net/qq_35349114/article/details/116303906

1、PVC

  1. apiVersion: v1
  2. kind: PersistentVolumeClaim
  3. metadata:
  4. name: mysql-pvc
  5. namespace: default
  6. annotations:
  7. volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
  8. spec:
  9. accessModes:
  10. - ReadWriteOnce
  11. resources:
  12. requests:
  13. storage: 1Gi

2、configmap.yaml

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: mysql-config
  5. data:
  6. my.cnf: |
  7. [client]
  8. default-character-set=utf8mb4
  9. [mysql]
  10. default-character-set=utf8mb4
  11. [mysqld]
  12. pid-file = /var/run/mysqld/mysqld.pid
  13. socket = /var/run/mysqld/mysqld.sock
  14. datadir = /var/lib/mysql
  15. character-set-server = utf8mb4
  16. collation-server = utf8mb4_unicode_ci
  17. init_connect='SET NAMES utf8mb4'
  18. skip-character-set-client-handshake = true
  19. # 打开binlog日志
  20. log-bin=bin-log
  21. max_connections=5000
  22. # 在容器里面需要设置下时区
  23. default-time-zone='+8:00'
  24. ---
  25. apiVersion: v1
  26. kind: ConfigMap
  27. metadata:
  28. name: go-db-config
  29. data:
  30. config.toml: |
  31. mysql-addr='root:123456@tcp(192.168.6.20:31306)/test'

3、MySQL

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: mysql-fox-deployment
  5. spec:
  6. selector:
  7. matchLabels:
  8. app: mysql-fox
  9. replicas: 1
  10. template:
  11. metadata:
  12. labels:
  13. app: mysql-fox
  14. spec:
  15. containers:
  16. - name: mysql-fox
  17. image: mysql
  18. imagePullPolicy: Always
  19. env: #以下是设置MySQL数据库的密码
  20. - name: MYSQL_ROOT_PASSWORD
  21. value: "123456"
  22. ports:
  23. - containerPort: 3306
  24. protocol: TCP
  25. volumeMounts:
  26. - name: mysql-persistent-storage
  27. mountPath: /var/lib/mysql #MySQL容器的数据都是存在这个目录的,要对这个目录做数据持久化
  28. - name: config-volume
  29. mountPath: /etc/mysql/conf.d #mysql 配置
  30. volumes:
  31. - name: mysql-persistent-storage
  32. persistentVolumeClaim:
  33. claimName: mysql-pvc #指定pvc的名称
  34. - name: config-volume
  35. configMap:
  36. name: mysql-config
  37. ---
  38. apiVersion: v1
  39. kind: Service
  40. metadata:
  41. name: mysql-fox
  42. spec:
  43. ports:
  44. - name: mysql-fox-port
  45. protocol: TCP
  46. port: 3306
  47. targetPort: 3306
  48. nodePort: 31306
  49. type: NodePort
  50. selector:
  51. app: mysql-fox