Files
zero-scale-platform/deploy/shared-data-services.yaml

171 lines
3.7 KiB
YAML

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: shared-mysql-pvc
namespace: default
labels:
app: shared-mysql
app.kubernetes.io/part-of: zero-scale-platform
spec:
accessModes:
- ReadWriteOnce
# storageClassName: longhorn-2-replicas # Optional: customize if needed; omit to use cluster default
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
name: shared-mysql
namespace: default
labels:
app: shared-mysql
app.kubernetes.io/part-of: zero-scale-platform
spec:
type: ClusterIP
ports:
- name: mysql
port: 3306
targetPort: 3306
protocol: TCP
selector:
app: shared-mysql
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: shared-mysql
namespace: default
labels:
app: shared-mysql
app.kubernetes.io/part-of: zero-scale-platform
spec:
serviceName: shared-mysql
replicas: 1
selector:
matchLabels:
app: shared-mysql
template:
metadata:
labels:
app: shared-mysql
app.kubernetes.io/part-of: zero-scale-platform
spec:
containers:
- name: mysql
image: mysql:8.0
args:
- "--default-authentication-plugin=mysql_native_password"
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
- "--innodb-buffer-pool-size=256M"
- "--max-connections=200"
ports:
- name: mysql
containerPort: 3306
hostPort: 3307
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: shared-mysql-admin
key: MYSQL_ROOT_PASSWORD
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 1000m
memory: 1024Mi
livenessProbe:
tcpSocket:
port: 3306
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
exec:
command:
- "/usr/bin/mysqladmin"
- "ping"
- "-h"
- "localhost"
initialDelaySeconds: 15
periodSeconds: 5
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: shared-mysql-pvc
---
apiVersion: v1
kind: Service
metadata:
name: shared-redis
namespace: default
labels:
app: shared-redis
app.kubernetes.io/part-of: zero-scale-platform
spec:
type: ClusterIP
ports:
- name: redis
port: 6379
targetPort: 6379
protocol: TCP
selector:
app: shared-redis
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: shared-redis
namespace: default
labels:
app: shared-redis
app.kubernetes.io/part-of: zero-scale-platform
spec:
replicas: 1
selector:
matchLabels:
app: shared-redis
template:
metadata:
labels:
app: shared-redis
app.kubernetes.io/part-of: zero-scale-platform
spec:
containers:
- name: redis
image: redis:7-alpine
command:
- redis-server
- "--maxmemory"
- "128mb"
- "--maxmemory-policy"
- "allkeys-lru"
ports:
- name: redis
containerPort: 6379
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 500m
memory: 256Mi
livenessProbe:
tcpSocket:
port: 6379
initialDelaySeconds: 10
periodSeconds: 10
readinessProbe:
exec:
command:
- redis-cli
- ping
initialDelaySeconds: 5
periodSeconds: 5