Kubernetes 이야기

Kubernetes와 Edge computing 본문

Kubernetes/일반

Kubernetes와 Edge computing

kmaster 2022. 12. 9. 21:42
반응형

오늘날 엣지 컴퓨팅은 기술 환경에서 흔한 일이다. POS 시스템에서 교통 정류장의 안내판, 감시 카메라에 이르기까지 모든 곳에 있는 것처럼 보인다. 심지어 메타버스로 들어갈 수 있는 가상 현실 헤드셋에도 있다.

 

에지 컴퓨팅 은 기존의 중앙 집중식 데이터 센터/클라우드 외부에서 사용자 또는 데이터 소스 또는 그 근처에서 발생하는 컴퓨팅이다. 주로 대기 시간에 민감한 애플리케이션에 더 나은 사용자 경험을 제공하거나 로컬 IoT 장치에서 데이터를 수집 및 처리하여 더 빠른 데이터 기반 의사 결정을 안내하는 데 사용된다.

 

컴퓨팅 서비스를 에지 위치 또는 장치에 더 가깝게 배치함으로써 사용자는 더 빠르고 안정적인 서비스의 이점을 누리는 반면 회사는 지연 시간에 대한 걱정 없이 데이터를 더 빠르게 처리하고 애플리케이션을 지원할 수 있는 이점을 얻는다.

 

Gartner에 따르면

 

"기업에서 생성된 데이터의 약 10%는 기존의 중앙 집중식 데이터 센터 또는 클라우드 외부에서 생성되고 처리된다. Gartner는 2025년까지 이 수치가 75%에 이를 것으로 예측한다"

라고 되어 있다.

 

또한,  Linux Foundation 의 2021 State of the Edge 보고서 는 2021년부터 2028년까지 에지 컴퓨팅 시장이 전년 대비 70% 증가할 것으로 예상했다.

 

https://www.cncf.io/blog/2022/08/18/kubernetes-on-the-edge-getting-started-with-kubeedge-and-kubernetes-for-edge-computing/

Edge Computing의 장점

비용절감

많은 양의 데이터가 포함된 특정 워크로드의 경우 클라우드에서 해당 데이터를 처리하는 데 필요한 대역폭 비용을 지불하는 것보다 에지에서 데이터를 처리하는 것이 더 효율적일 수 있다. 경우에 따라 자체 서버의 부하를 줄이기 위해 사용자의 컴퓨터 또는 스마트폰과 같은 클라이언트 장치에서 계산을 수행할 수도 있다.

 

향상된 성능

컴퓨팅 리소스를 사용자에게 더 가깝게 이동하면 대기 시간이 줄어들고 결과적으로 사용자는 더 나은 성능을 얻을 수 있다.

 

향상된 신뢰성

에지 컴퓨팅을 적절하게 활용하도록 설계된 애플리케이션은 최종 사용자에게 더 안정적이다. 데이터 센터에 대한 네트워크 연결이 끊어지더라도 IoT와 같은 에지 컴퓨팅 리소스를 사용하여 중요한 작업을 계속 수행할 수 있다.

 

보안 및 개인 정보 보호

더 많은 데이터를 중앙 집중식 데이터 센터에서 멀리 떨어진 에지에 보관함으로써 기존 아키텍처에 비해 보안 침해의 폭발 반경을 줄일 수 있다.  반면에 많은 수의 에지 장치를 보유하면 적절한 보안 모범 사례를 따르지 않을 경우 경우에 따라 보안이 더욱 어려워질 수도 있다.

 

에지 장치란 무엇인가?

에지 장치는 IoT 게이트웨이, 산업용 컨트롤러, 스마트 디스플레이, POS 터미널, 자판기, 로봇, 드론과 같은 물리적 하드웨어다. 

 

Edge Computing의 주요 사용 사례를 무엇인가?

  • 인공 지능/머신 러닝 수명 주기의 여러 단계 - 데이터 수집, 프로덕션에 앱 배포, 새로운 데이터가 수집될 때 작업 모니터링 등.
  • 자율주행차
  • 증강현실/가상현실
  • 스마트 시티
  • IoT : 의료 기기와 같은 의료 자산, 웨어러블, 스마트 기기, 스마트 시티
  • 모바일/통신 : 5G, 6G 등

IoT 와 Edge Computing의 관계는?

IoT는 사용할 수 있도록 처리 및 분석해야 하는 많은 양의 데이터를 생성한다. 에지 컴퓨팅은 컴퓨팅 서비스를 최종 사용자 또는 IoT 장치와 같은 데이터 소스에 더 가깝게 이동시킨다.

에지 컴퓨팅은 IoT 장치의 데이터 및 컴퓨팅 요구 사항에 대한 처리 및 저장의 로컬 소스로, IoT 장치와 해당 장치가 연결된 중앙 IT 네트워크 간의 통신 대기 시간을 줄인다.

