
NodePort: 쿠버네티스 내부에서 해당 서비스에 접속하기 위한 포트를 열고 외부에서 접속 가능하도록 한다.ClusterIP: 쿠버네티스 내부에서만 통신할 수 있는 IP 주소를 부여한다. 외부에서는 요청 할 수 없다.LoadBalancer: 외부의 로드밸런서(AWS의 로드밸런서 등)를 활용해 외부에서 접속할 수 있도록 연결한다.이전에 백엔드 서버 3개를 디플로이먼트를 사용하여 띄웠다.
apiVersion: v1
kind: Service
# Service 기본 정보
metadata:
name: spring-service # Service 이름
# Service 세부 정보
spec:
type: NodePort # Service의 종류
selector:
app: backend-app # 실행되고 있는 Pod 중 'app: backend-app' 라벨을 가진 Pod와 연결
ports:
- protocol: TCP # TCP 프로토콜 사용
port: 8080 # 쿠버네티스 내부에서 Service에 접속하기 위한 포트 번호
targetPort: 8080 # 매핑하기 위한 Pod 포트 번호
nodePort: 30000 # 외부에서 접근할 포트 (30000~32767 사이) - 기본 할당 포트 범위

kubectl apply -f spring-service.yaml
kubectl get service


💡 쿠버네티스에서는 서비스(Service), 디플로이먼트(Deployment), 파드(Pod)와 같은 리소스를 보고 오브젝트(Object)라고 부른다.