본문 바로가기
K8S

service와 clusterIP의 관계에 대해 알아보자

by Rainbound-IT 2024. 12. 21.
반응형

Kubernetes의 Service PortIP는 클러스터 내부에서 동작하는 네트워크 환경과 밀접하게 연관되어 있습니다. 이를 Cluster PortCluster IP라고 볼 수 있지만, 약간의 세부적인 이해가 필요합니다.


1. Service IP와 Cluster IP

  • Service IP는 Kubernetes의 ClusterIP라고도 불립니다.
    • ClusterIP는 Kubernetes 클러스터 내에서 서비스에 접근하기 위한 고정된 IP 주소입니다.
    • 클러스터 내부에서만 접근 가능하며, 외부에서는 직접 접근할 수 없습니다(ClusterIP 타입의 Service인 경우).
    • 이 IP는 클러스터의 네트워크 CIDR(예: 10.x.x.x) 범위 내에서 자동으로 할당됩니다.
    • 클라이언트가 Service에 요청을 보낼 때 사용하는 주소입니다.

예: ClusterIP 타입의 Service

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: ClusterIP
  selector:
    app: my-app
  ports:
    - port: 80       # Service Port
      targetPort: 8080 # Pod Port
  • 위 예제에서:
    • Service IP는 Kubernetes가 자동으로 할당한 ClusterIP입니다.
    • 클러스터 내부에서 10.x.x.x:80으로 접근 가능.

2. Service Port와 Cluster Port

  • Service Port는 Service에 정의된 포트입니다.
    • 클라이언트가 Service에 요청할 때 사용하는 포트입니다.
    • 이 포트는 ClusterIP와 함께 사용되어 Service의 엔드포인트로 작동합니다.
  • Cluster Port라는 개념은 Kubernetes에서 명시적으로 사용되지 않지만, Service Port는 클러스터 내부에서 통신을 위한 포트로 간주할 수 있습니다.

Service Port와 Target Port

  • Service Port는 Service에서 사용되는 포트이고, Target Port는 Service가 연결하는 Pod의 포트를 의미합니다.
  • Service Port와 Target Port는 다를 수 있습니다:
    • 클라이언트는 Service Port로 요청을 보내고,
    • kube-proxy가 요청을 받아 Target Port로 전달합니다.

3. ClusterIP와 NodePort의 차이

  1. ClusterIP:
    • 기본 Service 타입.
    • 클러스터 내부에서만 접근 가능.
    • IP는 클러스터 CIDR에서 자동 할당.
  2. NodePort:
    • 클러스터 외부에서 접근 가능.
    • 각 노드의 고정된 포트를 통해 트래픽이 Service로 전달됩니다.
    • NodePort는 30000~32767 범위에서 할당됩니다.

4. 결론

  • Service IP는 Kubernetes의 ClusterIP와 동일한 개념입니다.
    • 클러스터 내부에서 서비스에 접근하기 위해 사용되는 고유 IP입니다.
  • Service Port는 클라이언트가 Service로 트래픽을 보낼 때 사용하는 포트입니다.
    • 이를 넓은 의미에서 Cluster Port로 볼 수 있으나, Kubernetes에서는 공식적으로 Cluster Port라는 용어를 사용하지 않습니다.
    • Service Port는 ClusterIP와 함께 클러스터 내부에서 Pod으로의 트래픽을 라우팅하는 역할을 합니다.
반응형

댓글