도커부터 시작하여 쿠버네티스까지 각 서비스의 기능 및 구성요소에 대해 자세히 소개해 드립니다 | Learn more about the features and components of each service, starting with a Docker and ending with Kubernetes.
도커부터 시작하여 쿠버네티스까지 각 서비스의 기능 및 구성요소에 대해 자세히 소개해 드립니다 | Learn more about the features and components of each service, starting with a Docker and ending with Kubernetes.
https://cncg-kr.net/ 에서 발표한 내용입니다.
IT 서비스를 구성하는데에는 다양한 자원들(Baremetal server, Virtual machine, network switch, database, 등)이 필요합니다. 이런 자원들은 각각의 관리자등을 통해서 일반적으로 각기 다른 방법들로 관리됩니다. 다만 IaaS, PaaS와 같은 Cloud방법들이 제공되면서 보다 통합된 환경으로 이런 자원들을 관리 하게 되었으나 아직까지도 일반적으로는 이런자원들을은 각기 관리되어 불편함과 문제가 수반 됩니다. 그래서 저희는 이런 다양한 자원과 방법들을 kubernetes로 보다 선언적이며 통합적인 방법으로 만들어서 자동화를 하였고 이 세션에서는 이 내용을 소개하며 어떻게 하면 이런방법들로 접근 할 수 있을지 설명하고 이를 통해 kubernetes 에 더 많은 가능성들에 대해 알아보고자 합니다.
이제 컨테이너는 IT 산업 전반에서 빼놓을 수 없는 구성요소로 자리 잡고 있습니다. 이런 컨테이너는 일반적으로 가상화 기술로 소개가 되어 virtual machine과 비교되고 있습니다. 하지만 이런 접근 방법들이 컨테이너를 올바르게 이해하도록 하는데 방해가 될 수도 있다고 생각합니다.
이 세션에서는 컨테이너에 대해서 여러가지 다양한 접근 방법들과 기능들을 살펴보면서 컨테이너에 대해 다시금 생각 해볼 수 있는 시간을 갖고자 합니다. 또한 이를 통해 어떤식으로 실제 production 환경들에서 사용되어질 수 있을지 그리고 이런 모습들로 부터 향후 컨테이너의 발전방향을 이야기 해보려고 합니다.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
01 Docker란 무엇이며, 왜 필요한가?
02 Docker의 핵심 개념과 용어
03 Do(ckerize) it yourself
Docker란?
애플리케이션을 개발(developing)하고, 배포(shipping)하고, 실행(running)하기 위한 Open Platform
OS-level Virtualization(Linux Container)를 제공하기 위한 구현 제품.
애플리케이션과 인프라스트럭처의 의존관계를 분리할 수 있는 방법
가상머신(Virtual Machine)의 단점을 극복할 수 있는 리눅스 컨테이너 기술의 구현
Docker Client : 명령어를 통해 Docker Daemon에 API를 호출하여 Docker Image와 Container를 관리할 수 있는 프로그램
Docker Daemon : Docker API 요청을 수신하여 Docker Object(Image, Container, Network, Volue 등)를 관리할 수 있는 프로세스
Docker Registry : Docker Image를 저장하고 관리하는 공간. Public Registry(ex. Docker Hub)와 Private Registry가 있음.
Dockerfile : Docker Image를 빌드하기 위한 정보 및 명령어가 작성된 파일 (Docker Image를 생성하는 방법 중 하나)
Docker Image : Dockerfile, Docker Registry, 또는 다른 Docker Image로부터 생성된 컨테이너 생성을 위한 Read-only Template
Docker Container : Docker Image 위에서 실행된 특수한 형태의 격리된 프로세스
도커의 근간 기술을 이해하기 위해 도커의 역사를 살펴보고, 클러스터 환경으로 컨테이너 환경을 운영하는 쿠버네티스에 대한 핵심 개념에 대해 알아봅니다. 마지막으로 쿠버네티스 클러스터를 손쉽게 생성하고 관리할 수 있는 네이버 클라우드 플랫폼 Kubernetes service를 데모를 통해 소개해드립니다 | To understand Docker's underlying technology, we look at Docker's history and learn about the core concepts of Kubernetis, which operates a container environment in a cluster environment. Lastly, I will introduce Naver's cloud platform Kubernetes service, which allows you to easily create and manage Kubernetes clusters, through a demo.
https://cncg-kr.net/ 에서 발표한 내용입니다.
IT 서비스를 구성하는데에는 다양한 자원들(Baremetal server, Virtual machine, network switch, database, 등)이 필요합니다. 이런 자원들은 각각의 관리자등을 통해서 일반적으로 각기 다른 방법들로 관리됩니다. 다만 IaaS, PaaS와 같은 Cloud방법들이 제공되면서 보다 통합된 환경으로 이런 자원들을 관리 하게 되었으나 아직까지도 일반적으로는 이런자원들을은 각기 관리되어 불편함과 문제가 수반 됩니다. 그래서 저희는 이런 다양한 자원과 방법들을 kubernetes로 보다 선언적이며 통합적인 방법으로 만들어서 자동화를 하였고 이 세션에서는 이 내용을 소개하며 어떻게 하면 이런방법들로 접근 할 수 있을지 설명하고 이를 통해 kubernetes 에 더 많은 가능성들에 대해 알아보고자 합니다.
이제 컨테이너는 IT 산업 전반에서 빼놓을 수 없는 구성요소로 자리 잡고 있습니다. 이런 컨테이너는 일반적으로 가상화 기술로 소개가 되어 virtual machine과 비교되고 있습니다. 하지만 이런 접근 방법들이 컨테이너를 올바르게 이해하도록 하는데 방해가 될 수도 있다고 생각합니다.
이 세션에서는 컨테이너에 대해서 여러가지 다양한 접근 방법들과 기능들을 살펴보면서 컨테이너에 대해 다시금 생각 해볼 수 있는 시간을 갖고자 합니다. 또한 이를 통해 어떤식으로 실제 production 환경들에서 사용되어질 수 있을지 그리고 이런 모습들로 부터 향후 컨테이너의 발전방향을 이야기 해보려고 합니다.
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
01 Docker란 무엇이며, 왜 필요한가?
02 Docker의 핵심 개념과 용어
03 Do(ckerize) it yourself
Docker란?
애플리케이션을 개발(developing)하고, 배포(shipping)하고, 실행(running)하기 위한 Open Platform
OS-level Virtualization(Linux Container)를 제공하기 위한 구현 제품.
애플리케이션과 인프라스트럭처의 의존관계를 분리할 수 있는 방법
가상머신(Virtual Machine)의 단점을 극복할 수 있는 리눅스 컨테이너 기술의 구현
Docker Client : 명령어를 통해 Docker Daemon에 API를 호출하여 Docker Image와 Container를 관리할 수 있는 프로그램
Docker Daemon : Docker API 요청을 수신하여 Docker Object(Image, Container, Network, Volue 등)를 관리할 수 있는 프로세스
Docker Registry : Docker Image를 저장하고 관리하는 공간. Public Registry(ex. Docker Hub)와 Private Registry가 있음.
Dockerfile : Docker Image를 빌드하기 위한 정보 및 명령어가 작성된 파일 (Docker Image를 생성하는 방법 중 하나)
Docker Image : Dockerfile, Docker Registry, 또는 다른 Docker Image로부터 생성된 컨테이너 생성을 위한 Read-only Template
Docker Container : Docker Image 위에서 실행된 특수한 형태의 격리된 프로세스
도커의 근간 기술을 이해하기 위해 도커의 역사를 살펴보고, 클러스터 환경으로 컨테이너 환경을 운영하는 쿠버네티스에 대한 핵심 개념에 대해 알아봅니다. 마지막으로 쿠버네티스 클러스터를 손쉽게 생성하고 관리할 수 있는 네이버 클라우드 플랫폼 Kubernetes service를 데모를 통해 소개해드립니다 | To understand Docker's underlying technology, we look at Docker's history and learn about the core concepts of Kubernetis, which operates a container environment in a cluster environment. Lastly, I will introduce Naver's cloud platform Kubernetes service, which allows you to easily create and manage Kubernetes clusters, through a demo.
2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
Windows Kubernetes Bootstrapping and OperationsJung Hyun Nam
이 슬라이드는 Kubernetes Korea User Group 밋업 프레젠테이션 (2019년 7월 30일)에 발표한 내용입니다.
This slide was released in the Kubernetes Korea User Group MAKEUP PRESENTATION (July 30, 2019).
BRK3713 - Microsoft Azure에서 Windows와 Linux를 동시에 사용하는 하이브리드 Kubernetes 클러스터 구축Jung Hyun Nam
이 세션에서는 Windows Kubernetes 클러스터를 구축하는 방법에 대해 자세히 설명하고 Windows 노드와 Linux 노드를 동시에 구성 할 수있는 하이브리드 Kubernetes 클러스터와 함께 Polyglot DevOps 환경을 활용하는 예제를 제공합니다.
Windows 기반 노드를 Linux 기반 노드로 구성된 기존 Kubernetes 클러스터에 통합하여 복잡한 응용 프로그램을 호스팅하는 방법을 배울 수 있습니다.
01 Docker란 무엇이며, 왜 필요한가?
02 Docker의 핵심 개념과 용어
03 Do(ckerize) it yourself
Docker란?
애플리케이션을 개발(developing)하고, 배포(shipping)하고, 실행(running)하기 위한 Open Platform
OS-level Virtualization(Linux Container)를 제공하기 위한 구현 제품.
애플리케이션과 인프라스트럭처의 의존관계를 분리할 수 있는 방법
가상머신(Virtual Machine)의 단점을 극복할 수 있는 리눅스 컨테이너 기술의 구현
Docker Client : 명령어를 통해 Docker Daemon에 API를 호출하여 Docker Image와 Container를 관리할 수 있는 프로그램
Docker Daemon : Docker API 요청을 수신하여 Docker Object(Image, Container, Network, Volue 등)를 관리할 수 있는 프로세스
Docker Registry : Docker Image를 저장하고 관리하는 공간. Public Registry(ex. Docker Hub)와 Private Registry가 있음.
Dockerfile : Docker Image를 빌드하기 위한 정보 및 명령어가 작성된 파일 (Docker Image를 생성하는 방법 중 하나)
Docker Image : Dockerfile, Docker Registry, 또는 다른 Docker Image로부터 생성된 컨테이너 생성을 위한 Read-only Template
Docker Container : Docker Image 위에서 실행된 특수한 형태의 격리된 프로세스
JS Event Loop (Kitworks Team Study 김동현 발표)Wonjun Hwang
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Java Optional (Kitworks Team Study 김성호 발표)Wonjun Hwang
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help boost feelings of calmness, happiness and focus.
2. Agenda
1. What is Docker?
- Docker vs. Virtual Machine
- History, Status, Run Platforms
- Hello World
2. Images and Containers
3. Volume Mounting, Port Publishing, Linking
4. Around Docker, Docker Use Cases
5. Hands-On Workshop 2
2020-05-222
3. Bottom up
2020-05-22
What is a Container?
리눅스 컨테이너(LXC)
네임스페이스(Namespace)
Cgroup
Union fs
도커 구조
이점과 한계점
Docker Ecosystem
3
8. Standard
Docker는 컨테이너에 대한 산업 표준을 만들었으므로 어디서나 휴대 할
수 있습니다.
Lightweight
컨테이너는 시스템의 OS 시스템 커널을 공유하므로 애플리케이션 당
OS가 필요하지 않으므로 서버 효율성을 높이고 서버 및 라이센스
비용을 줄입니다.
Secure
컨테이너에서 애플리케이션이 더 안전하고 Docker는 업계에서 가장
강력한 기본 격리 기능을 제공합니다
What is a Container?
2020-05-228
9. 결론부터, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-229
10. Linux Container (LXC)
2020-05-22
LXC (LinuX Containers)는 단일 컨트롤 호스트 상에서 여러개의
고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영 시스
템 레벨 가상화 방법이다.
리눅스 커널은 cgroups를 절충하여 가상화 머신을 시작할 필요 없이 자원
할당 (CPU, 메모리, 블록 I/O, 네트워크 등)을 한다. Cgroups는 또한 애플리
케이션 입장에서 프로세스 트리, 네트워크, 사용자 ID, 마운트된 파일 시스템
등의 운영 환경을 완전히 고립시키기 위해 namespace isolation을 제공한
다.
LXC는 cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된
환경을 제공한다. Docker 또한 실행 드라이버의 하나로 LXC를 사용할 수 있
으며 이를 통해 이미지 관리와 개발 서비스를 제공한다.
– Wikipedia
10
35. 결론, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-2235
36. 결론, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-22
Stateless, Stateful – volume
Deploy – h/w에 의존적
36
37. 도커 구조 이점
Why?
도커의 기본 철학, composable
대부분 컴포넌트 전부 다른 프로젝트로 관리
호환성, 확장성이 좋다
2020-05-2237
38. 도커 구조 한계 - Stateless, Stateful
Stateless로 고안하는 방향
그럼에도 Stateful, 영속성(Persistence) 이 필요할 경우,
Volume 활용 (db나 개발 등)
2020-05-2238
39. 도커 구조 한계 – Deploy, h/w에 의존적
• 도커가 설치된 모든 곳에 동일한 이미지 배포가 가능하다 (X)
• CPU arch에 의존적이다
• 기계어가 다름
2020-05-2239
40. 결론, 컨테이너란
os level 수준 가상화,
‘격리 및 리소스 관리 기술이 적용된 프로세스‘
도커 컨테이너 구성요소
리눅스 컨테이너(LXC)
격리 == namespace
리소스(자원) == cgroup
Union fs
2020-05-22
Stateless, Stateful – volume
Deploy – h/w에 의존적
40
47. • Docker daemon
• Docker daemon 은 docker engine 내에서 주로 client 및 registry,
driver 의 중심에서 작업의 분배를 담당하는 중심점이라고 보면 되겠
다.
docker daemon 이라는 용어때문에 다소 혼선이 있을 수 있는데, 여
기에서 docker daemon은 그냥 docker engine 중에서 특정 모듈이
라고 이해하자.
client 로부터의 HTTP 요청을 내부 job 단위(가장 기본적인 작업 실
행 단위)로 처리할 수 있도록 분배한다.
즉, HTTP server 의 역할과 함께 client 요청을 분배(route and
distribute), scheduling 하고, 요청에 대한 적합한 Handler 를 찾는다.
요청에 대해 실질적인 처리는 Handler 를 통해 다른 모듈 들에게 전
달하여 수행하고 그 결과를 응답으로 작성하여 client 에게 제공한다.
2020-05-2247
51. Docker CNM(Container Network
Model)
2020-05-22
• Sandbox
• A sandbox contains the configuration of a container's network stack. This includes
management of the container's interfaces, routing table, and DNS settings. An
implementation of a sandbox could be a Linux network namespace, a FreeBSD jail, or
other similar concept. A sandbox may contain many endpoints from multiple networks.
• Endpoint
• An endpoint connects a sandbox to a network. An implementation of an endpoint
could be a veth pair, an Open vSwitch internal port, or something similar. An endpoint
can belong to only one network but may only belong to one sandbox.
• Network
• A network is a group of endpoints that are able to communicate with each other
directly. An implementation of a network could be a Linux bridge, a VLAN, and so on.
Networks consist of many endpoints, as shown in the following diagram:
51
lower dir : 아래쪽에 깔려 있는, 수많은 투명 셀로판지에 해당하는 1개 이상의 디렉터리.
upper dir : 가장 위쪽에 있는 투명 셀로판지에 해당하는 디렉터리. 최종적으로 사용자에게 보이는 파일들을 변경할 수 있다.
merge dir: 위의 그림에서, 모든 셀로판지를 겹쳐서 보는 통합 뷰 (View) 에 해당하는 디렉터리.
work dir : 통합 뷰의 원자성을 보장하기 위해 존재하는 중간 계층. Overlay를 직접 사용할 때는 크게 중요하지 않다.
Docker는 호스트 CPU 아키텍처를 따른다..
인텔(I386) arm 컨테이너는 못 돌린다
Vagrant로 VM 따로 관리 가능
Cpu, disk IO, network nic(eth) 등 설정 용이
실제 bare metal 보다 싸다(시간, 인력 등비용)