반응형
pod는 클러스터 내부에서만 접근이 가능하기 때문에 클러스터 외부에서 pod에 요청이 불가능하다. 또한, pod는 일회성으로 뜨고 지면서 IP가 계속 바뀌게 되고 클러스터 내/외부와의 통신을 유지하는 것이 불가능하다. 그래서 Service를 통해 클러스터 내부에서 고정 IP를 갖게 해서, pod 그룹에 대한 단일 진입점으로 외부와 통신할 수 있게 만들어준다.
쉽게 생각하면 Service는 클러스터 외부에서 트래픽이 들어오면 해당 Service와 연결된 pod에게 트래픽을 전달해주는 역할을 하는 것이다.
Service에는 4가지 유형이 있으며 일반적으로는 아래와 같은 구성으로 이루어진다.
Service
|
특징 |
ClusterIP
|
|
NodePort
|
|
LoadBalancer
|
|
ExternalName
|
|
1. ClusterIP
- 클러스터 내부에서만 접근할 수 있는 서비스 생성
- label이 동일한 pod 그룹의 단일 진입점인 Virtual IP를 생성
- 작업 요청이 서비스의 ClusterIP 주소로 전달되면, 해당 서비스는 pod 중 하나로 요청을 전달하여 처리(for 작업 부하 분산)
ClusterIP 서비스는 클러스터 내부에서만 접근이 가능하기 때문에, 클러스터 외부로 서비스를 노출 시키기 위해서 NodePort, LoadBalancer를 사용한다.
2. NodePort
- (ClusterIP 위에)클러스터 모든 노드에서 지정된 포트를 열어 서비스에 접근 가능
- 쉽게 생각하면 ClusterIP가 생성되고, 워커 노드의 Port를 사용하여 접속하는 방식
- 외부에서 <NodeIP>:<Port>로 들어오는 요청을 감지하여, 서비스는 자신과 연결된 pod에 트래픽 전달
3. LoadBalancer
- 클러스터 외부에서 로드 밸런서를 사용하여 서비스 노출
- 로드 밸런서는 네트워크 트래픽을 분산하여 전달
4. ExternalName
- 서비스를 DNS 이름에 매핑하여 서비스 노출
- 클러스터 안에서 도메인을 등록하여 사용하는 방식
처음 서비스에 대한 개념을 접했을 때는, 알듯말듯 이해가 조금 어려운 부분이 있다. 쿠버네티스 오브젝트 중 특히 서비스의 경우, 단순 개념에 대해서만 찾아보는 것보다 직접 실습해보는 것이 이해가 훨씬 더 쉬울 것이다. 그래서 다음 시간에는 실제 쿠버네티스 안에서 서비스를 적용해보는 부분을 진행해보려고 한다.
반응형
'[기술공부] > Kubernetes' 카테고리의 다른 글
[k8s] 쿠버네티스 오브젝트 - pod에 대하여 (0) | 2024.04.13 |
---|---|
[k8s] 쿠버네티스 오브젝트란? (0) | 2024.04.13 |
[k8s] 쿠버네티스란? with 쿠버네티스 아키텍처 - (2) (37) | 2024.04.13 |
[k8s] 쿠버네티스란? with 쿠버네티스 아키텍처 - (1) (0) | 2024.04.13 |
[k8s] 도커와 쿠버네티스의 관계 (0) | 2024.04.13 |