서비스(Service) : 외부로부터 요청을 받는 역할 / 외부로부터 들어오는 트래픽을 받아, 파드에 균등하게 분배해주는 로드밸런서 역할을 하는 기능
spring-service.yaml
apiVersion: v1
kind: Service
# Service 기본 정보
metadata:
name: spring-service # Service 이름
# Service 세부 정보
spec:
type: NodePort # Service의 종류
selector:
app: backend-app # 실행되고 있는 파드 중 'app: backend-app'이라는 값을 가진 파드와 서비스를 연결
ports:
- protocol: TCP # 서비스에 접속하기 위한 프로토콜
port: 8080 # 쿠버네티스 내부에서 Service에 접속하기 위한 포트 번호
targetPort: 8080 # 매핑하기 위한 파드의 포트 번호
nodePort: 30000 # 외부에서 사용자들이 접근하게 될 포트 번호
Kubernetes Service의 주요 개념
1. Selector와 Label
Service는 특정 Pod을 대상으로 트래픽을 전달해야 한다. 이때 Selector를 사용하여 특정 Label을 가진 Pod을 찾아 연결한다.
2. ClusterIP (기본값)
Service는 기본적으로 ClusterIP를 제공하여 내부 네트워크에서 Pod을 접근할 수 있도록 한다.
3. NodePort
클러스터 외부에서도 접근할 수 있도록 NodePort를 설정하면, 각 노드의 특정 포트를 통해 Service에 접근할 수 있다.
4. LoadBalancer
클라우드 환경에서 외부 로드 밸런서를 생성하여 Service에 접근할 수 있도록 한다.
5. ExternalName
DNS 이름을 반환하여 외부 서비스로 연결할 수 있도록 한다.

서비스 실행하기
kubectl apply -f spring-service.yaml
서비스 확인하기
kubectl get service'DevOps > k8s' 카테고리의 다른 글
| Kubernetes에서 MySQL과 연동하여 볼륨(Persistent Volume) 사용하기 (0) | 2025.02.06 |
|---|---|
| 쿠버네티스 ConfigMap과 Secret 완벽 정리 (0) | 2025.02.05 |
| Docker + GitHub Actions 배포 vs 쿠버네티스 배포 비교 (0) | 2025.02.04 |
| Kubernetes Deployment를 사용하여 여러 개의 Pod 실행하기 (0) | 2025.02.04 |
| 쿠버네티스 기초 명령어 (0) | 2025.01.22 |