쿠바네티스 서비스 종류 3가지
- 클러스터 IP → 클러스터 내부에서만 접속 가능
- Node port → 클러스터 외부에서 접속 가능
- LB → csp만 지원 가능 (
type: LoadBalancer )
01-db.yaml
apiVersion: v1
kind: Service
metadata:
name: db-svc
spec:
selector:
app: mydb
ports:
- port: 3306
targetPort: 3306
---
apiVersion: v1
kind: Pod
metadata:
name: mydb
labels:
app: mydb
spec:
containers:
- name: mydb
image: chohyeon1208/myapp:mydb
resources:
ports:
- containerPort: 3306
02-redis.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-svc
spec:
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
---
apiVersion: v1
kind: Pod
metadata:
name: myredis
labels:
app: redis
spec:
containers:
- name: myredis
image: chohyeon1208/myapp:redis
ports:
- containerPort: 6379
03-falsk.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
selector:
app: flask
ports:
- port: 5000
targetPort: 5000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
labels:
app: flask
spec:
replicas: 3
selector:
matchLabels:
app: flask
template:
metadata:
labels:
app: flask
spec:
containers:
- name: myapp
image: chohyeon1208/myapp:app
ports:
- containerPort: 5000
04-nginx.yaml
apiVersion: v1
kind: Service
metadata:
name: mynginx
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: 31000
type: LoadBalancer
externalTrafficPolicy: Local
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mynginx
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: mynginx
image: chohyeon1208/myapp:nginx
ports:
- containerPort: 80