쿠버네티스에 3계층 아키텍처 올리기
+ 버튼을 눌러 편집기를 열어준다
mysql 설정
-mysql볼륨-
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 5G
accessModes:
- ReadWriteOnce
local:
path: /mysql-vol
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- {key: kubernetes.io/hostname, operator: In, values: ['worker01']}
-mysql 퍼시스턴스 볼륨 클레임-
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5G
storageClassName: ""
-mysql 컨피그맵-
apiVersion: v1
kind: ConfigMap
metadata:
name: mysql-cm
data:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: qwer1234
-mysql파드-
apiVersion: v1
kind: Pod
metadata:
name: mysql-pod
labels:
app: db
spec:
nodeSelector:
kubernetes.io/hostname: worker01
containers:
- name: mysql
image: mysql:latest
envFrom:
- configMapRef:
name: mysql-cm
volumeMounts:
- name: mysql-vol
mountPath: /var/lib/mysql
volumes:
- name : mysql-vol
persistentVolumeClaim:
claimName: mysql-pvc
-mysql 서비스-
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
spec:
selector:
app: db
ports:
- port: 3306
targetPort: 3306
백앤드 설정
-백엔드 컨피그맵-
apiVersion: v1
kind: ConfigMap
metadata:
name: backend-cm
data:
AWS_ACCESS_KEY: AKIA3DZIPTYG3P5M6MGB
AWS_BUCKET_NAME: ddarahakit2023-s3
AWS_REGION_NAME: ap-northeast-2
AWS_SECRET_KEY: M86PlLeIKTwfnbpKcR43JSaNOUzy8cVIlasyeQVW
DB_DRIVER_CLASS_NAME: com.mysql.cj.jdbc.Driver
DB_PASSWORD: qwer1234
DB_URL: jdbc:mysql://mysql-svc:3306/test
DB_USERNAME: root
IAMPORT_KEY: "1156022477706867"
IAMPORT_SECRET: MVtgCFU216ST9iyajBp6z01jSl1SPnZgdMMQUJIHtQOXe5pJ1oWpuw7SUR58Fcr7icROHUg2NWwXFeaL
JWT_EXPIRED_TIME: 18000000
JWT_SECRET: abcdefghijklmnopqrstuvwxyz0123456789
MAIL_HOST: smtp.gmail.com
MAIL_PASSWORD: sfigasrozftvsmnp
MAIL_PORT: 587
MAIL_USERNAME: ddarahakit2023
-백앤드 파드-
apiVersion: v1
kind: Pod
metadata:
name: backend-pod
labels:
app: backend
spec:
containers:
- name: backend
image: ddarahakit2023/be:1.0
envFrom:
- configMapRef:
name: backend-cm
-백앤드 서비스-
apiVersion: v1
kind: Service
metadata:
name: backend-svc
spec:
selector:
app: backend
ports:
- port: 8080
targetPort: 8080
프론트 설정
-프론트 파드-
apiVersion: v1
kind: Pod
metadata:
name: frontend-pod
labels:
app: frontend
spec:
containers:
- name: frontend
image: ddarahakit2023/fe:1.0
-프론트 서비스-
apiVersion: v1
kind: Service
metadata:
name: frontend-svc
spec:
selector:
app: frontend
ports:
- port: 80
targetPort: 80
type: NodePort