서비스 API 카테고리
컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스
- 서비스
- ClusterIP
- ExternalIP (ClusterIP의 한 종류)
- NodePort
- LoadBalancer
- Headless (None)
- ExternalName
- None-Selector
- 인그레스
ExternalIP
ClusterIP
클러스터 내부 로드밸런서의 리스너 포트와 대상 서버의 포트 지정 으로 부하분산
ExternalIP
클러스터 외부(노드)의 IP 및 리스너 포트 그리고 클러스터 내부 로드밸런서의 리스너 포트와 대상 서버의 포트 지정
근데 보통 노드에 안붙이고 클라우드의 로드밸런서 IP로 붙으려 한다.
NodePort
ExternalIP는 지정한 쿠버네티스 노드의 IP 및 리스너 포트에서 수신한 트래픽을 컨테이너로 전송하는 형태이지만
NodePort는 모든 쿠버네티스 노드의 IP 및 리스너 포트에서 수신한 트래픽을 컨테이너에 전송하는 형태로 외부와 통신하는 방식이다.
apiVersion: v1
kind: Service
metadata:
name: sample-nodeport
spec:
type: NodePort
selector:
mylabel: sample-label
ports:
- name: "http-port"
port: 80 # 파드(ClusterIP)의 리스너 포트
targetPort: 80 # 컨테이너의 리스너 포트
NodePort: 80 # 노드의 리스너 포트
- NodePort에서 사용할 수 있는 포트 범위 30000~32767
- 여러 NodePort 서비스에서 같은 포트 사용 불가
범위 외의 포트를 지정하려고 하면 에러가 발생한다.
(쿠버네티스 마스터 설정을 자체적으로 바꿀 수 있는 경우에는 이 범위를 커스터마이즈 할 수 있다.)
'Kubernetes' 카테고리의 다른 글
서비스 API 카테고리(세션 어피니티) (0) | 2024.02.11 |
---|---|
서비스 API 카테고리(LoadBalancer) (0) | 2024.02.08 |
서비스 API 카테고리(ClusterIP) (0) | 2024.01.20 |
서비스 API 카테고리(서비스) (0) | 2024.01.20 |
워크로드 API 카테고리(크론잡) (0) | 2024.01.20 |