코알못

[CKA] 쿠버네티스 소개 본문

ETC

[CKA] 쿠버네티스 소개

코린이s 2023. 8. 10. 19:08
728x90

우선 컨테이너에 대해 알아보자!

우리는 어플리케이션을 만들고 Dockerfile에 어플리케이션을 동작하기 위한 정의를 한뒤 docker build 명령어를 통해 이미지를 생성한다.

그리고 해당 이미지를 push 해서 docker hub (repository)에 이미지를 업로드(=배포) 한다.

운영 서버에서는 docker pull 을 통해 배포한 이미지를 받고 create를 통해 컨테이너 생성후 start 명령어를 통해 컨테이너를 실행한다.

이렇게 docker를 이용하여 독립된 공간에서 어플리케이션 실행할수 있는 컨테이너를 실행 한다!

이제 가상머신과 컨테이너의 차이를 알아보자!

가상 머신의 경우 다수의 서버에 어플리케이션을 운영하고 싶다면 Hypervisor(하이퍼바이저 = VMWare, VirtualBox 등 다수의 os 를 실행 시켜주는 논리적 기술)위에 원하는 서버수 만큼 GestOS를 설치 하고 그 위에 어플리케이션을 띄우면 된다.

그러나 컨테이너 시스템의 경우에는 Docker 위에 OS를 따로 설치할 필요 없이 어플리케이션이 포함된 Container만 띄우면 된다.

따라서 어플리케이션이 동작하는데 2개의 OS를 거치지 않아도 되어 디스크를 덜 차지하고 빠르고 가벼우며 관리가 쉽다.

이런 가벼운 컨테이너는 마이크로서비스를 구성하는데 좋은 환경이기에 서비스 하나하나 컨테이너가 많아질것이고 배포하다가 쓰러질 수 있다.

그럼 어떻게 관리 하면 좋을까?

컨테이너 오케스트레이션(=다수의 컨테이너를 자동 설정/관리) 서비스인 kubernetes 를 이용하면 된다! 

kubernetes는 지휘자(=control plane)와 연주자(=worker node)로 이뤄져있다.

쿠버네티스 특징중 중요한 선언적 API의 뜻은 예시로 "나 웹서버 3개 실행시켜줘" 라고 선언하면 현재 상태를 모니터링하고 선언한대로 유지 하고자 하는 특징이며 이를 통해 자동화된 관리가 가능하다!

끝!

728x90
Comments