• peter482431

쿠버네티스 서버 구축기 ① 서버 소개

최종 수정일: 2021년 9월 15일









애자일그로스 클라우드 서버를 소개하려 합니다.


'애자일' 다운 AI 인공지능 플랫폼 개발을 확장하는데 수동 프로세스가 아닌 자동화하면서

대용량의 데이터를 빠르고 정밀하게 처리하며 신속한 확장을 요하는 플랫폼입니다.



쿠버네티스 특징

1. 모든 리소스는 오브젝트 형태로 관리

기본 오브젝트와 컨트롤러로 이루어져 있습니다. 쿠버네티스는 이러한 개념을 더욱 폭넓고 세밀한 단위까지 사용됩니다.


2. 선언적 API 사용

서버 장애가 있을 시 수동이 아닌 자동으로 컨테이너를 복구 시키며 정상 동작하도록 도와줍니다. 유지 보수나 서버 관리에 대한 시간 절약 및 비용 절감이 유리합니다.


3. 제약 없는 실행

개인 컴퓨터나 여러 대의 서버 등 쿠버네티스를 사용 가능하며 테스트 용으로도 사용이 가능합니다. 즉, 누구나 쉽게 접근할 수 있습니다.


쿠버네티스 장점

1. 애플리케이션 배포의 단순화

개발자가 운영자의 도움이나 별도의 지식 없이 자체적으로 애플리케이션을 배포할 수 있습니다. 또한 컨테이너화 된 애플리케이션을 인프라 구성에 대한 정보 없이도 손쉽게 배포할 수 있습니다.


2. 애플리케이션 개발의 단순화

개발 환경과 운영 환경이 동일하며 환경 차이에 따른 고민을 할 필요가 없습니다. 어떤 노드에 애플리케이션이 배포되더라도 빌드한 컨테이너는 환경 설정이 동일합니다.


3. 컴퓨링 리소스 활용 및 오토 스케일링

배포할 애플리케이션이 요구하는 리소스를 분산 시켜서 적재적소 노드에 자동으로 스케줄링을 합니다. 또한 급격한 부하 증가로 인한 장애도 방지가 가능하며 자원을 낭비하지 않고 개발자, 인프라 운영자의 수고를 많이 덜어주고 비용적으로 많은 효과를 볼 수 있습니다.


쿠버네티스 구조(클러스터)

출처 : https://kubernetes.io/docs/concepts/architecture/

쿠버네티스의 클러스터란, 여러 대의 컴퓨터가 모여서 같은 목적으로 수행하는 집합입니다.


Master

클러스터 전체를 관리하는 컨트롤러

  • kube-controller-manager : 쿠버네티스의 컨트롤러들을 클라우드 서비스와 연결해서 관리하는 컴포넌트 입니다.

  • cloud-controller-manager : 쿠버네티스의 pod들을 관리하는 컨트롤러입니다.

  • kube-apiserver : 쿠버네티스 클러스터의 api를 사용할 수 있도록 하는 controll plane component이며, 서로 필요한 정보를 주고받게 됩니다.

  • etcd : 쿠버네티스에서 필요한 모든 데이터를 저장하는 데이터베이스입니다.

  • kube-scheduler : 클러스터 안에서 자원 할당이 가능한 노드 중 알맞은 노드를 선택해서 스케줄링을 합니다.

Node

컨테이너가 배포되는 물리적인 머신

  • kubelet : 컨테이너의 실행을 직접 관리하며 정상적으로 실행되는지 health check를 진행합니다.

  • kube-proxy : 가상 네트워크를 생성하고 동작을 관리하는 컴포넌트 입니다.

쿠버네티스는 확장이 가능하다. 그리고 더 빠르게 애플리케이션을 개발하도록 지원하며,

하이브리드 및 멀티클라우드에서 운영된다. 쿠버네티스는 기술적인 유행이 아니라

실제적이고 합리적인 비즈니스 문제이다. - Brian Gracely -



참고 : https://kubernetes.io/ko/docs/home/

https://www.redhat.com/ko/topics/containers/what-is-kubernetes

조회수 452회

최근 게시물

전체 보기