티스토리 뷰

반응형

K8s: User Groups 공동 워크샵 II-1 (최영락 - OpenStack Korea User Group & Microsoft MVP)


발표 자료 : https://www.slideshare.net/openstack_kr/openinfra-days-korea-2018-k8s-workshop-with-containers-k8s-on-openstack-azure?ref=https://www.slideshare.net/openstack_kr/slideshelf


컨테이너 인프라와 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와 관련된 컨테이너 내용을 설명할 것임


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함