서비스 유형: ClusterIP, NodePort, LoadBalancer
Kubernetes 클러스터 내부와 외부에 서비스를 노출하는 다양한 방법을 배우세요.
서비스 유형: ClusterIP, NodePort, LoadBalancer은(는) CoddyKit의 무료 Kubernetes Basics 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kubernetes Basics 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kubernetes Basics 강의에는 총 4개의 강의가 포함되어 있습니다.
서비스 노출 요구 사항
쿠버네티스에서 파드는 일시적이며 IP 주소가 동적으로 할당됩니다. 서비스는 애플리케이션에 안정적인 네트워크 액세스를 제공합니다. 그렇다면 서비스를 어떻게 외부에 노출할 수 있을까요?
애플리케이션에 클러스터 내부 또는 외부 중 어디에서 액세스해야 하는지, 그리고 어떤 방식으로 액세스해야 하는지에 따라 쿠버네티스는 서로 다른 서비스 유형을 제공합니다. 주요 세 가지 유형을 살펴보겠습니다!
ClusterIP: 내부 액세스
ClusterIP는 기본 서비스 유형입니다. 서비스에 안정적인 내부 IP 주소를 할당하며, 쿠버네티스 클러스터 내부에서만 액세스할 수 있습니다.
- 파드는 이러한 ClusterIP와 서비스 이름을 사용하여 다른 파드에 연결할 수 있습니다.
- 직접 외부에 노출할 필요가 없는 백엔드 서비스에 적합합니다.
- 파드를 위한 내부 로드 밸런서라고 생각하면 됩니다.
ClusterIP 서비스 YAML
다음과 같이 ClusterIP 유형의 서비스를 정의합니다. type: ClusterIP 필드를 확인해 보세요. 기본값이므로 생략해도 됩니다.
apiVersion: v1
kind: Service
metadata:
name: my-internal-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPClusterIP 서비스에 액세스하기
배포가 완료되면 쿠버네티스가 이 서비스에 고유한 내부 IP 주소(ClusterIP)를 자동으로 할당합니다. 그러면 다른 파드는 서비스 이름(예: my-internal-service)이나 IP를 사용하여 연결할 수 있습니다.
쿠버네티스의 DNS 서비스는 서비스 이름을 ClusterIP로 확인하므로 내부 통신을 쉽고 안정적으로 처리할 수 있습니다.
NodePort: 외부 액세스
클러스터 외부에서 애플리케이션에 액세스해야 한다면 어떻게 해야 할까요? 이때 NodePort를 사용합니다.
NodePort 서비스는 클러스터의 모든 노드 IP 주소에서 고정 포트로 애플리케이션을 노출합니다. NodeIP:NodePort로 전송된 모든 트래픽은 해당 서비스로 라우팅됩니다.
- 개발 환경과 소규모 배포에 유용합니다.
- NodePort는 일반적으로 30000~32767 범위에 있습니다.
NodePort 서비스 YAML
NodePort 서비스를 만들려면 type: NodePort를 명시적으로 설정합니다. 포트를 지정하지 않으면 쿠버네티스가 NodePort 범위에서 사용 가능한 포트를 자동으로 선택합니다.
apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30080 # Optional: K8s picks if omitted
type: NodePortNodePort를 통한 연결
NodePort 서비스를 배포한 후에는 <AnyNodeIP>:<NodePort>를 사용하여 클러스터 외부에서 애플리케이션에 액세스할 수 있습니다.
예를 들어 노드의 IP가 192.168.1.100이고 할당된 NodePort가 30080이라면 http://192.168.1.100:30080에서 애플리케이션에 연결할 수 있습니다.
LoadBalancer: 클라우드 통합
클라우드 제공업체(AWS, GCP, 애저)의 프로덕션 환경에서는 LoadBalancer 서비스 유형을 자주 사용합니다. 이 유형은 외부 클라우드 로드 밸런서를 자동으로 프로비저닝합니다.
이 로드 밸런서는 공용 IP 주소를 할당받고 외부 트래픽을 서비스의 파드로 분산합니다. 복잡한 라우팅을 모두 대신 처리합니다.
LoadBalancer 서비스 YAML
LoadBalancer 서비스를 정의하는 과정은 간단합니다. 클라우드 제공업체가 외부 로드 밸런서를 프로비저닝하는 복잡한 작업을 처리합니다.
apiVersion: v1
kind: Service
metadata:
name: my-loadbalancer-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancerLoadBalancer를 통한 외부 액세스
배포가 완료되면 클라우드 제공업체가 전용 로드 밸런서를 만들고 외부 IP 주소 또는 호스트 이름을 할당합니다. 그런 다음 이 공용 엔드포인트를 사용하여 애플리케이션에 액세스할 수 있습니다.
이를 통해 서비스를 인터넷에 노출하는 견고하고 확장 가능하며 고가용성인 방법을 사용할 수 있습니다.
빠른 확인: 서비스 유형
다음 중 클러스터 외부에서 애플리케이션에 직접 외부 액세스를 허용하는 쿠버네티스 서비스 유형은 무엇인가요?
복습: 서비스 선택
쿠버네티스의 주요 서비스 유형 세 가지를 배웠습니다.
- ClusterIP: 클러스터 내부에서만 액세스할 때 사용합니다.
- NodePort: 각 노드의 IP에서 고정 포트로 서비스를 노출하여 외부 액세스를 허용합니다.
- LoadBalancer: 클라우드 제공업체와 통합하여 공용 IP를 가진 외부 로드 밸런서를 프로비저닝합니다.
애플리케이션의 노출 요구 사항과 배포 환경에 따라 적절한 유형을 선택하세요!
자주 묻는 질문
“서비스 유형: ClusterIP, NodePort, LoadBalancer” 강의는 무료인가요?
네 — “서비스 유형: ClusterIP, NodePort, LoadBalancer” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kubernetes Basics 강의 전체를 잠금 해제할 수 있습니다. Kubernetes Basics 강의에는 총 4개의 강의가 포함되어 있습니다.
“서비스 유형: ClusterIP, NodePort, LoadBalancer”에서 뭘 배우나요?
Kubernetes 클러스터 내부와 외부에 서비스를 노출하는 다양한 방법을 배우세요. 브라우저에서 직접 실행하는 실습 코드로 Kubernetes Basics을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Kubernetes Basics을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Kubernetes Basics은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“서비스 유형: ClusterIP, NodePort, LoadBalancer” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Kubernetes Basics 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Kubernetes Basics 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 서비스를 활용한 앱 노출
- 서비스 유형: ClusterIP, NodePort, LoadBalancer
- 외부 액세스를 위한 Ingress
- DNS와 서비스 검색