没那么多废话直接上编排文件
如果看此文章的是小白,请修改编排脚本中的namespce为自己集群中的namespace ,如果没有就请自己创建,其他修改项也下方进行了标注
# 密码加密
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
namespace: can-efws-ems #改为自己的名称空间
type: Opaque
data:
# 对密码进行加密 下方字符串对应密码`CAN-qazxsw@123`
MYSQL_ROOT_PASSWORD: "Q0FOLXFhenhzd0AxMjM="
---
#创建mysql配置文件
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-config
namespace: can-efws-ems #修改名称空间
labels:
conf: mysql-config
data:
my.cnf: |
[mysqld]
lower_case_table_names = 1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-name-resolve
max_allowed_packet=32M
lower_case_table_names = 1
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
log_bin_trust_function_creators = 1
binlog_expire_logs_seconds = 604800
sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/slow-query.log
long_query_time = 2
max_connections = 1000
---
# MySQL的StatefulSet配置
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql-server
namespace: can-efws-ems #修改名称空间
labels:
app: mysql-server
data/type: mysql
spec:
serviceName: mnacos-mysql-server
replicas: 1
selector:
matchLabels:
app: mysql-server
template:
metadata:
labels:
app: mysql-server
data/type: mysql
spec:
nodeSelector:
bussness.node: "data"
containers:
- name: mysql-server
image: harbor.dts.com/data/mysql:8.0
imagePullPolicy: IfNotPresent
env:
- name: MYSQL_DATABASE
value: "by_ems"
- name: TZ
value: "Asia/Shanghai"
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: MYSQL_ROOT_PASSWORD
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
- name: mysql-config
mountPath: /etc/my.cnf
subPath: my.cnf
- name: init-scripts
mountPath: /docker-entrypoint-initdb.d
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "4Gi"
cpu: "1"
# 容器健康检查
livenessProbe:
tcpSocket:
port: 3306
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 3306
initialDelaySeconds: 5
periodSeconds: 10
volumes:
- name: init-scripts
nfs:
server: 10.126.129.44
path: /data/nfs/CAN/East-Finger-Gallery/ems/mysql/script
readOnly: false
- name: mysql-persistent-storage
#此脚本中使用的挂载类型为nfs,需提前创建
nfs:
server: 10.126.129.44
path: /data/nfs/CAN/East-Finger-Gallery/ems/mysql/mysql-pv
readOnly: false
- name: mysql-config
configMap:
name: mysql-config
---
# MySQL的Service配置
apiVersion: v1
kind: Service
metadata:
annotations: {}
name: mysql-server
namespace: can-efws-ems # 修改名称空间
labels:
app: mysql-server
data/type: mysql
spec:
ipFamilyPolicy: SingleStack
ports:
- port: 3306
targetPort: 3306
protocol: TCP
name: mysql
selector:
app: mysql-server
type: ClusterIP
sessionAffinity: ClientIP
# 会话亲和性配置, 默认值10800s
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10800