apiVersion: v1 kind: ConfigMap metadata: name: mysql-2-cnf data: config: |- [mysqld] server-id=102 bind-address=0.0.0.0 port=3306 skip-name-resolve datadir=/var/lib/mysql/data log_bin=/var/lib/mysql/logs/bin-log socket=/var/lib/mysql/mysql.sock pid-file=/var/lib/mysql/mysqld.pid log-error=/var/lib/mysql/logs/mysqld.log max_allowed_packet=16M character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # Extended max_connections=5000 binlog_format=row binlog_expire_logs_seconds=1209600 sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION innodb_buffer_pool_size=4G innodb_log_file_size=1G innodb_flush_log_at_trx_commit=2 sync_binlog=0 [client] port=3306 socket=/var/lib/mysql/mysql.sock default-character-set=utf8mb4 [manager] port=3306 socket=/var/lib/mysql/mysql.sock pid-file=/var/lib/mysql/mysqld.pid --- apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql-2 spec: replicas: 1 serviceName: mysql selector: matchLabels: app: mysql-2 template: metadata: labels: app: mysql-2 spec: initContainers: - name: init image: busybox imagePullPolicy: IfNotPresent command: - sh - -c - | sysctl -w net.ipv4.tcp_keepalive_time=300 sysctl -w net.ipv4.tcp_keepalive_intvl=10 sysctl -w net.ipv4.tcp_keepalive_probes=3 mkdir -p /var/lib/mysql/logs chown -R 999:999 /var/lib/mysql securityContext: privileged: true volumeMounts: - name: mysql-2 mountPath: /var/lib/mysql containers: - name: mysql image: mysql:8.0.35 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql key: mysql_root - name: MYSQL_USER valueFrom: secretKeyRef: name: mysql key: mysql_user - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql key: mysql_apps volumeMounts: - name: mysql-2 mountPath: /var/lib/mysql - name: mysql-2-cnf mountPath: /etc/my.cnf subPath: my.cnf readOnly: true volumes: - name: mysql-2 hostPath: path: /data/prod/mysql-2 - name: mysql-2-cnf configMap: name: mysql-2-cnf items: - key: config path: my.cnf affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "kubernetes.io/hostname" operator: In values: - bfs-k8snode-10-2-2-91.hetzner.base.beaconfireinc.com tolerations: - key: "app.kubernetes.io/component" operator: "Equal" value: "mysql" effect: "NoSchedule" --- apiVersion: v1 kind: Service metadata: name: mysql-2 labels: app: mysql-2 spec: ports: - protocol: TCP port: 3306 targetPort: 3306 selector: app: mysql-2 type: ClusterIP