1. service
- Service 는 쿠버네티스에 배포한 애플리케이션(Pod)을 외부에서 접근하기 쉽게 추상화한 리소스입니다.
- Pod 은 IP 를 할당받고 생성되지만, 언제든지 죽었다가 다시 살아날 수 있으며, 그 과정에서 IP 는 항상 재할당받기에 고정된 IP 로 원하는 Pod 에 접근할 수는 없습니다.
- 따라서 클러스터 외부 혹은 내부에서 Pod 에 접근할 때는, Pod 의 IP 가 아닌 Service 를 통해서 접근하는 방식을 거칩니다.
- Service 는 고정된 IP 를 가지며, Service 는 하나 혹은 여러 개의 Pod 과 매칭됩니다.
- 따라서 클라이언트가 Service 의 주소로 접근하면, 실제로는 Service 에 매칭된 Pod 에 접속할 수 있게 됩니다.
2. service 의 종류와 구조
+) 강의 자료 이외 추가 자료
서비스는 IP 주소 할당 방식과 연동 서비스등에 따라 크게 4가지로 구별할 수 있다.
- Cluster IP
- Load Balancer
- Node IP
- External name
ClusterIP
디폴트 설정으로, 서비스에 클러스터 IP (내부 IP)를 할당한다. 쿠버네티스 클러스터 내에서는 이 서비스에 접근이 가능하지만, 클러스터 외부에서는 외부 IP 를 할당 받지 못했기 때문에, 접근이 불가능하다.
Load Balancer
보통 클라우드 벤더에서 제공하는 설정 방식으로, 외부 IP 를 가지고 있는 로드밸런서를 할당한다. 외부 IP를 가지고 있기 때문에, 클러스터 외부에서 접근이 가능하다.
NodePort
클러스터 IP로만 접근이 가능한것이 아니라, 모든 노드의 IP와 포트를 통해서도 접근이 가능하게 된다. 예를 들어 아래와 같이 hello-node-svc 라는 서비스를 NodePort 타입으로 선언을 하고, nodePort를 30036으로 설정하면, 아래 설정에 따라 클러스터 IP의 80포트로도 접근이 가능하지만, 모든 노드의 30036 포트로도 서비스를 접근할 수 있다.
ExternalName
ExternalName은 외부 서비스를 쿠버네티스 내부에서 호출하고자할때 사용할 수 있다.
쿠버네티스 클러스터내의 Pod들은 클러스터 IP를 가지고 있기 때문에 클러스터 IP 대역 밖의 서비스를 호출하고자 하면, NAT 설정등 복잡한 설정이 필요하다.
출처: https://bcho.tistory.com/1262 [조대협의 블로그]
필수 링크: https://bit.ly/37BpXiC
12일차 학습 인증샷 :
오늘은 쿠버네티스 실습중 service를 실행해보았다.
서비스는 기존 pod ip로 직접 접근이 안되는 것을 service를 통해 직접 접근이 가능하게 한다.
service는 고정 ip를 가지고 실무에서는 loadnalancer 로 서비스가 송출 되는 거 잊지말자 !
'Study > MLops' 카테고리의 다른 글
[MLops] 220207 패스트캠퍼스 챌린지 15일차 - DVC (0) | 2022.02.07 |
---|---|
[MLops] 220206 패스트캠퍼스 챌린지 14일차 - PVC (0) | 2022.02.06 |
[MLops] 220204 패스트캠퍼스 챌린지 12일차 - Deployment (0) | 2022.02.04 |
[MLops] 220203 패스트캠퍼스 챌린지 11일차 (0) | 2022.02.03 |
[MLops] 220202 패스트캠퍼스 챌린지 10일차 - minikube, Kubectl (0) | 2022.02.02 |
댓글