mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-24 17:04:43 +00:00
Added a replica mariadb for a dr environment
This commit is contained in:
214
deploy/kubernetes/manifests/mariadb-replica.yaml
Normal file
214
deploy/kubernetes/manifests/mariadb-replica.yaml
Normal file
@@ -0,0 +1,214 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: wrestlingdev-mariadb
|
||||
labels:
|
||||
app: wrestlingdev
|
||||
spec:
|
||||
ports:
|
||||
- port: 3306
|
||||
selector:
|
||||
app: wrestlingdev
|
||||
tier: mariadb
|
||||
clusterIP: None
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: wrestlingdev-mariadb-pv-claim
|
||||
labels:
|
||||
app: wrestlingdev
|
||||
spec:
|
||||
# storageClassName: standard
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: wrestlingdev-mariadb
|
||||
labels:
|
||||
app: wrestlingdev
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: wrestlingdev
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: wrestlingdev
|
||||
tier: mariadb
|
||||
annotations:
|
||||
prometheus.io/port: "9125"
|
||||
prometheus.io/scrape: "true"
|
||||
spec:
|
||||
containers:
|
||||
- image: mariadb:10.3
|
||||
name: mariadb
|
||||
env:
|
||||
- name: MARIADB_ROOT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: dbpassword
|
||||
ports:
|
||||
- containerPort: 3306
|
||||
name: mariadb
|
||||
volumeMounts:
|
||||
- name: wrestlingdev-mariadb-persistent-storage
|
||||
mountPath: /var/lib/mysql
|
||||
- name: mysettings-config-volume
|
||||
mountPath: /etc/mysql/mariadb.conf.d
|
||||
# resources:
|
||||
# limits:
|
||||
# memory: "512Mi"
|
||||
# requests:
|
||||
# memory: "256Mi"
|
||||
# cpu: "0.2"
|
||||
- image: jcwimer/mariadb-rclone-backup-docker:10.3
|
||||
name: mariadb-backup
|
||||
env:
|
||||
- name: DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: dbpassword
|
||||
- name: CRON_SCHEDULE
|
||||
value: "*/5 * * * *" # every 5 minutes
|
||||
- name: DB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: dbusername
|
||||
- name: DB_HOST
|
||||
value: "127.0.0.1"
|
||||
- name: DAYS_TO_KEEP
|
||||
value: "7"
|
||||
- name: RCLONE_TYPE
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: rclone_type
|
||||
- name: S3_ACCESS_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: s3_access_id
|
||||
- name: S3_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: s3_access_key
|
||||
- name: S3_ENDPOINT
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: s3_endpoint
|
||||
- name: S3_REGION
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: s3_region
|
||||
- name: RCLONE_EXTRA_ARGS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: rclone_extra_args
|
||||
- name: RCLONE_PATH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: rclone_path
|
||||
volumeMounts:
|
||||
- name: wrestlingdev-mariadb-persistent-storage
|
||||
mountPath: /var/lib/mysql
|
||||
# resources:
|
||||
# limits:
|
||||
# memory: "100Mi"
|
||||
# requests:
|
||||
# memory: "50Mi"
|
||||
# cpu: "0.1"
|
||||
- image: prom/mysqld-exporter:v0.11.0
|
||||
name: mariadb-exporter
|
||||
ports:
|
||||
- containerPort: 9125
|
||||
name: "http"
|
||||
args:
|
||||
- --web.listen-address=0.0.0.0:9125
|
||||
- --web.telemetry-path=/metrics
|
||||
- --collect.heartbeat
|
||||
- --collect.heartbeat.database=sys_operator
|
||||
env:
|
||||
- name: DB_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: dbpassword
|
||||
- name: DB_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: wrestlingdev-secrets
|
||||
key: dbusername
|
||||
- name: DB_HOST
|
||||
value: "127.0.0.1:3306"
|
||||
- name: DATA_SOURCE_NAME
|
||||
value: $(DB_USERNAME):$(DB_PASSWORD)@($(DB_HOST))/
|
||||
- name: DAYS_TO_KEEP
|
||||
value: "7"
|
||||
# resources:
|
||||
# limits:
|
||||
# memory: "128Mi"
|
||||
# requests:
|
||||
# memory: "32Mi"
|
||||
# cpu: "10m"
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /metrics
|
||||
port: 9125
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
timeoutSeconds: 30
|
||||
volumes:
|
||||
- name: wrestlingdev-mariadb-persistent-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: wrestlingdev-mariadb-pv-claim
|
||||
- name: mysettings-config-volume
|
||||
configMap:
|
||||
name: mariadb-mysettings
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: mariadb-mysettings
|
||||
labels:
|
||||
kubernetes.io/cluster-service: "true"
|
||||
addonmanager.kubernetes.io/mode: EnsureExists
|
||||
data:
|
||||
70-mysettings.cnf: |
|
||||
[mariadb]
|
||||
# Slow log
|
||||
slow_query_log=1
|
||||
#slow_query_log_file=/var/log/mariadb/slow.log
|
||||
slow_query_log_file=/var/lib/mysql/slow.log
|
||||
long_query_time=0.2
|
||||
# mysqltunner recommendations
|
||||
tmp_table_size=32M
|
||||
max_heap_table_size=32M
|
||||
performance_schema=ON
|
||||
innodb_log_file_size=32M
|
||||
table_open_cache=4000
|
||||
# replica settings
|
||||
server_id=2 # Default server_id, can be overridden for master/slave
|
||||
log_bin=mysql-bin # Enable binary logging
|
||||
binlog_format=ROW # Recommended for replication
|
||||
log_slave_updates=ON # Ensure slaves log updates (useful for multi-source replication)
|
||||
sync_binlog=1 # Flush binary logs after each transaction for safety
|
||||
read_only=0 # Default, will be managed by the init script
|
||||
expire_logs_days=7 # Retain binary logs for 7 days
|
||||
|
||||
# /etc/mysql/mariadb.conf.d/70-mysettings.cnf
|
||||
@@ -127,6 +127,8 @@ spec:
|
||||
volumeMounts:
|
||||
- name: wrestlingdev-mariadb-persistent-storage
|
||||
mountPath: /var/lib/mysql
|
||||
- name: mysettings-config-volume
|
||||
mountPath: /etc/mysql/mariadb.conf.d
|
||||
# resources:
|
||||
# limits:
|
||||
# memory: "100Mi"
|
||||
|
||||
Reference in New Issue
Block a user