NodePort
### service-nodeport.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: my-nginx
template:
metadata:
labels:
app: my-nginx
spec:
containers:
- name: my-nginx
image: nginx
imagePullPolicy: Always
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: svc-nodeport
spec:
type: NodePort
selector:
app: my-nginx
ports:
- port: 80
nodePort: 30080
targetPort: 80
# node ec2 보안그룹에 30080 열어주기
kubectl get node -o wide
curl http://<node-ip>:30080

LoadBalancer
# 위 service-nodeport.yaml에서 service 부분만 변경
apiVersion: v1
kind: Service
metadata:
name: svc-lb
spec:
type: LoadBalancer
selector:
app: my-nginx
ports:
- port: 80
targetPort: 80
kubectl get svc
# 기존 노드포트 타입의 서비스 삭제
kubectl delete svc svc-nodeport
# 로드밸런서 타입 서비스 생성
kubectl apply -f service-nodeport.yaml
# external-ip에 CLB dns 주소 보이면 성공
kubectl get svc
curl http://<clb-dns>
