zoukankan      html  css  js  c++  java
  • k3s部署mysql

    之前一篇由于数据库大小写不匹配,被我误删了。。

    k3s安装

    安装

    墙内服务器,最好添加阿里云镜像加速,否则镜像可能下载不下来:/etc/docker/daemon.json中增加如下内容

    {
      "registry-mirrors": ["https://icl4chew.mirror.aliyuncs.com"]
    }
    
    

    然后重启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
      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/mysql/mysql.conf.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

    这里指的是挂载出来的mysql.cnf配置文件。

    我添加了

    lower_case_table_names=1
    

    这是因为linux默认的数据库是大小写敏感的,我的数据库是从windows环境迁移过来,默认都是小写。
    导入linux后,我用的EF发出的sql,表名带有大小写,mysql会无法识别。所以开启小写表名的选项

  • 相关阅读:
    撸羊毛的一些心得体会
    GET和POST的区别
    接口测试基础
    Charles老版本教程
    【2019】Charles视频教程,接口测试工具最新教程
    关于Synchronized研伸扩展
    Java多线程之线程的协作
    十七.jmeter分布式测试
    十六.jmeter链接mysql测试
    十五.jmeter FTP服务器连接
  • 原文地址:https://www.cnblogs.com/mosakashaka/p/12608766.html
Copyright © 2011-2022 走看看