본문 바로가기

Kubernetes

쿠버네티스 + wsl2 (하지마세요...)

오랜만에 글을 작성해보려고 합니다.

 

주제는~!

 

당신이 쿠버네티스 클러스터를 구축하고 싶으면 wsl을 피해라...


입니다~!

 

여기까지만 읽어보고 wsl을 포기한다면 이 글은 성공적이네요. 

 

다만 이 포스팅은 지극히 주관적인 저의 견해이며, 아직 식견이 부족한 초보 엔지니어가 작성한 글임을 참고해주세요~

 

 

 

 

만약 납득이 되지 않는다면 제가 이렇게 생각한 이유를 읽어보시길 바랍니다.

 

 

1. 설정해야 할 것이 2배

 

우선 wsl2 환경에다가 쿠버네티스 클러스터를 구축하려면 wsl설정도 같이 해주어야 하는데요.

 

그까짓거 별거 아니라고 생각하실 수도 있습니다.

 

하지만 빠르게 구축해보고 싶으신 분들에게는 그냥 리눅스를 새로 설치하시는게 더 빠를 것입니다. (경험)

 

wsl은 기본적으로 IP를 따로 할당 받게 되는데요. 이게 생각보다 사람을 귀찮게 합니다.

 

그냥 로컬 환경에서만 작업을하고, 쿠버네티스 구성을 하실거면 상관이 없지만, 외부 트래픽이 들어오는 환경에서는 이게 설정이 쉽지만은 않습니다.

 

1. 윈도우 -> wsl 포트포워딩

2. wsl2 mirrored mode

 

이 두가지 방법을 모두 해보긴 했는데, 1은 클러스터 생성부터 잘 안됩니다. 바로 마스터노드와 워커노드 join을 하는 과정에서요.

 

2는 윈도우 시스템과 wsl이 같은 IP를 가지는 설정입니다. 따라서, join역시 수월하게 진행할 수 있습니다. 다만, 이외에도 많은 네트워크 문제를 겪으실 겁니다. (metallb에서 곤욕을 치뤘네요.)

 

그리고 mirrored mode는 윈도우 11에서만 지원을 한답니다.

 

 

 

2. 많지 않은 레퍼런스

 

wsl2에다가 쿠버네티스 클러스터를 구축하다니... 이런 사람이 몇명이나 될까요?

 

물론 wsl이 안좋다는 건 아니지만, 트러블슈팅과정에서 같은 환경을 가진 사람을 찾기가 힘들 것입니다.

 

wsl문제가 아니어도.. 혹시 이게 wsl때문인가? 라는 이상한 생각에 빠지기도 쉽고요. 그리고 진짜 wsl문제인 경우는 더욱 곤란해집니다.

 

레퍼런스가 많은 쪽이 빠르게 트러블슈팅하기 편리하겠죠?

 

 

 

 

3. 당신이 GPU를 사용한다면...?

 

이건 저의 경우인데요. 제가 구축하려던 클러스터는 GPU 작업이 필요로 합니다.

 

다만, 저는 취미인 게임용으로도 활용하는 컴퓨터를 클러스터 노드로 활용할 것이라서 곤란했는데요.

 

이게 왜 문제이냐면, 지원하는 GPU 드라이버와 제 컴퓨터의 GPU 드라이버가 호환되지 않습니다.

 

지원하는 GPU 드라이버를 설치해야, 정상적으로 동작할 수 있지만, WSL의 경우에는 윈도우 시스템에 설치된 그래픽 드라이버를 그대로 사용합니다. (이 부분은 따로 사용할 수 있는 방법이 있을수도 있습니다.)

 

그래서 제 컴퓨터에 설치된 게임용 그래픽 드라이버는 적합하지 않는다는 것이죠.

 

 

그리고 Nvidia의 GPU Operator의 내장되어있는 많은 도구들이 WSL환경에서 설치가 제대로 안됩니다.

 

DCGM 파드가 생성이 안되는 문제가 있는데, 이는 제대로 wsl에서 GPU에 대한 정보를 인식할 수 없는 문제가 있다네요.

 

 

여담

저는 집에있는 데스크탑 2대로 WSL2(Ubuntu 22.04) 환경에서 쿠버네티스 클러스터를 구축하였었는데요. 다만, 그 중 한대가 고장나는 바람에 하나의 컴퓨터를 가지고 쿠버네티스 클러스터를 구축하는 방법을 찾아봤습니다.

 

그 중 하나가 kind인데요.

 

이 kind를 가지고 쿠버네티스 클러스터 환경을 구축하려는데, 역시 WSL 환경에 문제가 있네요.

 

예를 들면 클러스터 생성단계에서 80포트를 wsl에서 이미 사용중이라 사용할 수 없다는 점...

 

 

 

WSL 의도는 좋고 더욱 업데이트 되면 멋진 기능이라 생각이 들지만, 쿠버네티스와는 아직 어울리지는 않는 것 같습니다.

 

윈도우에서 간편하게 리눅스 환경의 작업이 필요한 정도면 아주 좋은 환경이라고 생각됩니다.

 

저도 이러한 뻘짓들을 겪고나니 그냥 우분투 리눅스를 새로 설치했습니다. (설치하자마자 마음이 편안해짐)


 

다음에는 아마 Ubuntu(22.04) + kind + gpu 사용을 위한 설정 세팅에 대해 포스팅할 것 같습니다.