에지 컴퓨팅을 사용하면 연결된 IoT 장치에서 생성되는 대량의 데이터를 활용할 수 있다. 분석 알고리즘과 기계 학습 모델을 에지에 배포하면 데이터 처리가 로컬에서 발생하고 신속한 의사 결정에 사용될 수 있다.

 

Edge Computing 의 어려움점은 무엇인가?

에지 컴퓨팅의 위치에는 현장 IT 인력이 부족할 수 있다. 그리고 이러한 위치는 제한적이거나  인터넷 연결이 없을 수 있다. 이러한 위치의 구성은 종종 비용상의 이유로 단일 상용 서버를 기반으로 하거나 경우에 따라 고가용성이 중요한 경우 최대 3대의 서버를 기반으로 한다.

에지에 대한 확장 가능한 중앙 집중식 관리가 없다는 것은 조직이 수천 개의 위치가 될 수 있는 위치의 운영을 보장하기 위해 주기적으로 현장 엔지니어를 파견해야 한다는 것을 의미한다. 단 하나의 서버로 구성된 위치는 업그레이드가 도착할 때마다 다운타임의 지속적인 위험에 철할 수 있고, 극단적인 경우 금전적 손실로 직결될 수 있다.

 

Edge에서 Kubernetes를 사용하는 이유는 무엇인가?

쿠버네티스의 강점은 공통 네트워크에 연결된 수백, 아니 수천 개의 노드에 분산된 애플리케이션을 쉽게 지원할 수 있는 프레임워크이라는 점이다.

기술 및 비즈니스 관점에서 에지 컴퓨팅에 Kubernetes를 사용하면 몇 가지 이점이 있다. 기술적인 관점에서 볼 때 K8s는 이미 여러 데이터 센터에서 작동하고 에지 컴퓨팅과 유사한 문제를 처리하도록 설계되었다. 결과적으로 다중 지역 데이터 센터에서 다중 에지 위치로 이동하는 것은 그리 큰 문제가 아니다.

비즈니스 관점에서 에지 컴퓨팅 플랫폼으로 Kubernetes를 선택하면 많은 공통 기능을 구축하는 데 드는 노력을 장기적으로 줄이고 프로젝트를 유지하고 안전하게 유지할 수 있는 대규모 커뮤니티의 이점을 얻을 수 있다. 또한 쿠버네티스에 익숙한 개발자가 많아 채용 및 온보딩이 더 쉬워지는 이점도 있다.

쿠버네티스가 컨테이너 인프라의 사실상의 표준이 되면서 에지를 위한 대규모 컨테이너 관리를 처리하기 위한 차세대 솔루션 및 에코시스템의 필요성이 더욱 명백해졌다.

K8을 사용하면 클러스터의 복원력이 실제로 더 좋고 가벼워질 수 있다.

 

Edge에서 Kubernetes를 사용 시 고려할 사항은?

  • 에지 장치에는 완전한 기본 Kubernetes 배포를 지원하기에 충분한 하드웨어 리소스가 없는 경우가 많다.
  • Kubernetes는 데이터 센터를 대상으로 하는 기술이다. 사용 중인 모든 기계가 같은 영역에 있을 때 가장 잘 작동한다. 여러 지역에 시스템을 분산하기 시작하면 물리적으로나 소프트웨어 측면에서 네트워킹이 까다로울 수 있다.
  • Modbus, UPC UA 또는 Bluetooth와 같이 TCP/IP를 사용하지 않는 프로토콜에 대한 기본 지원이 없다.

이러한 문제를 해결하기 위해 여러 회사에서 엣지 컴퓨팅을 위한 몇 가지 다른 Kubernetes 배포판을 만들었다. 주요 옵션은  K3s  MicroK8s 및  KubeEdge 이다. 

 

K3S

K3S는 CNCF(Cloud Native Computing Foundation)에서 인증한 Kubernetes 배포판으로, Kubernetes 운영 공간의 크기를 줄임으로써 Kubernetes를 에지 컴퓨팅에 사용할 수 있도록 하기 위한 것이다. K3S는 ~50MB의 디스크 공간이 필요하고 ~300MB의 RAM을 사용 하여 단일 노드 클러스터를 작동한다.

반면 Kubernetes 는 노드당 2GB의 RAM을 권장하고, 저장소 요구 사항은 Kubernetes 클러스터의 용도 및 구성에 따라 달라진다. 

K3S는 X86_64, ARM64 및 ARMv7에서 실행가능하다. ARM 지원을 통해 Raspberry PI 장치 팜을 사용하여 K3S 클러스터를 실행할 수있다.  

 

https://docs.k3s.io/architecture

MicroK8s

MicroK8s는 42 개의 서로 다른 버전의 Linux에 설치할 수있는 단일 도킹 패키지로 제공된다. 작은 디스크 공간과 메모리로 MicroK8s는 데스크톱, 서버, 클라우드 또는 IoT 장치에서 Kubernetes를 시작하는 효율적인 방법을 제공한다.

 

다음은 MicroK8S와 K3S를 비교한 자료이다.

https://microk8s.io/compare

 

