질문/조언질답게시판

쿠버네티스가 요즘 뜨는거 같은데,

쿠버네티스 컨테이너 안에, 리눅스 넣고, 웹호스팅하면 속도는 어떤가요?

도커나 쿠버네티스 없이,

바로 컴에 다이렉트로 리눅스에 웹호스팅 서비스 하는 것보다 느릴 것 같은데요.

예를 들어 컨테이너들 때문에 핑이 더 올라간다거나 하는거요.

물론 서버 관리 차원에서는 도커, 쿠버가 더 좋구요.

속도 차이 문의 입니다.

 

구글, 아마존 같은 클라우드는

쿠버네티스와 도커 사용해도 자본력으로 속도를 끌어올리겠지만,

소규모 자체 서버 기준에서요.

 

  • ?
    웹호스팅 운영자 입장에서는 굳이 도커나 쿠버네티스를 쓸 이유는 없어요.
    전통적인 방식으로 2c 4t 가상서버 한대 기준 100~200명을 넣을 수가 있거든요..(....)

    뭐.. 그건 그렇다치고... 사실 속도 차이는 사실상 없다고 보는 게 맞아요. 문제가 발생한다면 일부 고객의 웹사이트에서 부하가 생길 경우 빼고요.
  • ? ?
    2c 4t 가 뭐에요?
    2cpu 4테라 ssd 인가요?
  • ? profile
    2코어 4스레드를 의미합니다.
  • profile
    아예 쿠버네티스 호스팅을 서비스하신다면 모를까, 쿠버네티스로 웹호스팅 서비스를 할 필요는 없을것 같습니다.

    마치 PC방에서 돈 내면 컴퓨터로 게임이건 웹서핑이건 다 할수 있는것을(쿠버네티스) 굳이 게임이라는 목적으로 제한을 둔 것과 같습니다.(쿠버네티스로 돌아가는 웹호스팅)
  • profile profile
    불특정 다수에게 서비스하는 웹호스팅이라면 일부러 제한을 둘 필요가 있을 수도 있지요. 사용자들에게 ssh, git, rsync 같은 편의기능을 제공하면서도 자기 계정 밖을 함부로 들쑤시고 다니지 못하게 하려면 컨테이너 기술을 사용하는 것도 하나의 방법입니다. 요즘 컨테이너 관리툴이 잘 되어 있어서 퍼미션이나 chroot 등으로 관리하는 것보다 편리하기도 하고요. 웹호스팅과 매니지드 VPS의 중간쯤 된다고 할까요? ㅎㅎ
  • profile profile
    오 그건 그렇긴 하네요.
  • ?

    K8s 와 베어메탈의 속도차이를 물어보셨는데, 이론적으로는 베어메탈이 더 빠르겠지요. 컨테이너라는 레이어가 없으니까요. 그런데 이건 이론적인 것이고, 실제로 웹서버를 돌리려면 dependencies 들이 많은데, 이들을 모두 한곳에 모아놓으면 어떠한 문제가 발생할지 모르고, 이들 하나하나가 어떻게 리소스를 관리하냐에 따라서 속도차이가 많이 납니다. 쿠버네티스가 진정 빛을 발하는 곳이 리소스 관리죠.

    실제로 저희 회사에서 EC2 로 Jenkins 를 돌렸었는데요. 쓰다가 느려져서 XLarge 까지 올렸는데도 속도개선이 없었습니다. 디버깅해서 이유를 찾아내면 되지만, 그 리눅스박스를 누가 어디까지 어떻게 무엇을 설치했는지 기억 못하더군요. 결국 CTO 가 저한테 쿠버네티스로 Jenkins 를 구현하라고 했죠. 쿠버네티스 + DNS 서비스 1개 + Jenkins 설치하는데 medium 2개만 써도 Jenkins 가 날라다니더군요. 그리고 직접 master/agent 일일히 구현할 거 없이 쿠버네티스만 알면 사용이 어렵지 않았죠. 물론 쿠버네티스를 배워야 한다는게 가장 큰 단점이지만요 (살면서 배운것 중에서 가장 스케일이 큼요). 쿠버네티스뽕을 맛본 CTO 가 요즘 저에게 이것저것 한번 다 containerize 해보라고 일 시킵니다. 저도 쿠버네티스에 반해서 이것저것 배우긴 하는데 아직 표면적인것만 알고요.

    적어주신 질문에 답이 있는 것 같습니다. "관리는 도커, 쿠버가 더 좋구요". 그 관리가 어떻게 되냐에 따라서 속도와도 연결이 되니까요. 진짜 포인트는, 쿠버네티스의 리소스 관리목표는 스케일링입니다. (보통) 클라우드 환경에서 재빨리 스케일 업/다운이 가능한게 쿠버네티스의 매력이지요. 리소스 관리는 스케일링에 대비한 뽀-나스구요. 쿠버네티스를 제대로 돌리려면 작은 서버 2개정도는 기본으로 필요하니, 정말 큰 스케일링이 필요한 웹사이트가 아니면 올바른 사용법은 아닌 것 같습니다. DB, 파일 스토리지 그리고 stateful 한 프론트앤드의 독립화 및 연결이 필요한데 시작부터 쉽진 않을 듯요.