서비스(Service)

**서비스(Service)**는 쿠버네티스에서 네트워크 서비스를 추상화한 리소스입니다. 서비스는 여러 파드들을 하나의 집합으로 묶어 동일한 서비스를 제공하는 애플리케이션 컴포넌트에 접근할 수 있게 해줍니다. 이를 통해 네트워크 레벨에서 로드 밸런싱, 서비스 디스커버리 등을 쉽게 구현할 수 있습니다.

서비스의 주요 특징

  1. 클러스터 내부 DNS 이름:
  2. 로드 밸런싱:
  3. 서비스 디스커버리:
  4. 클러스터 외부 노출:
  5. 서비스 타입:

서비스의 종류

쿠버네티스에서는 다양한 서비스 타입을 제공합니다:

  • 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

+ Recent posts