KubeEdge

KubeEdge는 다양한 에지 장치에서 실행되는 분산 애플리케이션을 지원하기 위한 오픈 소스 프로젝트이다.

 

블루투스를 통해 에지 노드와 통신하는 원격 센서 장치와 같이 에지 장치가 노드와 분리되면 K3S나 microK8S 경우에는 이 상황을 즉시 처리하는 데 어려움을 겪을 것입니다. 반면 KubeEdge는 마더보드에 직접 연결된 센서, 카메라 및 기타 유형의 에지 장치가 없는 에지 노드와 함께 작동하도록 설계되었다. KubeEdge 아키텍처는 에지 장치가 호스트 하드웨어와 분리된 상황을 지원하기 위한 것이다.

 

KubeEdge가 작동하는 방식은 클라우드에 메인 컨트롤러 허브가 있다는 것이다. 에지의 노드는 모든 노드가 Kuberenetes 클러스터에 가입하는 것과 매우 유사한 방식으로 주 컨트롤러에 자신을 등록한다. 그러나 관리가 kubeadm CLI 도구를 사용하여 수행되는 Kubernetes와 달리 KubeEdge에서는 특수한 keadm 실행 파일을 사용한다.

 

https://kubeedge.io/en/docs/kubeedge/

 

Edge Computing에서 Kubernetes 사용 시 고려사항

Kubernetes의 필수적인 가치 제안 중 하나는 애플리케이션 복제 및 이중화를 자동화한다는 것입니다. 이러한 기능은 

Kuberenetes는 일반 노드로 가득 찬 데이터 센터에서 애플리케이션을 실행하는 강력한 기술이다. 하지만 엣지 컴퓨팅은 다릅니다. 에지에서 실행되는 노드는 일반적이지 않고 구체적이다.

예를 들어 교통 카메라를 생각해보자.  교통 카메라의 이중화를 보장하는 유일한 방법은 백업 카메라가 기본 카메라 바로 옆에 설치되어 있는지 확인하는 것이다. 신용카드 리더기도 동일하다. 식료품점의 계산대에 서 있는데 신용 카드 리더기가 작동하지 않는다고 상상해보자.  판독기가 작동하는 다른 계산대로 가라는 지시를 받아야 한다. 복제 및 중복성은 장치 수준이 아닌 계산대 수준에 존재한다. 지정된 계산대에서 에지 장치 간에는 복제 및 중복성이 없다.

엣지 컴퓨팅의 세계에서 설계자는 Kuberentes, K8S 또는 KubeEdge를 실행하든 상관없이 이러한 부분을 고려해야 한다.

 

Raspberry Pi에서 K3S 또는 KubeEdge를 실행하는 것이 적합하다. Raspian 운영 체제는 Kubernetes를 설치하고 실행하는 데 필요한 모든 것을 수용할 수 있다. 그러나 iOS 또는 Android 기기에서 K3S 또는 KubeEdge를 실행하는 것은 정말 어려울 수 있다.

또한, 컨테이너를 실행하려는 경우 상황이 훨씬 더 복잡해진다. 컨테이너는 운영 체제에 밀접하게 연결되어 있다. 의도한 에지 노드에 하나의 누락된 라이브러리가 있으면 많은 프로그래밍 문제가 발생할 수 있다.

 

중요한 점은 Kubernetes 클러스터에서 모든 에지 장치를 실행하려면 어떤 일이 있어도 최소한의 노력으로 Linux 컨테이너를 실행할 수 있어야 한다는 것이다. 그렇게 할 수 없다면 일부 유형의 데이터 수집기와 다시 통신하는 HTTP 클라이언트가 내장된 장치용 사용자 지정 에이전트를 작성하는 것이 좋다.

미래에 Linux 컨테이너는 부엌에 있는 냉장고나 주머니에 있는 휴대전화에서 실행될 수 있지만 그 때가 오기 전까지는 검증된 구현을 사용하여 에지에서 Kubernetes를 실행하는 것이 좋다.

 

 

참고

https://www.cncf.io/blog/2022/08/18/kubernetes-on-the-edge-getting-started-with-kubeedge-and-kubernetes-for-edge-computing/

https://www.gartner.com/smarterwithgartner/what-edge-computing-means-for-infrastructure-and-operations-leaders

https://www.redhat.com/en/topics/edge-computing

https://stateoftheedge.com/reports/state-of-the-edge-report-2021/?utm_source=thenewstack&utm_medium=website&utm_content=inline-mention&utm_campaign=platform 

https://training.linuxfoundation.org/blog/opportunities-and-challenges-in-edge-computing-under-kubernetes/

반응형

'Kubernetes > 일반' 카테고리의 다른 글

GitOps의 장단점  (0) 2023.01.10
Ingress vs Service Mesh  (0) 2022.12.28
Data Prepper  (0) 2022.11.22
OpenSaerch 설치  (0) 2022.11.19
Clusterpedia로 멀티 클러스터 조회하기  (0) 2022.11.12
Comments