k3s部署mysql
之前⼀篇由于数据库⼤⼩写不匹配,被我误删了。。
k3s安装
安装
墙内服务器,最好添加阿⾥云镜像加速,否则镜像可能下载不下来:/etc/docker/daemon.json中增加如下内容
{
"registry-mirrors": ["icl4chew.mirror.aliyuncs"]
}
然后重启docker服务
systemctl daemon-reload
systemctl restart docker
启动项
mysql我的端⼝需要映射,如果通过NodePort⽅式,需要指定NodePort范围。我将数据库服务制定在40000端⼝。对于k3s,需要在启动项指定,修改/etc/systemd/system/k3s.service⽂件中的启动程序为:
ExecStart=/usr/local/bin/k3s server --kube-apiserver-arg service-node-port-range=40000-40200
mysql部署
Deploy
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
mysql下载配置labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-data
-
name: mysql-config
mountPath: /etc/f.d
volumes:
- name: mysql-data
hostPath:
path: /root/data/mysql
type: Directory
- name: mysql-config
hostPath:
path: /root/data/mysql-config
type: Directory
其中mysql-config挂载,是为了⾃定义mysql启动配置。
mysql-data是mysql的数据⽂件,挂载出来可以持久化,避免数据⽂件丢失。
service
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
type: NodePort
selector:
app: mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
nodePort: 40000
通过nodeport⽅式,将服务开启在了40000端⼝。
其实如果是Cluster内应⽤访问,可以直接使⽤Service的3306端⼝,但是由于Service的Ip并⾮固定,所以还需要域名解析的服务,会有点复杂,这⾥为了简单,使⽤NodePort。
config
这⾥指的是挂载出来的mysqlf配置⽂件。
我添加了
lower_case_table_names=1
这是因为linux默认的数据库是⼤⼩写敏感的,我的数据库是从windows环境迁移过来,默认都是⼩写。
导⼊linux后,我⽤的EF发出的sql,表名带有⼤⼩写,mysql会⽆法识别。所以开启⼩写表名的选项
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论