You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

쿠버네티스

쿠버네티스는 애플리케이션이나 서비스의 관리 체계 및 요청 처리할 수 있는 요소를 제공하며, 고가용성, 애플리케이션 스택, 서비스의 이식성을 보장하는 자동화 도구이다. 

또한 애플리케이션 컨테이너 배포, 오토 스케일링, 오퍼레이팅등의 시스템 오케스트레이션 시스템 환경이라 말할수 있다.

쿠버네티스는 컨테이너의 배포, 확장, 운영을 위해 고안된 오픈소스 이다.

여기서 컨테이너를 가동시킬때에는 시스템 트래픽이나 가용성 환경을 고려한 후 여러 호스트머신에서 구성되는 분산 환경을 구축하게 된다.

이런 기능을 제공 및 설정이 가능하면서 컨테이너를 통합 관리할 수 있는 오케스트레이션 도구 라고 한다.

쿠버네티스의 주요기능

1. 멀티서버(물리) 컨테이너관리

2. 컨테이너 부하분산관리 및 모니터링 관리

3. 컨테이너간 네트워크관리 

4. 컨테이너 배포관리

5.  컨테이너 자동복구 및 자동업데이트

쿠버네티스의 장점

1. 무 중단 서비스 제공.

쿠버네티스는 서비스가 고장 없이 오랫동안 지속되게 하기 위해서 파드를 복제하고 그 개수를 유지한다.

서비스를 여러개 복제해 놓으면, 하나의 서비스에 장애가 발생하더라도 쿠버네티스는 다른 서비스를 통해 무중단 지속할 수 있다.

쿠버네티스는 자가회복 기능(auto-placement, auto-restart, auto-replication, auto-scaling)으로 장애가 발생한 서비스를 회복시킨다.

2. 뛰어난 이식성. 

쿠버네티스가 운영하는 컨테이너들은 독립적인 구조를 가지고 있기 때문에, 특정한 클라우드 환경에 구애받지 않는다.

예를들어 하나의 클라우드 환경(Public, Private, Hybrid)에서 다른 클라우드 환경으로 서비스를 이전할 때,

사용자는 별도의 복잡한 이전 과정을 거칠 필요 없이 컨테이너들만 이전시키면 된다.

또한, 쿠버네티스 패키지 매니저인 Helm을 사용하면 쿠버네티스의 애플리케이션들을 쉽고 빠르게 다른 클라우드 환경으로 이식할 수 있다.

3. 효율적인 자원 사용.

쿠버네티스는 서비스가 사용할 자원들(CPU, Memory 등)의 사용량을 사전에 지정함으로써,

필요한 만큼의 자원만 서비스에 할당되기 때문에 자원 사용의 효율성이 증가한다.

추가로, 가상머신은 게스트 OS의 일부 자원만을 사용하기 때문에 메모리 오버헤드가 발생하지만,

쿠버네티스의 컨테이너는 호스트 운영체제를 공유하면서 각 컨테이너가 필요한 만큼의 자원들을 사용하기 때문에 자원을 더 효율적으로 사용할 수 있다.

4. 유연한 확장성.

자원 사용률에 따라 쿠버네티스는 자동으로 서비스의를 관리한다.

예를들어, CPU 사용률이 300%로 증가하게 되면 쿠버네티스의 Horizontal Pod Autoscaler가 서비스를 1개에서 7개까지 증가시킨다.

CPU 사용률이 다시 감소하게 되면 서비스의 개수도 점차 줄어들게 된다.



쿠버네티스의 운용

1. 개발환경

개발자는 에디터 및 IDE 를 이용하여 언어별 개발 소스를 빌드 또는 런타임 하거나 그 외 라이브러리를 도입설정 한다.

2. 컨테이너 생성

개발된 바이너리, OS, 네트워크, 인프라설정이 모두 포함된 컨테이너 이미지를 빌드 한다.

이때 도커의 경우 Dockerfile 에 구성을 하고 Dockerfile 통해 실행환경에서 빌드한다.

3. 클러스터작성

테스트/스테이징 및 실제환경  에서 애플리케이션을 작성시키는 셋업이 필요하다.

쿠버네티스는 분산 환경에서 여러대의 서버나 스토리지등 리로스가 연결된 환경에서 애플리케이션을 실행 한다.





  • No labels