쿠버네티스 서비스 유형
쿠버네티스에서 서비스는 클러스터 내의 파드들이 안정적으로 통신할 수 있도록 네트워크 접근을 제공하는 추상화된 개념임.
서비스에는 다양한 유형이 있으며, 각 유형은 다른 방식으로 네트워크 트래픽을 라우팅하거나 외부와의 통신을 가능하게 함.
1. ClusterIP
기본값으로 설정되는 서비스 유형임.
클러스터 내부에서만 접근 가능한 가상 IP를 생성함.
외부에서 접근할 수 없으며, 클러스터 내에서 서비스 이름을 통해 접근함.
사용 예: 내부 서비스 간 통신 (예: 백엔드-프론트엔드 간 통신).
2. NodePort
서비스에 노드의 특정 포트를 노출함.
클러스터 외부에서 접근하려면 노드 IP:NodePort 형식으로 접근함.
클러스터 내 모든 노드에서 동일한 포트를 열어줌.
제한: 포트 번호 범위(30000~32767)로 제한됨.
사용 예: 간단한 개발 환경 또는 디버깅 목적.
3. LoadBalancer
클라우드 환경에서 외부 로드 밸런서를 생성하여 외부 트래픽을 서비스로 전달함.
NodePort와 ClusterIP를 자동으로 생성하고 관리함.
사용 예: 퍼블릭 클라우드에서 외부와의 통신을 위해.
4. ExternalName
외부 서비스를 클러스터 내부에서 사용할 수 있도록 설정함.
DNS 이름을 매핑하여 동작하며, 클러스터 내에서 외부 서비스에 접근할 수 있도록 함.
제한: 클러스터 내부 IP를 생성하지 않으며, DNS 이름으로만 작동함.
사용 예: 외부 데이터베이스나 API에 대한 접근 설정.
5. Ingress (추가적인 라우팅 옵션)
엄밀히 말하면 Ingress는 서비스 유형이 아니지만, 외부 HTTP(S) 트래픽을 내부 서비스로 라우팅하는 데 사용됨.
도메인 이름 기반 라우팅, SSL/TLS 인증서 처리 등을 지원함.
사용 예: 웹 애플리케이션의 복잡한 트래픽 관리.
사용 시 고려 사항
ClusterIP는 기본적으로 내부 통신에 적합함.
NodePort와 LoadBalancer는 외부 접근이 필요할 때 사용됨.
LoadBalancer는 클라우드 기반 환경에서 더 편리함.
ExternalName은 외부 서비스를 내부 DNS 이름으로 매핑할 때 유용함.
Ingress를 활용하면 외부 트래픽을 보다 효율적으로 관리할 수 있음.
'Operating System > Kubernetes' 카테고리의 다른 글
[Kubernetes] Nginx Dockerfile을 arm64로 ECR에 배포하는 방법 (0) | 2024.12.26 |
---|---|
[Kubernetes] Liveness, Readiness, Startup Probe 정리 (0) | 2024.12.26 |
[Kubernetes] k8s, 파드란? (0) | 2024.12.26 |
[Kubernetes] k8s, helm으로 redis 설치하는 방법 (0) | 2024.12.16 |
[Kubernetes] k8s, helm으로 kafka 설치하는 방법 (0) | 2024.12.15 |