서비스, 로드밸런싱, 네트워킹

생성일
Mar 6, 2022 09:46 AM
태그

서비스

파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법.
 
파드는 고유한 IP 주소를 갖지만, 디플로이먼트등 외부에서 파드를 종료 후 새로 생성할 수 있다. 이러한 경우 때문에 파드의 IP 주소를 고정적으로 특정할 수 없음.
쿠버네티스에서 서비스는 파드의 논리적 집합과 그것들에 접근할 수 있는 정책을 정의하는 추상적 개념이다. 서비스가 대상으로 하는 파드의 집합은 일반적으로 셀렉터가 결정한다.
 

서비스 정의

예를 들어, 각각 TCP 포트 9376에서 수신하는 app=Myapp 레이블을 갖는 파드세트의 서비스는 다음과 같이 정의할 수 있다.
apiVersion: v1
kind: Service
metadata:
	name: my-service
spec:
	selector:
		app: MyApp
	ports:
		- protocol: TCP
			port: 80
			targetPort: 9376
 

서비스 퍼블리싱

애플리케이션 중 일부는 서비스를 클러스터 밖에 위치한 외부 IP 주소에 노출하고 싶은 경우가 있을 것이다.
쿠버네티스 ServiceTypes는 원하는 서비스 종류를 지정할 수 있도록 해준다. 기본값은 ClusterIP.
  • ClusterIP
    • 서비스를 클러스터 내부 IP에 노출시킨다.
    • 이 값은 클러스터 내부에서만 서비스에 도달할 수 있다.
  • NodePort
    • 고정 포트로 각 노드의 IP에 서비스를 노출시킨다.
    • <NodeIP>:<NodePort> 를 요청하여, 클러스터 외부에서 NodePort 서비스에 접속할 수 있다.
  • LoadBalancer
    • 클라우드 공급자의 로드밸런서를 사용하여 서비스이 외부에 노출시킨다.
    • 외부 로드 밸런서가 라우팅되는 NodePort와 ClusterIP가 자동으로 생성된다.
  • ExternalName
    • DNS 이름에 대한 서비스에 매핑한다.
 
인그레스를 사용하여 서비스를 노출할 수도 있다.
 

인그레스

인그레스는 외부에서 서비스로 접속이 가능한 URL, 로드 밸런스 트래픽, SSL / TLS 종료 그리고 이름-기반의 가상 호스팅을 제공하도록 구성할 수 있다.
 
 

Loading Comments...