K-Sheild Jr. 2기 프로젝트를 진행하기 위해 토일반 교육생들로만 결성된 "핫식스 맛있다" 팀의 프로젝트 진행과정입니다. 포트폴리오 및 기록으로 남기기 위해 작성되었으며, 쿠버네티스와 컨테이너를 학습 및 연구하는 사람들에게 도움이 되고자 작성하게 되었습니다.
#1. 리눅스 컨테이너
출처 : https://www.redhat.com/ko/topics/containers/whats-a-linux-container
#1.1 리눅스 컨테이너 기본 개념
리눅스 컨테이너(Linux Container)는 시스템의 나머지 부분과 격리된 하나 이상의 프로세스 세트입니다. 이러한 프로세스를 실행하는 데 필요한 모든 파일은 고유한 이미지에서 제공되므로, Linux 컨테이너는 개발 단계에서 테스트, 프로덕션에 이르기까지 이식성과 일관성을 유지할 수 있습니다. 이는 테스트 환경을 복제하는 개발 파이프라인보다 보다 빠른 배포가 가능케 됩니다. 대중성과 사용의 편의성 때문에 컨테이너 역시 IT보안의 중요 부분입니다.
#1.2 컨테이너 사용 예시
예시를 들어 설명하자면 애플리케이션을 개발하고 있다고 가정 시 특정하게 설정된 환경을 사용하고 있습니다. 이때 다른 개발자들의 환경과 차이가 존재합니다. 개발 중인 애플리케이션은 특정하게 설정된 환경의 특정 라이브러리, 종속성 및 파일에 의존하므로 다른 개발자가 사용 중인 환경에서 개발할 수 없게 됩니다. 이때 서버 환경을 재구축 할 필요 없이 로컬에서 환경을 에뮬리에션하려고합니다. 이에 관한 답은 컨테이너를 사용하므로써 품질검사를 통과하고 큰 문제나 수정 없이 애플리케이션을 배포할 수 있게 됩니다. 애플리케이션을 실행하는 컨테이너는 필수 라이브러리, 종속 요소 및 파일을 사용하므로 문제 없이 사용이 가능합니다. 이제 이러한 리눅스 컨테이너 작업을 자동화하는 쿠버네티스에 대해 알아봅시다.
#2. 쿠버네티스
출처 : https://www.redhat.com/ko/topics/containers/what-is-kubernetes
#2.1 쿠버네티스 기본 개념
쿠버네티스(K8s, Kubernetes)는 리눅스 컨테이너 작업을 자동화 하는 오픈소스 플랫폼입니다. 호스트 그룹을 함께 클러스터를 쉽고 효율적으로 관리할 수 있습니다. 클러스터는 Public, Privit, Hibrid Cloud로 호스트를 확장할 수 있습니다. 이러한 쿠버네티스는 Apache Kafka를 이용하여 실시간 데이터 스트리밍과 같이 신속한 확장을 요구하는 Cloud Netive Application을 호스팅 하는데 이상적인 플랫폼입니다.
Google 엔지니어들이 설계한 플랫폼으로 Google의 클라우드 서비스를 구동하는 기술이기도 합니다.
#2.2 쿠버네티스를 사용하는 이유는 무엇일까?
실제 Production Application은 여러 컨테이너에 걸쳐 존재하며, 이러한 컨테이너는 여러 호스트에 배포되어야 합니다. 컨테이너를 위한 보안은 멀티레이어 구조로 매우 복잡합니다. 이 부분에서 쿠버네티스가 워크로드를 위해 규모에 맞는 컨테이너를 배포하는 데 필요한 오케스트레이션 및 관리 기능을 제공합니다. 쿠버네티스 오케스트레이션을 사용하면 여러 컨테이너에 애플리케이션 서비스를 구축하고 클러스터 전채에서 컨테이너의 일정을 계획 및 확장으로 컨테이너의 상태를 지속적으로 관리가 가능합니다. 이는 컨테이너 IT 보완을 한층 강화할 수 있습니다.
'Project > 핫식스 맛있다' 카테고리의 다른 글
[핫식스 맛있다 #0] 프로젝트 개요 (0) | 2019.05.18 |
---|