DevOps/Kubernetes

Kubernetes?

devdubu 2024. 10. 14. 09:14

Kubernetes?

  • 쿠버네트스는 대규모 클러스터 환경에서 컨테이너화 된 애플리케이션을
    자동으로 배포하고 확장, 관리 하는 데 필요한 여러 가지 요소들을 자동화하는 오픈소스 플랫폼입니다.

개발자가 컨테이너 환경으로 애플리케이션을 만들면, 쿠버네티스로 여러 대의 서버로 구성된 클러스터 환경에 해당 프로그램을 편리하고 안정적으로 배포 가능 합니다.

 

쿠버네티스는 사용자 부하에 따라 자동으로 애플리케이션과 서버의 규모를 확장할 수 있고, 네트워크, 스토리지, 모니터링 등 시스템 운영에 필수적인 여러 컴포넌트를 편리하게 구축, 관리 할 수 있다.

devops 관점에서 바라본 k8s

  • 소스코드 기반으로 클러스터를 운영
  • 의도한 상태로 클러스터를 관리한다.

 

쿠버네티스는 클러스터의 전체 상태를 지속적으로 확인하면서 문제가 생긴 애플리케이션은 자동으로 재 시작합니다.

또한 시스템의 자원 사용 현황을 모니터링해서 자원 여유가 있는 노드에 애플리케이션을 적잘하게 배치하고 필요한 물리 리소스는 자동으로 증가 시킵니다.

 

이러한 탁원할 클러스터 기본 관리 기능을 무료로 사용 가능한 오픈소스로 제공합니다.

더욱이 K8S가 발전하고 새로운 선도 기술로 자리잡으면서 K8S는 단순 클러스터 관리 기능을 넘어서 일종의 데이터 센터 운영의 표준이 되고 있습니다.

 

출처 : # Deploy Kubernetes Cluster on OpenStack using Kubespray

애플리케이션을 안정적이고 확장 가능 하도록 운영하는데 필요한 스토리지, 네트워크, 모니터링등을 위한 다양한 부가 기능들이 K8S를 중심으로 발전하고 있습니다.

 

기업 환경에서는 기술 진입장벽이 있는 K8S를 도입하기엔 쉽지 않습니다.

 

먼저 컨터이너 기반이라 애플리케이션 자체를 재설계를 해야합니다.

컨테이너 환경은 애플리케이션을 컨테이너에 맞게 새롭게 배포해야하는 어려움이 있었습니다.

 

그리고 컨테이너 환경의 K8S는 기존 가상 머신 환경과 몇가지 기본 철학이 다릅니다.

현재 기업의 디지털 환경이 가진 가장 큰 과제는 고객의 요구사항을 빠르고 장애 없이 구현하는 것입니다.

 

IaC라는 개념이 발전하게 되면서 자연스럽게 Kubernetes도 각광을 받기 시작했으며, 이러한 IaC에 대한 영향으로 어플리케이션 뿐만 아니라, Infra 역시도, 빠르고 장애 없이 구현이 가능하게 끔 만들어지고 있습니다.

 

전에도 Terraform과 Ansible을 소개 할때도 나왔던 개념이지만, Kubernetes라고 해서 다르지 않습니다.

Kubernetes를 시작하기 전에 앞서

본격적으로 Kubernetes를 시작하기 앞서 윗글에서 말씀드렸다싶이, Kubernetes가 많은 기업들이 진행하고 있는 것도 맞지만, 또한 많은 기업들이 도전하였다가 실패한 기술 입니다.
이유는 명확합니다.

기술 장벽

많은 대다수의 회사들이 이 기술 격차를 넘지 못하였기에, 해당 기술로 넘어가지 못하고 예전 Infra를 고수하는 기업들이 상당히 많습니다.

예전 VM이 좋지 못하다라는 것은 아니지만, 최근의 고객의 니즈를 전반적으로 반영하기엔, 무리가 있어보이는 기술은 맞습니다.

빠르고,,장애 없이,,

 

저도 아직 Kubernetes를 완전히 다루진 못하며, 실무에서 적용할 수 있을정도는 되지 않습니다.
저의 작디 작은 사이드 프로젝트 정도에서만 적용할 정도이지만, 이정도까지 오는데만 1년은 걸렸던것 같습니다.

 

제가 기초 배경 지식이 없어서 오래 걸린것도 맞지만, 기본적으로 Container와 Swarm의 개념을 알고 있음에도 불구하고 걸렸던 시간임을 고려하면, 기술 장벽이 굉장히 견고 하다는 것을 알 수있습니다.

취준생은 거들떠도 보지 않는 것을 추천드립니다.

 

말 그대로 취준생 분들 중에 Kubernetes로 해보겠다 하시는 분들 많습니다.
하지 마십쇼 다른거 하세요
투자한 시간 대비, 결과가 극히 적을 것입니다.

 

그리고 무엇보다 저는 간과한 사실이지만, 기초 인프라 지식이 매우 중요합니다.
다들 아시겠지만, Kubernetes 정도의 공부를 하시려면 기초 인프라 지식은 알아야합니다.

 

기초 인프라이기에, Linux의 깊은 것 까지 파해치는 그런것은 아니고, 저는 인프라 엔지니어가 아니기에 말씀드릴 수 있는 것이,
Cloud 기술 자체에 대한 기초 개념이 잡혀있으면, Kubernetes도 이해하는데 어렵지 않다고 생각합니다.

본인의 사전 지식을 Cloud에 맞춰서 학습하시면 됩니다.

 

다음에는 Kubernetes 설치 부터 시작하겠습니다.

'DevOps > Kubernetes' 카테고리의 다른 글

Kubernetes 개시!  (2) 2024.10.12