서비스(Service)
**서비스(Service)**는 쿠버네티스에서 네트워크 서비스를 추상화한 리소스입니다. 서비스는 여러 파드들을 하나의 집합으로 묶어 동일한 서비스를 제공하는 애플리케이션 컴포넌트에 접근할 수 있게 해줍니다. 이를 통해 네트워크 레벨에서 로드 밸런싱, 서비스 디스커버리 등을 쉽게 구현할 수 있습니다.
서비스의 주요 특징
- 클러스터 내부 DNS 이름:
- 로드 밸런싱:
- 서비스 디스커버리:
- 클러스터 외부 노출:
- 서비스 타입:
서비스의 종류
쿠버네티스에서는 다양한 서비스 타입을 제공합니다:
- ClusterIP: 클러스터 내부에서만 접근 가능한 가상 IP를 제공합니다.
- NodePort: 클러스터의 각 노드의 지정된 포트로 서비스를 노출시킵니다.
- LoadBalancer: 클라우드 제공자의 로드 밸런서를 사용하여 서비스를 외부로 노출시킵니다.
- ExternalName: 외부 DNS 이름을 클러스터 내의 서비스로 매핑하여 접근할 수 있게 합니다.
서비스 예시
다음은 my-service라는 이름의 ClusterIP 서비스를 정의하는 예시입니다:
yaml
코드 복사
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 8080
- selector: app: MyApp 레이블이 지정된 모든 파드들을 이 서비스에 연결합니다.
- ports: 서비스가 사용할 포트를 지정하고, 이 포트로 들어오는 트래픽을 파드의 targetPort로 전달합니다.
서비스의 중요성
서비스는 쿠버네티스에서 애플리케이션의 네트워크 접근성을 관리하는 핵심적인 역할을 합니다. 서비스를 올바르게 설정하면 애플리케이션의 확장성을 높이고, 네트워크 관리를 간편하게 할 수 있습니다.
'IT > kubernetes[k8s]' 카테고리의 다른 글
Taints와 Tolerations (1) | 2024.11.15 |
---|---|
Kubernetes Ingress (0) | 2024.11.14 |
쿠버네티스 - 노드 (1) | 2024.11.08 |
클러스터의 개념 (0) | 2024.11.07 |
Deployment, ReplicaSet, DaemonSet, StatefulSet (0) | 2024.11.06 |