kubernetes service 객체

EBAB!·2023년 7월 22일
0

kubernetes

목록 보기
6/9

pod를 생성하고 minikube dashboard에서 pod IP를 확인할 수 있습니다.
다만 pod 특성상 생성과 삭제가 종종 일어나고 그 때 마다 IP가 바뀌게 됩니다.
그래서 service를 통해 그룹을 만듭니다.

Service 객체

service는 pod를 그룹화하고 변경되지 않는 공유 주소 IP를 제공합니다. 이런 이유로 앞서 간단히 설명할 때 service를 pod의 논리적인 집합으로 설명했었습니다.
여러 pod를 service로 묶고, service는 불변하는 IP에 연결할 수 있도록 합니다. 그리고 이 주소를 외부로 노출시킵니다.

Service 생성

다음 명령어를 통해 service를 생성합니다.

$ kubectl expose deployment <deployment_name> --type=LoadBalancer --port=8080

expose 명령어를 통해 service를 생성합니다. 노출시키는 것이 service의 목표라 생각하니 직관적인 명령어로 느껴지네요.
포트 옵션은 당연히 노출 포트로 볼 수 있고, type 옵션은 종류가 있습니다.

type 옵션 종류

  • ClusterIP : 디폴트 옵션으로 클러스터 내부에서만 연결할 수 있는 타입입니다.
  • NodePort : deployment를 실행하고 있는 워커 노드의 IP 주소를 통해 노출됩니다.
  • LoadBalancer : 클러스터가 실행되는 인프라에 있어야 하는 로드밸런서를 활용하고 이름에 맞게 트래픽 분산 역할도 합니다. minikube와 AWS에선 인프라에 있는 로드밸런서를 지원합니다.

생성되었다면 kubectl get services를 통해 확인이 가능하고, minikube service <service_name>을 통해 서비스의 IP와 같은 정보를 터미널에서 확인하는 동시에 브라우저도 자동으로 열립니다.

profile
공부!

0개의 댓글