Kubernetes Network - Service

OneDayDev·2023년 1월 25일
0

K8s

목록 보기
4/12
post-thumbnail

쿠버네티스 네트워크 모델에 관한 내용은 문서를 참고하자.

개요

파드는 컨트롤러가 관리해서 클러스터 안을 옮겨 다닐 수 있다. 그 과정에서 IP가 변경되기도 하는데 이런 경우 파드에 고정적으로 접근하기 위해 서비스와 Ingress를 사용한다. 서비스는 주로 L4 영역에서 통신할 때 사용하고 Ingress는 L7 영역에서 통신할 때 사용한다는 차이점이 있다.

Service

Service 정의

서비스를 정의할 때는 다음과 같이 나뉜다.

Service Type

  • ClusterIP
  • NodePort
  • LoadBalancer
  • ExternalName

ClusterIP

기본 서비스 타입이며 쿠버네티스 클러스터 내에서만 사용할 수 있다.

NodePort

서비스 하나에 모든 노드의 지정된 포트를 할당한다. 노드의 포트를 사용하므로 클러스터 외부에서도 접근할 수 있다.
예시

LoadBalancer

EKS, AKS 등 퍼블릭 클라우드 서비스, 오픈스택 같은 프라이빗 클라우드, 쿠버네티스를 지원하는 로드밸런서 장비에서 사용. 클라우드에서 제공하는 로드밸런서와 파드를 연결한 후 로드밸런서의 IP를 사용해 외부에서 접근을 허용한다.
예시
참고 : 4가지 로드밸런서 타입별 차이

ExternalName

서비스를 .spec.externalName 필드에 설정한 값과 연결한다. 클러스터 내에서 외부로 접근할 때 주로 사용.
예시

kube-proxy

kube-proxy는 쿠버네티스 컴포넌트에서 간단하게 소개했었다.
kube-proxy가 네트워크를 관리하는 방법은 userspace, iptables. IPVS가 있다.
초기에는 userspace가 기본 관리 모드였고 2021년 6월부터는 iptables가 기본 관리 모드이다.
참고

더 알아보기

문서에서 Multi-port, Headless Service를 참고하면 좋을 것 같아서 링크를 남긴다.

profile
안녕하세요.

0개의 댓글