app-deploy.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 2
selector:
matchLabels:
app: oliveyoung
template:
metadata:
labels:
app: oliveyoung
spec:
containers:
- name: myapp
image: 409492321037.dkr.ecr.ap-northeast-2.amazonaws.com/cicd-gitlab:f83c2540
ports:
- containerPort: 80
envFrom:
#- configMapRef:
# name: oliveyoung-config
- secretRef:
name: oliveyoung-secret
app-service.yml
apiVersion: v1
kind: Serviceq
metadata:
name: app-service
# annotations:
# service.beta.kubernetes.io/aws-load-balancer-subnets: "subnet-0d1a3f4ac27a16701"
# service.beta.kubernetes.io/aws-load-balancer-type: external
# service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
# service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
spec:
#type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
app: oliveyoung
app-ingress.yml(+ingressclass)
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: alb-ingress-class
spec:
controller: ingress.k8s.aws/alb
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/healthcheck-path: /health
spec:
ingressClassName: alb-ingress-class
rules:
#- host: nginx.example.com
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 80
app-cm.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: oliveyoung-config
data:
DB_USER: admin
JWT_ACCESS_EXPIRATION: "5184000000"
JWT_REFRESH_EXPIRATION: "15552000000"
application.properties: |-
spring.profiles.include=k8s
spring.application.name=oliveyoung-fbu-server
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.datasource.username=admin
jwt.access-expiration=5184000000
jwt.refresh-expiration=15552000000
secret생성
kubectl delete secret oliveyoung-secret -n argocd(->해당 네임스페이스)
kubectl create secret generic oliveyoung-secret \\
--namespace argocd(->해당 네임스페이스) \\
--from-literal=spring.datasource.username=admin \\
--from-literal=spring.datasource.password='qwer1234!' \\
--from-literal=spring.datasource.url='jdbc:mysql://oliveyoung-fbu-rds-prod2.cfcskomwutzy.ap-northeast-2.rds.amazonaws.com/oliveyoung_fbu' \\
--from-literal=jwt.access-secret='iDGuH1gTPEAdwr644qWNs7AWwWSi6qiRoHbPbNqdDYgba3XRUZs7Mlw1krzkz0SF4qypIbBCmTqFKOsuNBW9hQ==' \\
--from-literal=jwt.refresh-secret='g144djQiICVIPbmW8ZdARDDTwcTDXPFaDyA6Ih1oalEDJmyAuYKbEu84uEua5CKCDU9FHGo5BYRPtLAMaQI3hA=='
=>
* db명 변경 필요 *
oliveyoung-fbu-rds-prod2.cfcskomwutzy.ap-northeast-2.rds.amazonaws.com/oliveyoung_fbu