参考链接:https://blog.csdn.net/qq_35349114/article/details/116303906
1、PVC
apiVersion: v1kind: PersistentVolumeClaimmetadata:name: mysql-pvcnamespace: defaultannotations:volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"spec:accessModes:- ReadWriteOnceresources:requests:storage: 1Gi
2、configmap.yaml
apiVersion: v1kind: ConfigMapmetadata:name: mysql-configdata:my.cnf: |[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]pid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockdatadir = /var/lib/mysqlcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'skip-character-set-client-handshake = true# 打开binlog日志log-bin=bin-logmax_connections=5000# 在容器里面需要设置下时区default-time-zone='+8:00'---apiVersion: v1kind: ConfigMapmetadata:name: go-db-configdata:config.toml: |mysql-addr='root:123456@tcp(192.168.6.20:31306)/test'
3、MySQL
apiVersion: apps/v1kind: Deploymentmetadata:name: mysql-fox-deploymentspec:selector:matchLabels:app: mysql-foxreplicas: 1template:metadata:labels:app: mysql-foxspec:containers:- name: mysql-foximage: mysqlimagePullPolicy: Alwaysenv: #以下是设置MySQL数据库的密码- name: MYSQL_ROOT_PASSWORDvalue: "123456"ports:- containerPort: 3306protocol: TCPvolumeMounts:- name: mysql-persistent-storagemountPath: /var/lib/mysql #MySQL容器的数据都是存在这个目录的,要对这个目录做数据持久化- name: config-volumemountPath: /etc/mysql/conf.d #mysql 配置volumes:- name: mysql-persistent-storagepersistentVolumeClaim:claimName: mysql-pvc #指定pvc的名称- name: config-volumeconfigMap:name: mysql-config---apiVersion: v1kind: Servicemetadata:name: mysql-foxspec:ports:- name: mysql-fox-portprotocol: TCPport: 3306targetPort: 3306nodePort: 31306type: NodePortselector:app: mysql-fox
