Alertlogger
Source Code Github: https://github.com/Waji-97/Alertlogger
K8s Manifest 모임
# db-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-db
namespace: monitoring
labels:
app: mysql
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:8.0
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_PASSWORD
- name: MYSQL_DATABASE
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_DB_NAME
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_USER
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_PASSWORD
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-db-pvc
mountPath: /var/lib/mysql
volumes:
- name: mysql-db-pvc
persistentVolumeClaim:
claimName: mysql-db-pvc
# db-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-db-pvc
namespace: monitoring
labels:
app: mysql
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
# db-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: alert-log-secret
namespace: monitoring
type: Opaque
stringData:
MYSQL_DB_NAME: "Alerts"
MYSQL_USER: "waji"
MYSQL_PASSWORD: "waji1234"
MYSQL_HOST: "mysql-db-svc"
MYSQL_SERVICE_PORT: "3306"
# db-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-db-svc
namespace: monitoring
labels:
app: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
clusterIP: None
# deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: alertlogger
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: alertlogger
template:
metadata:
labels:
app: alertlogger
spec:
containers:
- name: alertlogger
image: waji97/alertlogger:v1.0
ports:
- containerPort: 8000
command: ["/bin/sh"]
args: ["-c", "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"]
env:
- name: MYSQL_DB_NAME
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_DB_NAME
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_USER
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_PASSWORD
- name: MYSQL_HOST
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_HOST
- name: MYSQL_SERVICE_PORT
valueFrom:
secretKeyRef:
name: alert-log-secret
key: MYSQL_SERVICE_PORT
# svc.yaml
apiVersion: v1
kind: Service
metadata:
name: alertlogger-svc
namespace: monitoring
spec:
selector:
app: alertlogger
ports:
- protocol: TCP
port: 80
targetPort: 8000
type: ClusterIP
# ing.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: alertlogger-ingress
namespace: monitoring
spec:
tls:
- hosts:
- alert-log.waji-domain.site
secretName: alert-log-tls
ingressClassName: nginx
rules:
- host: alert-log.waji-domain.site
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: alertlogger-svc
port:
number: 80