Skip to main content Link Menu Expand (external link) Document Search Copy Copied

kind:Service 와 kind:Deployment 의 차이

ServiceDeployment는 Kubernetes(K8s)의 핵심 구성요소이지만, 그들의 목적과 기능이 크게 다릅니다. 다음은 두 오브젝트의 주요 차이점입니다:

  1. 목적:
    • Service: Service의 주요 목적은 Pod의 그룹에 대한 네트워크 접근을 제공하는 것입니다. 즉, 서비스는 하나 이상의 Pod에 안정적인 IP 주소와 DNS 이름을 제공하고, 네트워크 트래픽을 해당 Pod로 라우팅하는 기능을 합니다.
    • Deployment: Deployment의 주요 목적은 애플리케이션의 상태를 선언적으로 관리하고 업데이트하는 것입니다. 이는 Pod의 원하는 수를 유지하거나 롤링 업데이트와 같은 Pod 업데이트 전략을 관리하기 위해 사용됩니다.
  2. 기능:
    • Service:
      • 특정 Pod에 대한 안정적인 IP 주소와 DNS 이름 제공.
      • 선택기(selector)를 사용하여 Pod를 식별하고 트래픽을 해당 Pod로 라우팅.
      • 내부 및 외부 트래픽을 위한 다양한 서비스 유형 제공 (예: ClusterIP, NodePort, LoadBalancer).
    • Deployment:
      • Pod와 ReplicaSet의 생성, 업데이트 및 삭제를 관리.
      • 롤링 업데이트, 롤백 및 다른 업데이트 전략 제공.
      • 애플리케이션의 확장 및 축소를 위한 ReplicaSet 관리.
  3. 연관성:
    • 일반적으로 Deployment로 생성된 Pod는 Service에 의해 노출되어 외부로부터 접근이 가능하게 됩니다. 즉, Deployment로 애플리케이션의 인스턴스를 관리하고, Service를 사용하여 해당 인스턴스에 네트워크 접근을 제공하는 패턴이 흔히 사용됩니다.

요약하면, Service는 네트워크의 관점에서 Pod에 접근하기 위한 방법을 제공하며, Deployment는 애플리케이션의 라이프사이클을 관리하기 위한 방법을 제공합니다.