728x90
쿠버네티스가 뭔데?
애플리케이션 배포환경 변화
전통적인 물리 서버
- 하나의 물리적 서버에 데이터와 서비스를 모두 구성
- 다른 OS 설치를 위해선 다른 물리적 서버를 하나 더 구성해야함
- 같은 리소스를 공유하기 떄문에 서로 영향이 가고 성능 문제 발생
하드웨어의 성능은 매우 빠르게 좋아졌지만 소프트웨어의 발전은 속도를 따라가지 못함
→ 서버 사양의 10%수준밖에 사용하지 못함 → 매우 비효율적
남는 공간을 활용할 방법에 대해 고민하게 됨.
가상화 배포
- 물리적 하드웨어 장치를 논리적 객체로 추상화
- 가상화 기술을 통해 한 대의 서버 위에 동시에 여러 OS를 설치 후 여러 애플리케이션을 실행
- 가상머신을 기반으로 배포하는 방법
- 가상머신은 각각 논리적으로 구분된 가상환경에서 실행되므로 각 다른 OS, 분리된 리소스를 갖고있음
- 하이퍼바이저(Hypervisor, Hyper-V) → 하나의 시스템 상에서 가상 컴퓨터를 여러개 구동가능하게 만드는 중간계층, 가상머신 각각에 자원 할당
- 문제점
- VM이 많을수록 기존 대비 안정성이 떨어지고 실행 속도가 느려짐
- 가상머신은 완전한 컴퓨터이기 때문에 각각의 가상머신에 OS를 일일히 설치해주어야 함.
독립적인 플랫폼을 증가시킬 때마다 불필요한 OS를 추가해야함.
→ 성능과 용량적으로 부담스러워짐
→ 이를 해결하기 위해 등장한 개념이 컨테이너(Container)
컨테이너 환경
컨테이너?
Host OS상에 논리적인 구획을 만들어서, 애플리케이션을 작동시키는데 필요한 라이브러리나 종속 항목들을 모아 마치 별도의 서버인 것 처럼 사용할 수 있게 만든 것
- 컨테이너와 가상화가 다른 점
- OS 추가 설치가 필요하지 않음
- 즉, 설정이 빠르고 확장성이 좋음
- 마이그레이션, 백업, 전송이 빠름
- 가볍고, 속도가 빠름
- 컴퓨팅 환경이 바뀌어도 안정적인 실행 가능
- 프로그램으로 인한 OS 문제가 생기면 영향이 큼
- 컨테이너는 물리적 OS 뿐아니라 가상 환경의 OS위에도 올릴 수 있음
- 독립적으로 실행되는 것 같지만 OS관점에선 OS상에서 구동되는 프로그램이므로 OS 커널을 공유하는 가상화 라고도 함.
쿠버네티스(Kubernates, k8s)
k u b e r n a t e s
k 1 2 3 4 5 6 7 8 s
등장 배경
도커의 등장 → 컨테이너 기반 배포 방식의 보편화 → 많은 서비스 들의 도커라이징
이미지가 많아지며 관리가 필요한 컨테이너와 서버가 많아짐.
→ 엔지니어의 업무 과부화
컨테이너들의 관리를 자동화할 도구(컨테이너 오케스트레이션 툴)의 필요성 대두
쿠버네티스?
컨테이너를 쉽고 빠르게 배포, 확장하고 관리를 자동화해주는 오픈소스 플랫폼
특징
- 거대한 생태계
- 다양한 배포 방식
- Namespace & Label라벨 기능으로 유연하고 확장성있게 리소스 관리
- 네임스페이스를 통해 하나의 클러스터를 논리적으로 구분해 사용 가능
- RBAC(role-based access control) > 누가, 무엇을, 어디에 실행가능한지 결정하는 권한, 템플릿 집합을 수반하는 Identity, 액세스 관리 형식클러스터 전체에 적용하거나 특정 네임스페이스에 적용
- AWS는 IAM 연동가능
- 리소스에 대해 유저별로 권한을 손쉽게 지정
- 역할 기반 액세스 제어
- Auto Scaling
728x90
반응형
'Cloud > Kubernates' 카테고리의 다른 글
[k8s, kubernates] 네임스페이스 (0) | 2024.07.09 |
---|---|
[k8s, kubernates] 파드 (0) | 2024.07.09 |
[k8s, kubernates] 오브젝트 (0) | 2024.07.09 |
[kubernates, k8s] 노드 (0) | 2024.07.08 |
[kubernates, k8s] 쿠버네티스 기본 개념, 구성요소 (0) | 2024.07.08 |