인프라

쿠버네티스(Kubernetes) 서비스란?

유일리 2024. 1. 12. 16:58
쿠버네티스 서비스란?

 

만들어진 Pod끼리 통신하기 위해서는 서비스가 필요하다. 서비스는 쿠버네티스에 배포한 애플리케이션(Pod)을 접근하기 쉽게 추상화한 리소스이다.


Service를 실습해보자.

1. YAML 파일 생성

vi service.yaml

 

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: my-nginx
  labels:
    run: my-nginx
spec:
  type: NodePort # Service 의 Type 을 명시하는 부분입니다. 자세한 설명은 추후 말씀드리겠습니다.
  ports:
  - port: 80
    protocol: TCP
  selector: # 아래 label 을 가진 Pod 을 매핑하는 부분입니다.
    app: nginx

 

2. 적용 및 조회

kubectl apply -f service.yaml

 

NodePort라는 type을 사용했기 때문에, minikube라는 클러스터 내부에 배포된 서비스에 클러스터 외부에서 접근할 수 있었다. 접근하는 IP는 Pod이 떠있는 노드(머신)의 IP를 사용하고, port는 할당받은 포트를 사용한다. ClusterIP라는 type은 고정된 IP, PORT를 제공하지만, 클러스터 내부에서만 접근할 수 있는 대역의 주소가 할당된다.

curl -X GET $(minikube ip):<PORT>