Alertlogger

PythonDjango

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

 

← back