기존 문제점

파드는 일시적이기 때문에 재시작되면 기존 파드가 가지던 ip가 바뀌게 되는데

이때마다 요청하는 ip를 바꿔준다는 것은 말도 안 되고

파드는 노드가 정해진 후 시작되기 전 ip를 할당하기 때문에 클라이언트는 파드의 ip를 미리 알 수 없다.

또한 수평적 확장은 여러 파드가 동일한 기능을 제공해야 하고 **여러 파드에 단일 ip로 접근 가능**해야한다


서비스 소개

서비스는 특정 파드 그룹에 대해서 **단일 ip 접점을 생성할 때 사용**하는 쿠버네티스 리소스이다.

각 서비스는 변경되지 않는 ip 주소와 포트가 존재한다.

서비스가 파드를 고르는 방법

서비스 메니페스트를 정의할 때 파드 셀렉터로 지정해주면 그 파드들이 서비스에 관리되게 되는 것이다.

서비스 YAML

# kubia-svc.yaml
apiVersion: v1
kind: Service
metadata: 
 name: kubia
spec:
 ports:
 - port : 80 # 80포트로 들어오면
   targetPort : 8080 # 8080포트로 보낸다
 selector: # app=kubia라는 레이블이 붙은 파드들을 관리한다
  app : kubia

세션 Affinity란

apiVersion: v1
kind: Service
spec:
    sessionAffinity : ClientIP
    ...

서비스 메니페스트를 정의할 때 요런 항목을 설정해줄 수 있는데