- 쿠버네티스에서는 Pod를 불안정한 리소스로 여김. 언제든, 무슨 이유로든 종료될 수 있는 리소스. Pod는 불안정한 서비스엔드를 제공한다.
- 그러면 사용자는 끊임없어 서비스엔드의 이상여부와 바뀐 IP를 추적해야 한다.
- 이를 위해 Service를 앞단에 두어 클라이언트의 요청을 대신 받아 전달하는 리버스 프록시 역할을 수행하게 한다.
- Pod IP가 변경되어도 사용자는 동일한 IP로 서비스에 접근 가능
- Service는
- 안정적인 IP 제공
- 도메인 이름 기반의 서비스엔드 제공 (DNS 참조 가능)
- Service의 종류
- ClusterIP : 가장 기본. 쿠버네티스 클러스터 내부에서만 접근이 가능
- NodePort : 로컬호스트의 특정 포트를 Service의 특정 포트와 연결시켜 외부 트래픽을 Service까지 전달
- LoadBalancer : 노드 앞단에 두어 각 노드로 트래픽 분산 가능
- NodePort 타입 말고도 로드밸런서 타입이 필요한 이유?
- 서버는 내부 네트워크에, 로드밸런서만 외부 네트워크에 두어 보안성 높이기
- 사용자는 로드밸런서의 IP 또는 도메인 주소만 알면 된다.
- NodePort 타입 말고도 로드밸런서 타입이 필요한 이유?
- ExternalName : 외부 DNS 주소에 클러스터 내부에서 사용할 새로운 별칭을 만든다. 쿠버네티스 클러스터에 편입되지 않는 외부 서비스에 쿠버네티스 네트워킹 기능을 연결하고 싶은 경우 사용
- 예를 들면, google-svc라는 별칭을 사용하여 google.com으로 연결할 수 있는 서비스엔드 생성
- 쿠버네티스 네트워크 모델의 장점
- 모든 리소스(Node, Pod)가 다른 모든 리소스(Node, Pod, Service)를 고유의 IP로 접근 가능
- NAT 통신으로 인한 부작용에 대해 신경X
- 새로운 프로토콜 재정의할 필요X TCP, UDP, IP 프로토콜 그대로 사용
- Pod끼리의 네트워킹이 어느 노드에서든지 동일하게 작동 (이식성 높아짐)
구조도
CluterIP
NodePort
LoadBalancer
ExternalName
'공부 > Kubernetes' 카테고리의 다른 글
Pod (2) | 2024.09.14 |
---|---|
쿠버네티스 명령어 (0) | 2024.07.17 |
[NCP] Kubernetes Service 이용하기 (1) | 2024.07.13 |