본문 바로가기
MLOps/Doker & Kubernetes

Udemy CKA 강의 정리 37: Services - Loadbalancer

by 공부하는 무니 2023. 1. 5.
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests  강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.

⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.


이제 서비스의 다른 타입인 Load Balancer를 살펴보겠습니다.

Load Balancer

앞에서 우리는 Nodeport 서비스를 보았습니다. NodePort 서비스는 워커 노드 포트에서 외부 애플리케이션을 사용할 수 있도록 해줍니다.

이제 프론트엔드 애플리케이션으로 초점을 돌리겠습니다. 투표앱과 결과앱이 있습니다. 이제 우리는 이런 파드가 클러스터의 워크 노드에서 호스팅된다는 것을 알고 있습니다. 클러스터에 4개의 워커노드가 있다고 가정해보겠습니다. 그리고 Nodeport 타입의 서비스를 생성하여 외부 유저가 애플리케이션에 액세스할 수 있도록 합니다. Node port 타입 서비스는 노드로 들어오는 트래픽을 수신하고 각 노드에 트래픽을 라우팅하는데 도움을 줍니다.

그런데 애플리케이션에 액세스 할 때 유저에게 어떤 URL을 제공하시겠습니까? IP와 포트를 통해 두 애플리케이션 모두 어디든 액세스할 수 있습니다. 따라서 제공할 수 있는 조합은 투표앱에 4개 조합(IP 와 port 조합), 결과앱에 4개 조합(IP 와 port 조합)입니다.

만약 두 개의 노드에서만 파드가 호스팅 되는 경우에서도 여전히 클러스터에 있는 모든 노드의 IP에 여전히 액세스할 수 있습니다. 투표앱에 대한 파드가 ip가 70, 71로 끝나는 두 노드에만 배치가 되었다고 가정해봅시다. 그 파드들은 여전히 모든 노드에 접근 가능합니다. 이것이 서비스가 구성되는 방식입니다. 따라서 이 URL을 공유하고, 유저가 애플리케이션에 액세스할 수 있도록 합니다.

그러나 이것은 엔드 유저가 정말 원하는 것은 아닙니다. 엔드 유저가 원하는 것은 http://example-vote.com 이나 http://example-result.com과 같은 단일 URL로 프로그램에 액세스하는 것입니다. 이를 달성하는 한 가지 방법은 로드밸런서용 새 VM을 생성하고 로드밸런서를 설치하고 구성하는 것입니다. 적합한 로드 밸런서는 AJ/Proxy, ngingx 같은 것이 있습니다. 그 다음엔, 노드들에 트래픽을 라우팅하도록 로드밸런서를 구성합니다.

이제 외부 로드 밸런싱에 대한 설정을 모두 마쳤습니다. 이제 유지관리를 해야 합니다. 이 작업은 지루할 수 있습니다.

그러나 우리는 Google Cloud, AWS, Azure와 같은 클라우드 플랫폼에서 네이티브 로드 밸런서를 활용할 수 있습니다. Kubernetes는 클라우드 공급자의 네이티브 로드밸런서를 사용하는 것을 지원합니다. 우리가 할 것은 서비스 타입을 설정하기만 하면 됩니다.

GCP, AWS 및 Azure는 확실히 지원됩니다. VirtualBox나 다른 지원되지 않는 환경에서 서비스 타입을 LoadBalancer로 입력했을 경우에는 Node port로 설정한 것과 동일한 효과가 나타납니다. 나중에 데모를 살펴볼 때 클라우드 플랫폼에 애플리케이션을 배포할 것이고, 오늘 배운 내용을 실제로 보게 될 것입니다.

반응형

댓글