k8s部署mysql
没那么多废话直接上编排文件
如果看此文章的是小白,请修改编排脚本中的namespce为自己集群中的namespace ,如果没有就请自己创建,其他修改项也下方进行了标注
# 密码加密
apiVersion: v1
kind: Secret
metadata:name: mysql-secretnamespace: can-efws-ems #改为自己的名称空间
type: Opaque
data:# 对密码进行加密 下方字符串对应密码`CAN-qazxsw@123` MYSQL_ROOT_PASSWORD: "Q0FOLXFhenhzd0AxMjM="
---
#创建mysql配置文件
apiVersion: v1
kind: ConfigMap
metadata:name: mysql-confignamespace: can-efws-ems #修改名称空间labels:conf: mysql-config
data:my.cnf: |[mysqld]lower_case_table_names = 1character-set-server = utf8mb4collation-server = utf8mb4_unicode_ciskip-name-resolvemax_allowed_packet=32Mlower_case_table_names = 1character_set_server=utf8mb4 symbolic-links=0explicit_defaults_for_timestamp=truelog_bin_trust_function_creators = 1binlog_expire_logs_seconds = 604800sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTIONslow_query_log = ONslow_query_log_file = /var/lib/mysql/slow-query.loglong_query_time = 2 max_connections = 1000
---
# MySQL的StatefulSet配置
apiVersion: apps/v1
kind: StatefulSet
metadata:name: mysql-servernamespace: can-efws-ems #修改名称空间labels:app: mysql-serverdata/type: mysql
spec:serviceName: mnacos-mysql-serverreplicas: 1selector:matchLabels:app: mysql-servertemplate:metadata:labels:app: mysql-serverdata/type: mysqlspec:nodeSelector:bussness.node: "data"containers:- name: mysql-serverimage: harbor.dts.com/data/mysql:8.0imagePullPolicy: IfNotPresentenv:- name: MYSQL_DATABASEvalue: "by_ems"- name: TZvalue: "Asia/Shanghai"- name: MYSQL_ROOT_PASSWORDvalueFrom:secretKeyRef:name: mysql-secretkey: MYSQL_ROOT_PASSWORDports:- containerPort: 3306name: mysqlvolumeMounts:- name: mysql-persistent-storagemountPath: /var/lib/mysql- name: mysql-configmountPath: /etc/my.cnfsubPath: my.cnf- name: init-scriptsmountPath: /docker-entrypoint-initdb.dresources:requests:memory: "512Mi"cpu: "500m"limits:memory: "4Gi"cpu: "1"# 容器健康检查livenessProbe:tcpSocket:port: 3306initialDelaySeconds: 30periodSeconds: 10readinessProbe:tcpSocket:port: 3306initialDelaySeconds: 5periodSeconds: 10volumes:- name: init-scriptsnfs: server: 10.126.129.44path: /data/nfs/CAN/East-Finger-Gallery/ems/mysql/scriptreadOnly: false- name: mysql-persistent-storage#此脚本中使用的挂载类型为nfs,需提前创建nfs: server: 10.126.129.44path: /data/nfs/CAN/East-Finger-Gallery/ems/mysql/mysql-pvreadOnly: false- name: mysql-configconfigMap:name: mysql-config
---
# MySQL的Service配置
apiVersion: v1
kind: Service
metadata:annotations: {}name: mysql-servernamespace: can-efws-ems # 修改名称空间labels:app: mysql-serverdata/type: mysql
spec:ipFamilyPolicy: SingleStackports:- port: 3306targetPort: 3306protocol: TCPname: mysqlselector:app: mysql-servertype: ClusterIPsessionAffinity: ClientIP# 会话亲和性配置, 默认值10800ssessionAffinityConfig:clientIP:timeoutSeconds: 10800