카테고리 없음

[Kubernetes] Services - 2. Cluster IP

broook 2023. 4. 19. 16:56

Cluster IP 는 k8s service component의 한 종류입니다. pod들을 그룹핑 하고 그룹안에 속한 pods에 접근할 수 있는 interface를 제공합니다.

 

k8s환경에서 web application을 실행해야 하는 하는 상황이며 크게 front, back, db 부분으로 분리되어있다고 가정하고

이런 상황에서 통신이 어떻게 이루어 지는지에 대해 생각해봅시다.

[상황]

1. web application을 돌려야 하는 상황이고 크게 front, back, db app으로 분리되어있다.

2. user는 front와 통신 front 는 back과 통신 back은 db와 통신해야한다. 

3. 각 pod끼리 통신할 수도 있겠지만 pod의 ip는 유동적이다. 때문에 고정 ip로 통신할 수는 없고

자동으로 관리하기엔 복잡해진다.

4. 맡은 기능에 따라 pod들을 그룹핑하는 객체를 하나 만들고 이 객체들끼리 통신하도록 하면 문제가

간단해진다. Cluster IP service가 하는일이 이것이다.

 

 

yaml file

services는 v1 apiVersion을 사용하며 service는 default가 Cluster IP 이기 때문에 type을 따로 설정 안해주면 Cluster IP로 설정됩니다.

selector 필드를 통해 어떤 pods 들을 그룹핑 할 것인지 정할 수 있습니다.

apiVersion: v1
kind: Service
metadata: 
	name: back-end
spec:
	type: ClusterIP
    ports:
      -  targetPort:80
      -  Port: 80
    
    selector:
    	app: myapp
        type: back-end