쿠버네티스(Kubernetes) 플랫폼 장점과 단점, 도대체 왜 사용하는걸까?
결론부터 이야기하면 쿠버네티스(Kubernetes)를 사용하는 이유는 "자동화"가 가능하기 때문입니다. 보통 가상머신을 사용할때 머신이 종료되면 다시 실행시키기가 어려웠는데 쿠버네티스는 그걸 가능하게 합니다. 예를 들면 5개의 컨테이너를 가지고 있다고 가정해봅니다. 컨테이너는 컴퓨터본체라고 생각하시면 이해하기가 편하실겁니다. 컴퓨터 안에 독립적인 컴퓨터가 5대가 있는것이지요. 5대중 하나의 가상머신 컴퓨터가 전원이 내려가면 쿠버네티스는 그걸 다시 실행시켜서 꺼지지 않게 도와줍니다. 그래서 자동화가 가능한것입니다. 예전에는 이런것이 불가능했었고 컴퓨터를 모두 종류후에 업데이트를 하고나서 전원을 켰는데요. 지금은 독립적으로 전원을 끄지 않고도 각각 업데이트가 가능해졌습니다. 이러한 개념을 머리속에 집어놓고 구체적인 설명을 들으면 모델링하기가 쉬워지실겁니다.
말그대로 위에서 개념을 설명했는데 쿠버네티스는 컨테이너라는 하나의 시스템속에서 프로그램을 배포 및 관리하는것을 자동화하기위해서 태어났습니다. 정말 중요한 핵심이며 많은 장점들이 있습니다. 지금 전세계적으로 많은 팀들이 사용하고 있는데요. 우선 첫번째 장점은 속도가 매우 빠릅니다. 가상머신을 활용하는데 있어서 리소스활용이 매우 중요한데요. 리소스가 뭐냐면 프로그래밍을 다룰때 용량은 반드시 필수고, 가상머신이어도 램, CPU, 하드 등 이런걸 나눠쓰기 때문에 최적화가 잘 되어 있어야합니다. 이 때문에 개발하는 사람은 원하는 자원을 필요한 양만큼 사용 할 수 있기 때문에 너무너무 효율적으로 개발을 할 수가 있는것입니다. 또한 인프라가 되어있기 때문에 공유형식으로도 서로서로 도움을 줄 수 있습니다. 팀원이 무엇인가 필요하다면 그 즉시 도움을 줄수가 있기 때문에 너무 편하고 이런 장점이 쿠버네티스를 활용하기 위한 연료가 되고 있습니다. 플랫폼을 활용할때 우리가 가장 혜택을 많이 받아볼 수 있는건 시간과 비용입니다. 이건 정말 중요한 요소입니다. 자원을 활용하는데 있어 장점이 있다면 반드시 비용적인 부분에서도 혜택이 있기 마련입니다. 컨테이너라는 시스템을 활용할때에는 정말정말 가볍기 때문에 CPU나 램같은 메모리를 활용할때 최적화 되어 있습니다. 정말로 큰 장점인 Amazon Web Services, Microsoft Azure, Google Cloud Platform을 활용해서 정보를 오갈 수 있기때문에 엄청나게 강력한 툴임을 알 수 있습니다.
간단 원리를 설명하면 전체의 시스템을 클러스터라고 이야기 하는데요. 하나의 사람이 클러스터에서 컨테이너라는 시스템을 예약할때에도 있고 공유할때에도 있습니다. 이것을 관리하는 위치가 마스터라고 이야기 합니다. 보통 마스터가 무조건 있으며, 상황에 따라 다수의 마스터를 두기도 합니다. 쿠버네티스를 크게 나누면 앞서 설명한 마스터와 노드라는 구조가 있습니다. 노드는 컨테이너를 시작하고 관리하는 일을 맞고 있습니다. 마스터를 회장이라고 하면 노드를 비서라고 표현하면 설명하기 편할거같습니다. 이런 노드안에 컨테이너가 있는것이고 컨테이너안에 프로그램이 있는것입니다. 이렇게 마스터와 노드는 연결되어 있습니다.
여기까지 쿠버네티스(Kubernetes) 를 사용하는 이유와 장점 간단한 원리까지 살펴봤습니다. 맨처음 문단만 읽어도 쿠버네티스에 대한 개념은 정리가 되었을것입니다. 저의 뻔한 클리셰가 하나 있습니다. 모든 기술은 장점과 단점의 선을 잘 알고 있어야 된다고 생각합니다. 프로그래밍을 할때 잘됬을때만 생각하면 개발이 어려운것을 다들 알고 있을것입니다. 바로 오류를 해결하는것이 개발자의 숙명입니다. 그래서 단점을 잘 알고있는것은 앞으로의 기술을 받아드릴 준비가 되어있다고 해도 과언이 아니라고 생각합니다. 아무리 좋은 기술도 단점이 있습니다. 그리고 앞으로 해결해야될 미래의 과제라고 생각합니다.
쿠버네티스가 7년넘게 사용되고 있습니다. 이뿐만아니라 많은 기술들이 어마어마한 성장이 있고 성장통또한 함께 따라옵니다. 쿠버네티스는 폭발력있는 혁신적인 플랫폼임에는 누구나 부정할 수 없는 사실입니다. 하지만 이와 마찬가지로 사용하는 사용자들이 혼란을 야기시킬 수 있습니다. 이런 경우는 매우 많이 알수가 있습니다. 당장 내가 사용하던 사이트에서 UI만 바꿔도 적응하는데 시간이 걸립니다. 빠른 혁신은 이런 성장통이 존재합니다. 극단적으로 유저 이탈까지 불러 올 수 있으니 이런부분은 조심해야 된다고 생각합니다. 미래를 향한 기술이 반드시 좋은게 아니라는 사실입니다. 쿠버네티스를 사용하려면 혹은 기업에서 채택해서 기술로 활용하기 위해서는 현재의 시스템을 바꾸거나 활용할 수 있는 사람또한 필요하다는 사실 아직 이런부분은 많이 약한 부분이 있어서 좋은 기술임에도 불구하고 100프로 사용하기에는 한계점이 존재합니다.
'지식&정보' 카테고리의 다른 글
HPC, 슈퍼컴퓨터(SuperComputer) 원리와 역사, 우리가 사용하는 컴퓨터와 차이점은? (0) | 2021.02.09 |
---|---|
반드시 알아야하는 공유주차장(Parking Sharing) 개념과 사례 그리고 스마트주차의 미래 (0) | 2021.02.08 |
인공신경망(ANN)의 역사와 장단점 및 사례를 알아보자 (0) | 2021.02.05 |
빅데이터 마케팅 분석 활용사례 장점 및 단점 (0) | 2021.02.04 |
빅 데이터분석 사이언티스트(Data Scientist) 개발자의 중요성과 한계 (0) | 2021.02.03 |