1. 서비스
1.1. 정의
pod 집합에서 실행 중인 애플리케이션을 네트워크 서비스로 노출하는 추상화
방법이다.
1.2. 종류
● Cluster IP
Cluster IP는 클러스터 안에 있는 다른 Pod들이 접근할 수 있도록 IP를 할당한다. 내부
IP만을 할당하기 때문에 클러스터 외부에서는 접근이 불가능하다.
apiVersion: v1 kind: Service metadata: name: my-internal-service spec: selector: app: my-app type: ClusterIP ports: - name: http port: 80 targetPort: 80 protocol: TCP |
● NodePort
NodePort는 고정 포트로 Pod이 배포된 노드들의 IP에 서비스를 노출시킨다. NodePort
서비스는 ClusterIP 서비스를 자동으로 생성한다. NodeIP:NodePort를 요청하여 클러스터
외부에서 NodePort 서비스에 접근할 수 있다.
apiVersion: v1 kind: Service metadata: name: my-nodeport-service spec: selector: app: my-app type: NodePort ports: - name: http port: 80 targetPort: 80 nodePort: 30036 protocol: TCP |
● LoadBalancer
로드 밸런서는 서비스를 외부에 노출시키는 표준 방법이다. 로드밸런서는 따로 물리
장비(컴퓨터)가 필요하며, 클라우드 컴퓨팅 환경에서는 벤더사가 제공하는 로드밸런서를
사용하면 된다.
● Ingress
쿠버네티스의 서비스 종류 중 하나가 아닌, 서비스들을 묶는 하나의 스마트 라우터 역할을 수행한다. 즉 하나의 LoadBalancer에서 여러 서비스를 노출할 수 없는 한계를 해결하는 것이 Ingress이다.