분류 전체보기 (212) 썸네일형 리스트형 kubernetes 파드 파드 소개 한 파드에 여러 컨테이너가 있고 항상 하나의 노드에서 뜬다. 왜 파드가 필요할까? 왜 컨테이너를 직접 실행하지 않고 파드를 이용해 멀티플 컨테이너를 띄울까? 한 머신에서 여러 프로세스를 띄워야할때 컨테이너는 하나에 한 프로세스만 띄우게 되어있으니 여러 프로세스를 띄우면 이를 관리하는것도 사용자가 해야된다. 그래서 이런 컨테이너를 묶어서 관리해줄 구조가 필요한데, 이게 파드가 필요한 이유다. 파드 이해하기 파드는 여러 컨테이너를 함께 묶기 때문에 안에 있는 컨테이너들은 같은 hostname 과 network interface 를 가진다. 파드 안의 컨테이너가 동일한 네트워크에서 실행되기 때문에 ip주소와 포트를 공유하게 되고 따라서 파드 안에 컨테이너들은 같은 포트를 사용하지 않도록 해야한다. .. Kubernetes 첫걸음 2 레플리카 세트 어느 정도 규모가 있는 어플리케이션을 구축하려면 같은 파드를 여러개 실행해서 가용성을 확보해야한다. 이런 경우 사용하는게 레플리카 세트다. 똑같은 정의를 갖는 파드를 여러개 생성해서 관리하게 된다. yaml 파일에서 replicas 수 를 이용해서 파드의 복제본을 만든다 replicas 수를 작게 조절하면 그만큼 파드가 삭제된다. 삭제된 파드는 복원할 수 없기때문에 상태가 없는 (stateless) 어플리케이션에 사용하기 유리하다. 디플로이먼트 디플로이먼트는 레플리카 세트의 상위 개념으로 어플리케이션 배포의 기본단위가 되는 리소스다. 레플리카세트는 똑같은 파드의 레플리케이션 개수를 관리 및 제어하는 리소스라면, 디플로이먼트는 레플리카세트를 관리하는 리소스다. 레플리카세트의 생애주기 쿠버네티.. Kubernetes 첫걸음 Kubernetes란? 컨테이너화된 어플리케이션을 쉽게 배포하고 관리해주는 소프트웨어 시스템 많은 수의 컨테이너를 연돌시키기 위한 통합 시스템으로 컨테이너를 다루기 위한 API 와 명령행 도구 등이 제공된다. 개발자가 어플리케이션 매니페스트를 마스터에 개시하면 쿠버네티스는 어플리케이션을 워커 노드에 배포한다. 컨테이너를 이용한 어플리케이션 배포 외에도 도커 호스트 관리, 리소으를 고려한 컨테이너 배치, 스케일링, 컨테이너 로드밸런싱, 헬스 체크 등의 기능들이 제공된다. 쿠버네티스 사용의 장점 애플리케이션 배포의 단순화 하드웨어 활용도 높이기 오토스케일링 쿠버네티스 클러스터와 노드 쿠버네티스 클러스터는 쿠버네티스의 여러 리소스를 관리하기 위한 집합체다. 여기서 가장 큰 개념은 노드다. 노드는 쿠버네티스의 .. docker 볼륨 컨테이너를 제거하면 데이터도 함께 제거된다 컨테이너를 삭제하면 기본적으로 컨테이너에서 생성된 데이터들 모두 제거 되게 된다. 컨테이너의 데이터를 호스트 OS에 저장하기 컨테이너는 쉽게 제거가 가능하고 실수로 지울수도있는데 여기서 운영중인 데이터들은 어떻게 관리해야될까? 도커는 컨테이너를 실핼할때 컨테이너의 특정 디렉토리와 호스트OS의 특정 디렉토리를 공유 할 수 있도록 -v [호스트 디렉토리]: [컨테이너 디렉토리] 옵션을 제공하고 있다. 이때 호스트 디렉토리는 비어있거나 파일이 없어야 한다. 도커 볼륨 마운트 도커 컨테이너를 실행할때 로컬 호스트의 디렉토리/ 파일, 메모리를 마운트 할 수 있다. docker 네트워크 구조 컨테이너 네트워크 모델 - Sandbox는 Container의 Network Stack을 의미한다 (ex. Interface, DNS, Routing Table, ...): 네트워크 물리 장비 역할 - Endpoint는 Sandbox를 Network에 Join(Attach) 해주는 역할을 한다. - Network는 같은 그룹 끼리는 서로 통신할 수 있다. ifconfig 을 했을때 나오는 인터페이스가 Endpoint다. Endpoint는 Docker Network 에 부착되는 방식인데, 컨테이너를 띄울때 해당 네트워크를 쓰겟다는 설정을 하게 되면 컨테이너는 자신의 샌드박스에서 Endpoint를 만들어서 해당 네트워크에 연결하는 방식이다. 네트워크에 연결하는 과정은 1. 도커에서 네트워크를 생성하고 2. .. docker image 도커 이미지란? 도커 이미지는 컨테이너를 생성하기 위해 필요한 설계도 개념이다. 도커 이미지는 베이스 이미지에 필요한 어플리케이션 및 라이브러리를 포함시킨 것을 의미한다. 도커 이미지는 빌드할때 각각 분리된 데이터인 레이어를 생성시키는데,이미지를 빌드할때 명령문을 순서대로 실행하면서 만들어진다.이 레이어들은 읽기 전용이여서 수정 할 수 없다. 도커 컨테이너가 실행되면 모든 읽기 전용 레이어들을 쌓고 마지막에 쓰기가 가능한 신규 레이어를 추가해서컨테이너 안에서 발생하는 모든 결과물들이 쓰기 가능 레이어에 기록이 된다.읽기 레이어는 변경이 없고, 쓰기 레이어에만 데이터가 쌓이니 서로 겹치지 않고, 컨테이너가 종료되면 모두 사라지게 된다. 각각의 레이어들이 독립적으로 존재하는데, 변경된 부분만 포함하고 부모 .. docker container 이해 리눅스, 유닉스 환경에서의 컨테이너 도커 컨테이너를 이해하기 위해 먼저 리눅스 컨테이너를 이해해보자 리눅스 환경에는 chroot 라는 명령어가 있는데 이 chroot(change root directory)는 실행중인 프로세스와 자식 프로세스 그룹에서 루트 디렉토리를 변경하는 작업이다. 이걸 통해 특정 경호의 디렉토리를 루트 디렉토리로 설정하면 트리 밖의 파일들의 이름을 접근할 수 없기때문에 chroot jail이라고 부른다. 리눅스 컨테이너 chroot jail 은 설정 하는 방법이 복잡했고 완벽한 가상환경이 아니다 보니 여러가지 제약이 있었다. 그래서 등장한게 리눅스에서 제공하는 LXC(Linux Container) 라는 시스템 레벨의 가상화 였다. 리눅스 커널 레벨에서 격리된 가상화 공간인데 OS .. docker 란? 도커란? 도커는 컨테이너를 이미지 파일로 빌드하고 배포하여 어디서나 실행 할 수 있도록 해주는 오픈소스다 여기서 컨테이너는 프로그램을 담는 격리된 공간을 의미하는데, 이 컨테이너에는 ubuntu, centos 등 운영체제 배포판부터 java, 웹서버 등 프로그램들도 담기게 된다. 컨테이너는 격리된 공간으로 컨테이너별로 중복 설치해도 상관이 없다. 도커를 사용하면 코드를 통해 실행 환경 또는 어플리케이션을 구축할 수 있고, 변화하지 않는 실행환경으로 멱등성을 확보할수있다. 가상화와의 차이점? 컨테이너는 하나의 os에서 여러개가 실행이 되는데 가상화는 각각 os 를 가지고 있다. 컨테이너는 VM 보다 가볍고 빠르다. 이전 1 2 3 4 5 6 7 ··· 27 다음