티스토리 뷰
[OpenInfra Days Korea 2018] K8s: User Groups 공동 워크샵 II-1 (최영락 - OpenStack Korea User Group & Microsoft MVP)
miiingo 2018. 7. 4. 13:59K8s: User Groups 공동 워크샵 II-1 (최영락 - OpenStack Korea User Group & Microsoft MVP)
컨테이너 인프라와 Kubernetes (K8s) 소개
컨테이너
- 패키징 및 배포 결과
- VM 대안으로 보다 가볍고 효율적인 다양한 사례 등장
하나의 가상머신이 될수도 피지컬 하드웨어가 될 수도 있다. 가볍고 효율적이게 등장.
도커는?
- Linux 컨테이너 서비스 중 대표적인 하나
- 개발자와 시스템관리자를 위한 분산 Application용 Open platform
- Hypervisor 없이 Application을 격리된 상태에서 실행하는 경량의 가상화 솔루션
- 소프트웨어의 모든 종속성을 포함하여 어디서나 구동될 수 있도록 표준화된 형태의 pacakge로 만들고, 실행할 수 있게 해주는 솔루션
Why Docker? N x M matrix
컨테이너를 만들면, dependency hell을 없애줌
리눅스 커널의 기능들이 발전되면서 도커의 기능이 확장
Docker 개념
- 기존의 VM이 Hardware와 OS의 모든 부분까지 가상화하는 것에 비해서, Docker는 기존의 Host OS의 기본 Kernel 등을 그대로 공유해서 사용
- Guest OS는 Host OS의 기본 Kernel을 사용하여, 그 위에 필요한 부분만 Packing을 하기 때문에 기존의 VM방식보다 성능에 대한 이슈가 줄어듬
Docker 컨테이너
- Docker의 Guest OS는 Linux Container(LXC)를 사용하는 방식으로 동작되었지만, Docker v0.9부터는 'Go'로 작성 되어진 libcontainer Driver를 통해서 직접 kernel API에 접근 가능.
- ※ LXC에 대한 사용도 지속적으로 지원
- Container를 사용하는 방식을 통해서 Guest OS를 Host OS로부터 solation하게 동작.
도커의 장단점
장점
- 완벽한 이식성을 통한 동일한 환경을 제공하여, 환경에 대한 문제점 해소
- 빠른속도와 가벼움
- OS의 Resource 사용을 최소화하여 오버헤드를 줄임.
단점
- HOST OS에 대한 종속
- Container의 Guest OS는 Linux kernel에 대한 종속
- 기존 Hypervisor를 통한 가상화 대비한, 사용자에 비 친화적인 환경
Kubernetes란?
- k8s라고도 함
- 머신 클러스터 상에서 운영이 이루어지는 소프트웨어
- 컨테이너 관리를 위한 선언적 언어
- 컨테이너 클러스터에 대한 시작, 중지, 업데이트 및 관리 가능
- 오픈 소스(초창기 Google이 lead)
Kuernetes를 이해하기 위해 알아야 할것들
- 클러스터 / Cluster (Nodes)
- 컨테이너 / Container
- 팟 / Pod
- 라벨 / Labels
- 복제 컨트롤러 / Replication Controller
- 서비스 / Service
팟 / Pod
- 스케줄링이 가능한 k8s 단일 작업 단위
- 머신 간 이동 불가능
- 여러 머신으로 확장 불가능
- 컨텐스트를 공유하는 컨테이너 그룹
- 공유 IP
- 공유 볼륨
- 각 pod은 각자 유일한 IP 주소를 얻음
라벨 / Labels
- 임의의 키-값 쌍을 가질 수 있음
- 라벨을 사용하여 개체를 query함
- 사용하는 부분:
- pod을 복제 컨트롤러와 매칭
- pod을 서비스와 매칭
- DNS 항목과 동일한 네이밍 규칙을 사용
- tier=web, version=1.2, webserver != nginx
OpenStack에서의 "Container & Kubernetes"
Magnum
컨테이너 오케스트레이션 엔진을 프로비저닝, 스케일링 및 관리를 하기 위한 서비스 집합
Kuryr
컨테이너 네트워킹 모델 ↔ OpenStack 네트워킹 모델
컨테이너에서 Neutron에서 정의된 네트워크를 직접 사용
Fuxi
컨테이너 스토리지 모델 ↔ OpenStack 스토리지 모델
컨테이너/K8s에서 Cinder 및 Manila 볼륨을 직접 사용 가능
Zun
OpenStack 인프라 환경 위에 컨테이너를 직접 관리
※ 참고 : Nova-docker는 Nova API를 통해 docker에 액세스를 할 수 없었으나, Zun은 컨테이너를 관리 가능한 모든 API를 제공함
Kolla
OpenStack 핵심 구성 요소들을 컨테이너화하여 관리
OpenStack-helm
Helm은 Kubernetes에 어플리케이션을 chart 단위로 배포하는 도구
OpenStack-helm은 컨테이너화된 OpenStack 구성요소를 Helm을 통해 cart 단위로 배포
Azure와 Container Service, 그리고 AKS
Azure에서의 컨테이너 지원 방식
- Docker VM Extension (템플릿)
- Azure Driver with Docker-Machine
- Container Service
- Kubernetes Services (AKS)
Docker VM Extension (템플릿)
Docker-Machine
- https://docs.docker.com/machine/overview/
- Docker 엔진을 일종의 가상 호스트에서 docker-machine 명령어로 이기종 플랫폼에서 실행 가능하도록 설계
- Mac, Windows Box + Azure, AWS 등 클라우드 지원
Azure Driver with Docker-Machine
- Docker-Machine 명령어 실행 가능하도록 제공되는 Azure 컨테이너 환경
docker-machine create -d azure \
--azure-ssh-user ops \
--azure-subscription-id <Your AZURE_SUBSCRIPTION_ID> \
--azure-open-port 80 \
machine
Container Service
- Azure에서 컨테이너 관리 서비스인 DC/OS (w/ Mesos + Marathon), Swarm, Kubernetes 등과 통합 관리 가능한 환경 지원을 위한 서비스
Azure Container Service(ACS)는 컨테이너화된 응용 프로그램을 실행하도록 미리 구성된 가상 머신의 생성, 구성 및 관리를 간소화하는 방법을 제공합니다. 인기 있는 오픈 소스 예약 및 오케스트레이션 도구의 최적화된 구성을 사용하여 ACS는 기존 기술을 사용하거나 대규모 커뮤니티 전문가를 통해 컨테이너 기반의 응용 프로그램을 Microsoft Azure에 배포하고 관리할 수 있습니다.
ACS는 Docker 이미지를 활용하여 응용 프로그램 컨테이너를 완전히 이식 가능하도록 합니다. 또한 이러한 응용 프로그램이 수천, 수만 개의 컨테이너로 확장할 수 있도록 오케스트레이션에 대해 Kubernetes, DC/OS(Apache Mesos에서 제공) 또는 Docker Swarm을 선택할 수 있도록 합니다.
Kubernetes Services (AKS)
- ACS가 VM을 직접 배포하는 것과 달리, AKS는 managed Kubernetes 환경
정리
- 인프라 기술에서 컨테이너 (Docker) 및 컨테이너 오케스트레이션 (Docker Swarm, Kubernetes) 기술이 발전하였음
- OpenStack에서는 컨테이너를 인프라에 도입하고자 하는 다양한 기술 시도가 이루어졌음
- Azure 역시 다양한 접근 방식으로 컨테이너 및 컨테이너 오케스트레이션을 지원하고자 함
- OpenStack Foundation에서는 또한 Katacontainer를 통한 Container + Lightweight VM을 활용하는 새 프로젝트를 2017년 12월 발표
- 위 기술들은 현재 Linux 기반을 가정으로 하고 있으며, 다음 세션에서 Windows와 관련된 컨테이너 내용을 설명할 것임
'교육 및 세미나' 카테고리의 다른 글
[외부 교육&세미나] Hyperledger Seoul Meetup 8월 모임 (0) | 2018.08.24 |
---|---|
[OpenInfra Days Korea 2018] K8s: User Groups 공동 워크샵 II-2 (남정현 - Korea Azure User Group) (0) | 2018.07.04 |
[OpenInfra Days Korea 2018] 실 업무에 사용해보는 Kubernetes (공진기 - IBM) (0) | 2018.07.04 |
[교육 및 세미나] 박승철의 블록체인 강의: 3강 Hyperledger Fabric 거래의 처리 (0) | 2018.06.19 |
[교육 및 세미나] 박승철의 블록체인 강의: 2강 Hyperledger Fabric의 구조 (0) | 2018.06.19 |
- Total
- Today
- Yesterday
- javascript
- 직딩잇템
- 블록체인
- 빅데이터 강의
- 어서와 데이터는 처음이지
- ambrosus
- 빅데이터 기초
- 코딜리티
- 암브로셔스
- 코테
- Hyperledger Fabric v1.1
- Blockchain
- 코딩테스트
- 빅데이터 교육
- docker
- 기초 of 기초 데이터 개념
- 문제풀이
- ubuntu
- Private Data
- 하이퍼레저 페브릭
- Hyperledger Fabric
- 블록 체인
- Hyperledger Fabric v1.2
- 알고리즘
- Hyperledger Indy
- DOCs
- codility
- 하이퍼레저 인디
- 빅데이터
- 하이퍼레저 패브릭
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |