본문 바로가기
IT 정보기술

쿠버네티스

by 지구스시2 2023. 9. 14.
728x90
반응형

 

쿠버네티스

채용공고를 살펴보다 ‘쿠버네티스’를 빈번하게 보게되어 조사하게 되었습니다.

쿠버네티스가 무엇인지 알아보는 사람들에게 도움이 되길 바랍니다.

용어를 알아봅니다.

1. 컨테이너

앱이 구동되는 환경까지 감싸 실행할 수 있도록 하는 격리 기술

어디서든 쉽게 실행할 수 있도록 해 주는 기술

프로그램을 설치할 때 추가적인 환경 설정 없이 독립적으로 프로그램을 실행할 수 있도록 도와주는 기술

컨테이너 환경을 묶어서 배포 → 컨테이너 이미지 프로그램 다운 → 구동 → 실행

⇒ 각종 설정 과정을 축소

 

2. 컨테이너 런타임

컨테이너를 사용할 때 필요한 도구

컨테이너를 쉽게 다운, 공유, 구동 가능하게 해준다.

[도커]

컨테이너 런타임 중 하나로 컨테이너 런타임 중 가장 유명함

도커가 아닌 다른 컨테이너 런타임으로 도커로 만든 컨테이너 사용도 가능

도커가 사용하는 컨테이너 규격은 표준화되어 있음

3. 쿠버네티스

컨테이너 런타임을 통해 컨테이너를 다루는 도구

여러 서버에 컨테이너를 분산 배치, 문제가 생긴 컨테이너 교체, 컨테이너가 사용할 비밀번호 또는 환경 설정 관리하고 주입해 주는 일을 함(→ 오케스트레이션)

컨테이너를 다루기 위해 도커 이외에도 다양한 컨테이너 런타임 소프트웨어 사용 가능

가상머신과 컨테이너 비교

애플리케이션 배포 변화(출처: https://kubernetes.io/ko/docs/concepts/overview/)

1. 전통적 배포(Traditional Deployment)

오래전부터(가상화 이전) 쓰이던 방식

컴퓨터 한 대에 하나의 OS 설치하고 여러가지 프로그램을 설치하는 방식

PC 한 대 - 윈도우OS 하나 설치 - 여러 가지 프로그램 설치하여 사용

✅ 가장 오래된 방식, 단일 목적 시스템에 적합

🚨 한 대의 컴퓨터에서 모든 일을 처리한다 → 프로그램 성능 저하, 중단 유발

 

2. 가상화 배포(Virtualized Deployment)

가상머신을 기반으로 배포하는 방법

하이퍼바이저: 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 하는 중간 계층

Bin, Library - 프로그램을 실행하는 데 필요한 환경과 관련된 파일

가상머신: 가상 컴퓨터, CPU, 메모리, 저장 장치 등 개별 할당 가능

✅ 한 대의 컴퓨터에서 여러 개의 가상 컴퓨터 작동 → 서로 간섭X

✅ 가상머신 성능 조절하여 CPU, 메모리 등을 비중을 다르게 하여 할당 가능

✅ 가상머신 개수를 늘리고 줄이는 것도 유연하게 처리 가능

✅ 전통적인 배포 방식보다 효율적이지만

🚨 각각의 가상머신에 OS 설치 필요 → 컨테이너 중심의 배포보다 무거운 편이다.

3. 컨테이너 중심의 배포(Container Deployment)

컨테이너는 프로그램 구동을 위한 OS 설치 불필요

하나의 OS만 사용함, OS 하단이 어떻게 동작하는지 관심X

✅ 프로그램 간에 간섭을 일으킬 수 없는 장벽을 만듬 → 이 컴퓨터에서 나만 구동되고 있구나

✅ 하나의 OS는 자원을 독립적으로 사용할 수 있도록 관리

⇒ 하나의 OS 상에서 구동되지만 다른 컴퓨터에 깔려 있다고 생각하게 됨

⇒ OS 커널을 공유하는 가상화로 표현하기도 함

🚨 OS를 공유하는 방식이므로 내 프로그램 문제가 OS에 문제를 일이킬 경우 OS에서 구동 중인 전체 컨테이너의 문제가 될 가능성이 있음

 

리눅스 기준 내가 실행한 프로그램이 독립된 환경에서 실행되는 것처럼 격리시켜 주고,
자원도 실행한 프로그램이 독립적으로 쓸 수 있도록 해주는 namespace, cgroup 기술이 있다.

 

출처: red hat ,samsung sds, kubernetes

728x90
반응형

'IT 정보기술' 카테고리의 다른 글

아크  (0) 2023.09.20
rel="noopener"  (0) 2023.09.15
2023 UX/UI 트렌드  (0) 2023.05.11
5G 이것 때문이었네  (0) 2022.04.18
메타콩즈  (0) 2022.04.18