diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml new file mode 100644 index 0000000..1e241e9 --- /dev/null +++ b/k8s/deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: team5-app + labels: + app: team5-app +spec: + replicas: 2 + selector: + matchLabels: + app: team5-app + template: + metadata: + labels: + app: team5-app + spec: + containers: + - name: team5-app + image: ghcr.io/wafflestudio/23-5-team5-server:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + env: + # --- DB 접속 정보 --- + - name: DB_HOST + value: "mysql" + - name: DB_PORT + value: "3306" + - name: DB_USER + value: "waffle" + - name: DB_PASSWORD + valueFrom: + secretKeyRef: + name: team5-secrets + key: mysql-user-password + + # --- Redis 접속 정보 --- + - name: REDIS_HOST + value: "redis" + - name: REDIS_PORT + value: "6379" + + # --- 보안 키 (JWT) --- + - name: JWT_SECRET + valueFrom: + secretKeyRef: + name: team5-secrets + key: jwt-secret \ No newline at end of file diff --git a/k8s/mysql.yaml b/k8s/mysql.yaml new file mode 100644 index 0000000..6b31986 --- /dev/null +++ b/k8s/mysql.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mysql +spec: + selector: + matchLabels: + app: mysql + strategy: + type: Recreate + template: + metadata: + labels: + app: mysql + spec: + containers: + - name: mysql + image: mysql:8.0 + ports: + - containerPort: 3306 + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: team5-secrets + key: mysql-root-password + - name: MYSQL_USER + value: waffle + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: team5-secrets + key: mysql-user-password + - name: MYSQL_DATABASE + value: toyproject-team5 + volumeMounts: + - name: mysql-persistent-storage + mountPath: /var/lib/mysql + volumes: + - name: mysql-persistent-storage + persistentVolumeClaim: + claimName: mysql-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: mysql +spec: + ports: + - port: 3306 + selector: + app: mysql \ No newline at end of file diff --git a/k8s/redis.yaml b/k8s/redis.yaml new file mode 100644 index 0000000..3205fa4 --- /dev/null +++ b/k8s/redis.yaml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis +spec: + selector: + matchLabels: + app: redis + template: + metadata: + labels: + app: redis + spec: + containers: + - name: redis + image: redis:7-alpine + ports: + - containerPort: 6379 +--- +apiVersion: v1 +kind: Service +metadata: + name: redis +spec: + ports: + - port: 6379 + selector: + app: redis \ No newline at end of file diff --git a/k8s/service.yaml b/k8s/service.yaml new file mode 100644 index 0000000..5cc6e48 --- /dev/null +++ b/k8s/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: team5-app-service +spec: + type: LoadBalancer + selector: + app: team5-app + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 \ No newline at end of file