k8s部署MySQL

my.cnf

[client]
port = 3306
default-character-set=utf8mb4

[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
default_storage_engine=InnoDB
character-set-server = utf8mb4

max_connect_errors = 1000
interactive_timeout = 2880000
wait_timeout = 2880000
read_rnd_buffer_size = 10M
sort_buffer_size = 10M
kubectl create ns mysql # 创建命名空间
kubectl create configmap mysql-config -n mysql --from-file=my.cnf # 从文件导入配置文件

创建pv

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-mysql-pv
  namespace: mysql
  labels:
    pv: nfs-mysql-pv
spec:
  capacity:
    storage: 200Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs:
    server: 192.168.3.228
    path: /mysql

创建pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-mysql-pvc
  namespace: mysql
spec:
  storageClassName: nfs
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 200Gi
  • 注:nfs服务器端配置文件中需要给no_root_squash权限:
    /etc/exports
/mysql/ *(rw,sync,no_root_squash)

创建Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  namespace: 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: p@ssw0rd
          ports:
            - containerPort: 3306
          volumeMounts:
            - name: mysql-persistent-storage
              mountPath: /var/lib/mysql
            - name: mysql-config
              mountPath: /etc/my.cnf
              subPath: my.cnf
      volumes:
        - name: mysql-persistent-storage
          persistentVolumeClaim:
            claimName: nfs-mysql-pvc
        - name: mysql-config
          configMap:
            name: mysql-config
            items:
              - key: my.cnf
                path: my.cnf

创建Service

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
  namespace: mysql
spec:
  selector:
    app: mysql
  type: NodePort
  ports:
    - port: 3306
      targetPort: 3306
      protocol: TCP
      nodePort: 31336
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盛者无名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值