노드포트 서비스는 서비스에서 설정된 포트가 모든 노드에서 개방되어 있어야 하기 때문에 로드밸런서 서비스만큼 유연하지는 않다. 또한 다중 노드 클러스터에서 로드밸런싱 효과를 얻을 수 없다는 것도 단점이다. 노드포트 서비스는 지원하는 분산 수준도 로드밸런서 서비스와 차이가 있다. 이 때문에 K3s나 도커 데스크톱에서는 잘 동작하지만, Kind에서는 그렇지 못하다. 예제 3-4는 노드포트에 대한 정의다.

    예제 3-4 web-service-nodePort.yaml, 노드포트 서비스의 정의 예

    apiVersion: v1
    kind: Service
    
    metadata:
      name: numbers-web-node
    
    spec:
      ports:
        - port: 8080         # 다른 파드가 서비스에 접근하기 위해 사용하는 포트
          targetPort: 80     # 대상 파드에 트래픽을 전달하는 포트
          nodePort: 30080    # 서비스가 외부에 공개되는 포트
      selector:
        app: numbers-web
      type: NodePort         # 노드의 IP 주소를 통해 접근 가능한 서비스
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.