• k8s mysql 单点部署


    参考官网:https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/

    20-nproc.conf

    *          soft    nproc     unlimited
    root       soft    nproc     unlimited


    limits.conf

    # End of file
    *    soft    core    0
    *    hard    core    0
    *    soft    nofile        655360
    *    hard    nofile        655360

    senyint.conf

    [root@harbor mysql5.7.20]# cat  senyint.cnf
    [mysqld]
    server-id = 11 
    port = 3306
    user = mysql
    autocommit = 1
    character_set_server=utf8mb4
    skip_name_resolve = 1
    max_connections = 3000
    max_connect_errors = 1000
    transaction_isolation = READ-COMMITTED
    join_buffer_size = 128M
    tmp_table_size = 64M
    tmpdir = /tmp
    max_allowed_packet = 64M
    interactive_timeout = 1200
    wait_timeout = 600
    read_buffer_size = 16M
    read_rnd_buffer_size = 8M
    sort_buffer_size = 8M
    explicit_defaults_for_timestamp=true

    Dockerfile

    [root@harbor mysql5.7.20]# cat Dockerfile 
    FROM docker.io/mysql:5.7.20
    
    MAINTAINER fengjian <fengjian@senyint.com>
    ENV TZ "Asia/Shanghai"
    ENV TERM xterm
    ENV MALLOC_ARENA_MAX=1
    
    ADD localtime  /etc/
    ADD 20-nproc.conf /etc/security/limits.d/
    ADD limits.conf /etc/security/
    ADD senyint.cnf /etc/mysql/mysql.conf.d/
    ADD senyint.cnf /etc/mysql/conf.d/
    #RUN rm /var/lib/mysql/lost+found -rf

     docker build -t 192.168.200.10/source/mysql:5.7.20 .
     docker push 192.168.200.10/source/mysql:5.7.20

    部署到k8s中

    [root@master1 mysql]# cat mysql-secret.yaml 
    apiVersion: v1
    kind: Secret
    metadata:
      name: mysql-secrets
      namespace: prodpay
    #type: Opaque
    data:
      root-password: QWJjZCwxMj222M0



    [root@master1 mysql]# cat mysql_pvc.yaml 
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      namespace: prodpay
      name: mysql-pvc
    spec:
      storageClassName: ceph-rbd-dalianpay
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 100Gi
    [root@master1 mysql]# cat mysql.yaml 
    apiVersion: apps/v1beta2
    kind: Deployment
    metadata:
      name: mysql
      namespace: prodpay
    spec:
      selector:
        matchLabels:
          app: mysql
      replicas: 1
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
          - image: 192.168.200.10/source/mysql:5.7.20
            imagePullPolicy: Always
            name: mysql
            #command: ["rm","-rf","/var/lib/mysql/lost+found"]
            ports:
            - containerPort: 3306
            resources:
              requests:
                cpu: 4
                memory: 4Gi
              limits:
                cpu: 8
                memory: 8Gi
            env:
              - name: MYSQL_ROOT_PASSWORD
                valueFrom:
                  secretKeyRef:
                    name: mysql-secrets
                    key: root-password
            volumeMounts:
            - mountPath: /var/lib/mysql
              subPath: mysql   #如果不加subpath,那么就会报[ERROR] --initialize specified but the data directory has files in it. Aborting.目录不为空,使用subpath基础表信息会记录在/var/lib/mysql/mysql下
              name: data
          volumes:
          - name: data
            persistentVolumeClaim:
              claimName: mysql-pvc
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mysql
      namespace: prodpay
    spec:
      ports:
      - name: mqsql
        port: 3306
        targetPort: 3306
      selector:
        app: mysq



  • 相关阅读:
    gcc 编译器常用的命令行参数一览
    linux下源代码分析和阅读工具比较
    Linux系统——C/C++开发工具及环境搭建
    GDB调试——经验总结
    gdb调试的艺术——Debug技巧
    命令__cp、scp(Secure Copy)
    常用shell脚本命令
    命令__查找、替换、删除
    UltraEdit 删除空行
    命令__shell数字-字符串比较
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/9851695.html
Copyright © 2020-2023  润新知