Container
-
[kubernetes] Containerd 와 CRIContainer 2017. 7. 19. 16:51
Containerd 와 CRIkubernetes의 CRI(Container Runtime Interface) - continer runtimes를 위한 새로운 plugin 인터페이스이다. (RuntimeService, ImageService)- 유기적으로 진화된 코드의 리펙토링이다. ? (a refactoring of organically evolved code- kubernetes를 좀 더 확장성있게 만든다. ( PR을 보내지 않고 임의의 3rd party 런타임에 권한 부여 ) Pod Sandbox Pod은 자원 제약 조건이 있는 분리된 환경에서 application 컨테이너 그룹으로 구성된다.Pod Sandbox는 환경이다.Isolation : 컨테이너 런타임에 의해 유연하게 해석 ( Nework ..
-
[가상화] QEMU vs KVMContainer 2017. 7. 7. 15:40
QEMU와 KVM은 모두 하이퍼바이저 역할을 할 수 있다.그렇다면, qemu-kvm 처럼 함께 사용하는 이유는 qemu의 기능 및 속도 향상을 돕기 위해 kvm을 활용하기 때문이다.하드웨어 가상화가 없는 시스템의 경우 속도가 약간 떨어진다.kvm은 qemu가 다른 아키텍처의 하드웨어 가상화 기능에 액세스하는 데 도움이 된다. 또한 가속 기능을 qemu 프로세스에 추가한다.즉, qemu-kvm 에서는 qemu가 하이퍼바이저 에뮬레이터이고, kvm은 가속 에이전트이다.
-
[docker] Containerd ?Container 2017. 7. 4. 13:42
Containerd : runC를 제어하는 데몬으로 Docker engine에 내장될 예정이다. containerd는 업계 표준 컨테이너 런타임이며, 전체 컨테이너 life cycle(이미지 전송 및 저장, 컨테이너 실행 및 관리, low-level 저장 및 네트워크 첨부 등)을 관리 할 수 있다. runC를 활용하여 체크 포인트 및 복원, seccomp 및 userspace 지원과 같은 고급 기능을 제공한다. containerd는 로컬 시스템의 컨테이너를 관리하는 GRPC API를 제공하는 데몬이다. Driving containerd operations with gRPC ? gRPC 란 Command-line client (runC와 같은) REST/HTTP client (docker -> docker..
-
[docker] device mapper 옵션과 direct-lvm 모드 설정Container 2017. 3. 23. 17:55
devicemapper는 block device를 사용하기 때문에 컨테이너별로 디스크를 제한할 수 있다. device mapper 드라이버는 두 가지의 block device(data, metadata)를 사용하여 하나의 thin pool을 생성한다. thin pool의 기본 크기는 100GB이며, 각각의 컨테이너와 이미지를 위해 할당되는 device 크기는 10GB이다. 이 크기들은 물리적으로 데이터를 쓰기 전까지는 할당되지 않으며 최대 크기를 채우기 전까지 사용할 수 있다. Device Mapper Options dm.thinpooldev: loopback device 대신 thin pool에서 사용할 block device를 지정한다. 'lvm' block device를 사용하는 것이 가장 좋다. ..
-
[docker] storage driverContainer 2017. 3. 23. 15:58
하나의 docker 이미지는 여러 컨테이너에서 사용되며, 각 컨테이너는 데이터을 생성하거나 삭제하는 프로세스를 통해 원래의 이미지에서 변경된다. 원본 이미지를 유지하면서, 각 컨테이너마다 다른 데이터를 유지하기 위해서 도커에서는 '유니온 파일 시스템'을 사용한다. 유니온 파일 시스템: docker에서는 루트 파일 시스템을 read-only로 마운트하고, 그 read-only 파일시스템 위에 read-write 파일 시스템을 추가하여 union mount 한다. union mount를 지원하는 파일시스템을 union file system이라고 한다. 겹겹이 쌓인 여러개의 read-only 파일시스템이 있을 수 있으며, docker는 이들 파일시스템을 layer로써 생각한다. 낮은 레이어에서 존재하는 파일이..
-
[docker] Unknown option dm.basesizeContainer 2017. 3. 16. 11:43
--storage-opt dm.* 옵션은 'Device Mapper' 스토리지 드라이버에서만 사용한다. 이미지와 컨테이너의 크기 제한을 늘리기 위해 dm.basesize 옵션 추가# vi /usr/lib/systemd/system/docker.service ....ExecStart=/usr/bin/dockerd --storage-opt dm.basesize=200G.... docker 데몬 정지 후 docker 디렉토리 백업 (혹은 삭제)# service docker stop # mv /var/lib/docker /var/lib/docker.bnk (rm -rf /var/lib/docker) 변경사항 적용# systemctl daemon-reload docker 데몬 실행시 에러 발생# service d..
-
[Kubernetes] CrashLoopBackOffContainer 2017. 3. 10. 17:55
kubernetes에서 'nginx' 이미지가 아닌 다른 이미지를 가지고 object를 생성하면, running 상태가 되지 않았다. 기본 'ubuntu' 이미지를 가지고 실험했지만, 마찬가지였다. "kubectl logs" 에는 에러메세지가 뜨지 않았고, 다른 로그는 다음과 같았다. # kubectl get pods NAME READY STATUS RESTARTS AGEubuntu-1-3470236784-crkvd 0/1 CrashLoopBackOff 3 1mubuntu-1-3470236784-wl3pk 0/1 CrashLoopBackOff 4 1mubuntu-1-3470236784-xd43r 0/1 CrashLoopBackOff 3 1m # kubectl describe pods Name:ubuntu..