서비스는 여러 개의 파드에 접근할 수 있는 IP 하나를 제공. 본질적으로 로드밸런서의 역할
파드는 컨트롤러가 관리하므로 한 군데에 고정해서 실행되지 않고, 클러스터 안을 옮겨 다님
이 과정에서 노드를 옮기면서 실행되기도 하고 클러스터 안 파드의 IP가 변경되기도 함
동적으로 변하는 파드들에 고정적으로 접근할 때 사용하는 방법이 쿠버네티스의 서비스
서비스에 연결할 파드 실행
$ kubectl create deployment nginx-for-svc --image=nginx --repicas=2 --port=80
clusterip.yaml
apiVersion: v1
kind: Service
metadata:
name: clusterip-service
spec:
type: ClusterIP
clusterIP: 10.0.10.10 # 설정 안할 시 자동 설정
selector:
app: nginx-for-svc
ports:
- protocol: TCP
port: 80
targetPort: 9376
$ kubectl apply -f clusterip.yaml
apiVersion: v1
kind: Service
metadata:
name: nodeport-service
spec:
type: NodePort
selector:
app: nginx-for-svc
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080