
✔ Pod 간의 네트워크 통신을 가능하게 함
✔ 외부 트래픽을 Kubernetes 내부로 연결함
✔ Pod는 동적으로 생성되고 삭제되므로, 직접 Pod의 IP를 사용할 수 없음
✔ Service는 하나의 고정된 네트워크 인터페이스(ClusterIP) 를 제공하여 지속적인 접근 가능

kubectl create service nodeport my-service --tcp=80:80✅ 구성 요소
TargetPort: Pod 내부에서 애플리케이션이 실행되는 포트 (예: 80)Port: Service에서 사용할 포트 (80)NodePort: 노드에서 외부에 개방할 포트 (30008)✅ 예제 : 사용자는 http://<노드IP>:30008로 접근 가능
kubectl create service clusterip my-service --tcp=80:80✅ 예제
my-service:80을 호출하여 다른 Pod과 통신 가능kubectl create service loadbalancer my-service --tcp=80:80✅ 예제
http://my-loadbalancer.com으로 접속 가능apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
# Pod(8080) → 서비스(80) → 노드(30008) → 사용자.
# 사용자가 외부에서 접근 (http://192.168.1.100:30008)
- protocol: TCP
port: 80 # Service 내부 포트
targetPort: 8080 # Pod 내부 포트
nodePort: 30008 # 노드에서 개방할 포트 (NodePort 타입일 경우)
type: NodePort
kubectl expose deployment my-app --type=NodePort --port=80 --target-port=8080
kubectl create service nodeport my-service --tcp=80:80