diff --git a/prod-upgrade/mysql/mysql-0.yaml b/prod-upgrade/mysql/mysql-0.yaml index fb21195..5f3950f 100644 --- a/prod-upgrade/mysql/mysql-0.yaml +++ b/prod-upgrade/mysql/mysql-0.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: mysql-m-cnf + name: mysql-0-cnf data: config: |- [mysqld] @@ -41,17 +41,17 @@ data: apiVersion: apps/v1 kind: StatefulSet metadata: - name: mysql-m + name: mysql-0 spec: replicas: 1 serviceName: mysql selector: matchLabels: - app: mysql-m + app: mysql-0 template: metadata: labels: - app: mysql-m + app: mysql-0 spec: initContainers: - name: init @@ -69,7 +69,7 @@ spec: securityContext: privileged: true volumeMounts: - - name: mysql-m + - name: mysql-0 mountPath: /var/lib/mysql containers: - name: mysql @@ -91,19 +91,19 @@ spec: name: mysql key: mysql_apps volumeMounts: - - name: mysql-m + - name: mysql-0 mountPath: /var/lib/mysql - - name: mysql-m-cnf + - name: mysql-0-cnf mountPath: /etc/my.cnf subPath: my.cnf readOnly: true volumes: - - name: mysql-m + - name: mysql-0 hostPath: - path: /data/prod/mysql-m - - name: mysql-m-cnf + path: /data/prod/mysql-0 + - name: mysql-0-cnf configMap: - name: mysql-m-cnf + name: mysql-0-cnf items: - key: config path: my.cnf @@ -125,14 +125,14 @@ spec: apiVersion: v1 kind: Service metadata: - name: mysql-m + name: mysql-0 labels: - app: mysql-m + app: mysql-0 spec: ports: - protocol: TCP port: 3306 targetPort: 3306 selector: - app: mysql-m + app: mysql-0 type: ClusterIP \ No newline at end of file diff --git a/prod-upgrade/mysql/mysql-1.yaml b/prod-upgrade/mysql/mysql-1.yaml index b721e45..6915c39 100644 --- a/prod-upgrade/mysql/mysql-1.yaml +++ b/prod-upgrade/mysql/mysql-1.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: mysql-s-cnf + name: mysql-1-cnf data: config: |- [mysqld] @@ -41,17 +41,17 @@ data: apiVersion: apps/v1 kind: StatefulSet metadata: - name: mysql-s + name: mysql-1 spec: replicas: 1 serviceName: mysql selector: matchLabels: - app: mysql-s + app: mysql-1 template: metadata: labels: - app: mysql-s + app: mysql-1 spec: initContainers: - name: init @@ -69,7 +69,7 @@ spec: securityContext: privileged: true volumeMounts: - - name: mysql-s + - name: mysql-1 mountPath: /var/lib/mysql containers: - name: mysql @@ -91,19 +91,19 @@ spec: name: mysql key: mysql_apps volumeMounts: - - name: mysql-s + - name: mysql-1 mountPath: /var/lib/mysql - - name: mysql-s-cnf + - name: mysql-1-cnf mountPath: /etc/my.cnf subPath: my.cnf readOnly: true volumes: - - name: mysql-s + - name: mysql-1 hostPath: - path: /data/prod/mysql-s - - name: mysql-s-cnf + path: /data/prod/mysql-1 + - name: mysql-1-cnf configMap: - name: mysql-s-cnf + name: mysql-1-cnf items: - key: config path: my.cnf @@ -125,14 +125,14 @@ spec: apiVersion: v1 kind: Service metadata: - name: mysql-s + name: mysql-1 labels: - app: mysql-s + app: mysql-1 spec: ports: - protocol: TCP port: 3306 targetPort: 3306 selector: - app: mysql-s + app: mysql-1 type: ClusterIP \ No newline at end of file diff --git a/prod-upgrade/mysql/mysql-2.yaml b/prod-upgrade/mysql/mysql-2.yaml new file mode 100644 index 0000000..a8b2de8 --- /dev/null +++ b/prod-upgrade/mysql/mysql-2.yaml @@ -0,0 +1,138 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql-2-cnf +data: + config: |- + [mysqld] + 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=2592000 + 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.33 + 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 \ No newline at end of file diff --git a/prod-upgrade/mysql/mysql-3.yaml b/prod-upgrade/mysql/mysql-3.yaml new file mode 100644 index 0000000..50749b2 --- /dev/null +++ b/prod-upgrade/mysql/mysql-3.yaml @@ -0,0 +1,138 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql-3-cnf +data: + config: |- + [mysqld] + 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=2592000 + 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-3 +spec: + replicas: 1 + serviceName: mysql + selector: + matchLabels: + app: mysql-3 + template: + metadata: + labels: + app: mysql-3 + 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-3 + mountPath: /var/lib/mysql + containers: + - name: mysql + image: mysql:8.0.33 + 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-3 + mountPath: /var/lib/mysql + - name: mysql-3-cnf + mountPath: /etc/my.cnf + subPath: my.cnf + readOnly: true + volumes: + - name: mysql-3 + hostPath: + path: /data/prod/mysql-3 + - name: mysql-3-cnf + configMap: + name: mysql-3-cnf + items: + - key: config + path: my.cnf + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: "kubernetes.io/hostname" + operator: In + values: + - bfs-k8snode-10-2-2-90.hetzner.base.beaconfireinc.com + tolerations: + - key: "app.kubernetes.io/component" + operator: "Equal" + value: "mysql" + effect: "NoSchedule" +--- +apiVersion: v1 +kind: Service +metadata: + name: mysql-3 + labels: + app: mysql-3 +spec: + ports: + - protocol: TCP + port: 3306 + targetPort: 3306 + selector: + app: mysql-3 + type: ClusterIP \ No newline at end of file