쿠버네티스 서비스
Kubernetes는 클러스터에서 실행 중인 포드를 노출하고 이에 대한 액세스를 제공하는 데 사용되는 여러 유형의 서비스를 지원한다.
Kubernetes의 다양한 서비스 유형은 다음과 같다.
- ClusterIP: Kubernetes의 기본 서비스 유형이다.
클러스터 내 서비스 접근을 위한 안정적인 IP 주소를 제공하며, 클러스터 내 서로 다른 파드와 서비스 간의 통신을 가능하게 한다.
클러스터 외부에서 액세스할 수 없으며 클러스터 내의 내부 통신에 사용된다.
- NodePort: 이 유형의 서비스는 각 노드의 IP 주소에 있는 정적 포트에 서비스를 노출한다.
노드의 IP 주소와 할당된 정적 포트를 사용하여 클러스터 외부에서 서비스에 대한 액세스를 제공한다.
NodePort 서비스는 테스트 및 개발 목적으로 유용하지만 외부 사용자에게 서비스를 노출하는 데 사용할 수도 있다.
- LoadBalancer: 이 유형의 서비스는 서비스에 트래픽을 분산하기 위해 클라우드별 로드 밸런서를 프로비저닝한다.
LoadBalancer 서비스는 클러스터 외부에서 서비스에 대한 액세스를 제공하는 데 사용되며 일반적으로 프로덕션 배포에 사용된다.
서비스에 고정 IP 주소를 제공한다는 점에서 NodePort 서비스와 유사하지만 가용성과 확장성을 향상시키기 위해 클러스터의 여러 노드에 트래픽을 분산하기도 한다.
-
ExternalName: 이 유형의 서비스는 서비스를 외부 DNS 이름에 매핑한다.
서비스 이름이나 IP 주소 대신 외부 DNS 이름을 사용하여 서비스에 액세스할 수 있다.
ExternalName 서비스는 애플리케이션 코드를 수정하지 않고 클러스터의 포드에 외부 서비스를 노출하는 데 사용된다.
-
Headless: 이 유형의 서비스는 로드 밸런싱 및 자동 서비스 IP 할당을 비활성화하고 대신 서비스 뒤에 있는 포드의 개별 IP 주소를 반환하는 데 사용된다.
이는 데이터베이스와 같은 개별 포드에 직접 액세스해야 하는 상태 저장 애플리케이션에 유용하다.
헤드리스 서비스는 트래픽이 포드로 전달되는 방식을 정밀하게 제어해야 하는 애플리케이션에 사용된다.
참고 자료
ChatGPT
쿠버네티스 안내서