본문 바로가기

컨테이너

(17)
쿠버네티스, 이것만 알면 된다! - #4 쿠버네티스 설치 이제부터는 이론과 함께 실습을 통해서 쿠버네티스를 학습해보도록 하겠습니다. 실습을 위해서 우선 쿠버네티스 설치부터 시작합니다! 먼저, 설치에 앞서 Master Node와 Worker Node로 사용할 2개의 가상머신(Virtual Machine)을 준비합니다. 사전 작업 쿠버네티스를 설치하기 위해서는 2가지의 사전 작업이 필요합니다. Swap 메모리 비활성화 쿠버네티스는 Pod를 생성할 때, 필요한 만큼의 리소스를 할당 받아서 사용하는 구조입니다. 따라서 메모리 Swap을 고려하지 않고 설계되었기 때문에, 쿠버네티스 클러스터 Node들은 모두 Swap 메모리를 비활성화 해줘야 합니다. 다음 명령어를 통해서 Swap 메모리를 비활성화 시켜줍니다. Docker 설치 쿠버네티스의 밑바탕이 되는 Containe..
쿠버네티스, 이것만 알면 된다! - #2 Desired State 쿠버네티스의 다양한 기능들을 어떻게 사용할까요? 쿠버네티스의 핵심은 'Desired State' 입니다! 출처: https://subicura.com/2019/05/19/kubernetes-basic-1.html 쿠버네티스는 원하는 상태를 계속 체크하고 문제가 있다면 자동으로 조치합니다. 그렇다면 원하는 상태는 무엇일까요? 원하는 상태란 관리자가 바라는 환경을 의미하고, 좀 더 구체적으로는 얼마나 많은 웹서버가 구동되고 있으면 좋은지, 몇 번 포트로 서비스하기를 원하는 등을 말합니다. 쿠버네티스는 복잡하고 다양한 작업을 하지만 자세히 들여다보면, 현재 상태를 모니터링하면서 관리자가 설정한 원하는 상태를 유지하려고 내부적으로 이런저런 작업을 하는 단순한 로직을 가지고 있습니다. 원하는 상태는 어떻게 설정하..
쿠버네티스, 이것만 알면 된다! - #1 쿠버네티스란 무엇일까? 쿠버네티스란 무엇일까요? 쿠버네티스란 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템입니다. 출처: https://kubernetes.io/ 1주일에 수십억 개의 컨테이너를 생성하는 Google이 내부 배포시스템으로 사용하던 'borg'를 기반으로 2014년 프로젝트를 시작했고, 여러 커뮤니티의 아이디어와 좋은 사례들을 모아 빠르게 발전하였습니다. 이후 Google이 CNCF(Cloud Native Computing Foundation)에 코드를 기부함으로써, 쿠버네티스는 오픈 소스 프로젝트가 되었습니다. 쿠버네티스는 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고, 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다. 서버리..
도커를 공부하는 초보자를 위한 안내서 5편 - 도커 설치 및 명령어 실습 도커(Docker) 기초 다지기 - 도커 명령어 및 실습 앞선 포스트를 통해 도커가 무엇인지 공부했으니, 이제 실전에 돌입할 차례입니다. 도커 설치부터 핵심적인 명령어까지 실습을 통해 차근차근 알아보겠습니다. 도커(Docker) 설치 도커는 리눅스 컨테이너 기반의 기술입니다. 그러므로, 리눅스 OS가 아닌 맥이나 윈도우에 설치 시 가상머신에서 설치가 된다는 점을 생각하셔야 합니다. Linux 리눅스에 도커를 설치하는 방법은 정말 간단합니다. 자동 설치 스크립트가 있기 때문입니다. 아래의 명령어를 이용하여 간단하게 설치할 수 있습니다. 아래 명령어를 입력하면, root 권한을 요구한 뒤(password 입력) 자동으로 설치가 완료 됩니다. (단 Linux는 ubuntu와 centos를 사용했습니다. 다른 ..
도커를 공부하는 초보자를 위한 안내서 4편 - 도커 이미지 이해하기 도커(Docker) 이미지 이전 포스트에서 도커의 정체와 이미지(Image)의 개념에 대해 알아보았습니다. 이미지 개념을 이해할 때, 중요한 것이 바로 Layer 저장방식 이었습니다. 지난 시간에 이어 이번 시간에는 실제 도커 이미지를 사용할 때 필요한 개념들을 간략하게 알아보도록 하겠습니다. 도커(Docker)이미지 경로 도커 이미지는 URL과 태그를 이용하여 관리 됩니다. 아래 코드를 보시면, 이미지를 pull 받을 때는 'nginx:latest' 라는 이미지를 요청했습니다. 하지만 실제로 받아온 이미지의 이름은 docker.io/library/nginx:latest인 것을 확인할 수 있습니다. 둘은 사실 같은 의미를 가집니다. 도커의 이미지 이름은 문자열 입니다. 도커허브를 기준으로 도커 이미지의 ..
도커를 공부하는 초보자를 위한 안내서 3편 - 도커 이해하기! 도커(Docker)의 정체를 알아보자. 저번 포스트에서는 컨테이너와 그 장점에 대해 공부하는 시간을 가졌습니다. 컨테이너에 대해서 감이 잡혔다면, 이제 도커에 대해 본격적으로 공부해보도록 하겠습니다. (https://ktcloudplatform.tistory.com/69 - 컨테이너 개념) 도커(Docker)는 그래서 뭐지? 도커(Docker)는 무엇일까요? 많은 사람들이 '도커 = 컨테이너(Container)' 라고 생각하지만 위에서 살펴보았듯이 컨테이너 기술은 도커가 탄생하기 한참 전부터 존재헀습니다. 도커는 컨테이너 기술을 지원하는 다양한 프로젝트 중 하나일 뿐입니다. 그렇다면 도커만이 가지는 장점은 무엇이기에 이렇게 유명해 졌을까요? 도커는 오버레이 네트워크(Overlay Network), 유니온..
도커를 공부하는 초보자를 위한 안내서 2편 - 컨테이너의 장점 도커(Docker) 기초 다지기 - 컨테이너(Container)의 장점 지난 포스트에서는 컨테이너가 무엇인지에 대해서 알아보았습니다. 그렇다면, 컨테이너는 왜 쓰는 걸까요? 이번 시간에는 컨테이너의 장점에 대해 알아보는 시간을 갖도록 하겠습니다. 지난 포스트를 아직 읽기 못하신 분은 아래 링크 먼저 보고 오시면 이해가 훨씬 쉬울 것입니다 (https://ktcloudplatform.tistory.com/69 -컨테이너 개념) 빠른 속도와 효율성 하드웨어 에뮬레이션이 없으므로, 컨테이너는 아주 빠른 속도로 실행됩니다. 기존의 VM과 비교하면 비교도 안 될 만큼 빠른 속도입니다. 컨테이너 생성이라는 것은 OS 입장에서 단순히 프로세스를 시작하는 것과 같습니다. 가상환경이 커널에서 공유되기 때문에 새로운 커널..