검토 : Docker 및 컨테이너를위한 최고의 Linux 배포판

지난 6 개월 동안 컨테이너 실행에 최적화 된 5 개의 최소 Linux 배포 인 Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host 및 VMware Photon OS를 검토했습니다. 일반적으로 "컨테이너 운영 체제"로 알려진 이러한 제거 된 목적으로 구축 된 Linux 배포판은 프로덕션 환경에서 컨테이너를 실행하는 유일한 방법은 아니지만 컨테이너 지원 외에 리소스를 낭비하지 않는 기반을 제공합니다.

컨테이너 배포 시스템이있는 업계의 상태는 Linux 배포 초기와 매우 유사합니다. 하나의 핵심 요소 (이 경우 Docker 컨테이너)가 있으며, 이는 여러 경쟁 생태계 구성 요소로 둘러싸여 있습니다. 기존 Linux 배포판이 다양한 패키지 관리자, 데스크톱 환경, 시스템 유틸리티, 서비스 및 앱을 번들로 제공 한 것처럼 대부분의 컨테이너 배포판은 다양한 구성 요소를 혼합하고 일치시켜 최적의 솔루션으로 간주하는 것을 만듭니다. 예를 들어 분산 구성 및 서비스 검색을 사용하십시오. Etcd, Consul 및 ZooKeeper와 같은 몇 가지 솔루션이 있습니다.

각 배포는 스택에 포함 할 항목에 대해 다른 접근 방식을 사용합니다. 한 극단에는 CoreOS Container Linux 및 Red Hat Project Atomic과 같이 더 높은 수준의 스택 만 지원하도록 설계된 배포판이 있습니다. 너무 많은 기능이 독점 관리 계층에 포함되어 다른 용도로 OS를 사용할 가능성이 거의 없습니다. RancherOS 및 VMware Photon OS와 같은 다른 배포판은 더 큰 유연성을 제공하여 여러 에코 시스템 구성 요소 및 오케스트레이션 시스템을 지원합니다. 이를 통해 관리자는 실험하고 잠재적으로 공급 업체 종속을 피할 수있는 좋은 방법을 얻을 수 있습니다.

알파인 리눅스

많은 공식 Docker 이미지의 기본 운영 체제 인 Alpine Linux는 작업에 적합한 선택입니다. 크기가 5 메가 바이트에 불과한 Alpine Linux는 솔라리스와 경쟁하고 대규모 하드웨어 시스템에서 실행될 예정이었던 몇 년 전의 완전한 Linux 배포와는 정반대에 있습니다. 이 새로운 유형의 Linux는 임베디드 하드웨어에서 실행되고 최소한의 리소스를 소비하도록 설계되어 컨테이너에 대한 완벽한 선택입니다.

임베디드 시스템 OS로서의 Alpine Linux의 유산은 필자가 검토하는 동안 분명했습니다. 대부분의 구성 옵션은 기본적으로 임베디드 시스템으로 설정되어 있으며 많은 영역의 설명서가 드물거나 존재하지 않았습니다. 분명히 해커를 위해 설계되고 주로 사용되는 시스템 인 Alpine Linux는 기업이 애플리케이션을 구축하는 데 몇 가지 장애물을 제거해야합니다.

Alpine Linux의 프로덕션 배포는 빠른 시작, 최소한의 풋 프린트, 다른 곳에서는 찾을 수없는 안전한 기본 스탠스를 포함하여 몇 가지 이점을 누릴 것입니다. 시스템 바이너리에서 C 라이브러리에 이르기까지 모든 것은 작고 빠르고 안전한 배포를 위해 설계되었습니다. 여기에 부풀음이 없습니다.

Alpine Linux의 관리는 기존 Linux 시스템과 다르며 배우는 데 시간이 걸립니다. 설치 및 패키지 관리는 잘 생각했지만 컨테이너 운영 체제 간에도 고유합니다. 개발 샵에 투자 할 의사가있는 평균 이상의 개발자가있는 경우 Alpine Linux는 향후 오랫동안 애플리케이션에 견고하고 안정된 보안 기반을 제공 할 것입니다.

CoreOS 컨테이너 Linux

CoreOS 컨테이너 스택은 분산 스토리지 및 서비스 검색을 위해 Etcd를, 네트워킹을 위해 Flannel을, 컨테이너 오케스트레이션을 위해 Kubernetes를 사용하며 Docker 외에도 자체적 인 컨테이너 형식 인 rkt (Rocket)를 지원합니다. Rocket은 2015 년경 Docker 형식의 단점을 해결하기위한 경쟁 컨테이너 형식의 시도 였지만 이러한 결함이 해결 되었기 때문에 Rocket은 많은 관심을받지 못했습니다.

관련 비디오 : Kubernetes 란 무엇입니까?

90 초 분량의이 동영상에서는 기술 발명가 중 한 명인 Heptio의 창립자이자 CTO 인 Joe Beda로부터 컨테이너 식 애플리케이션 자동화를위한 오픈 소스 시스템 인 Kubernetes에 대해 알아 봅니다.

Project Atomic과 마찬가지로 CoreOS는 기존 Linux에서 급격한 차이를 두려워하지 않습니다. Red Hat의 컨테이너 OS와 마찬가지로 CoreOS Container Linux는 대부분 변경 불가능한 파일 시스템을 생성하지만 Google의 Chromium OS에서 영감을받은 디스크 파티셔닝 시스템을 사용합니다. 이것이하는 일은 파티션에 이전 파일 시스템을 보존하는 것입니다. 즉, 롤백은 항상 안전하고 빠릅니다.

문서는 상당히 훌륭하고 포괄적이지만 구성 파일을 파생하는 2 단계 프로세스를 포함하는 설치가 다소 번거 롭다는 것을 알았습니다. 그러나 일단 설치되면 CoreOS는 고유 한 디스크 파티션 레이아웃을 통해 가능한 기능인 지속적인 "다운 타임 없음"업그레이드를 제공합니다. CoreOS는 여기서 많은 작업을 수행했으며 회사는 옵트 아웃 기능을 포함하여 대부분의 조직에 적합한 다양한 유지 관리 옵션을 제공합니다.

Project Atomic과 다소 유사한 CoreOS는 전부 또는 전무 결정입니다. 조각을 분리하고 기본 OS를 사용하여 자체 컨테이너 인프라를 구축하는 것은 모든 아키텍처 설계 결정이 플랫폼에 포함되어 있기 때문에 실제로 선택 사항이 아닙니다. 이러한 결정을 기꺼이 받아들이고 CoreOS의 상용 Kubernetes 배포 인 Tectonic에 비용을 지불하고 싶다면 심각한 작업을 수행 할 수 있습니다.

Rancher Labs RancherOS

Rancher Labs의 RancherOS는 전적으로 컨테이너로 구성된 Linux 운영 체제입니다. 초기화 프로세스 (PID 1)도 Docker 컨테이너입니다. 이는 패키지 관리 시스템이 필요 없음을 의미합니다. OS 업그레이드 (및 다운 그레이드)는 다른 컨테이너와 마찬가지로 Docker로 관리됩니다.

이 접근 방식은 Project Atomic 및 CoreOS와 같은 일부 다른 배포판에서 내린 아키텍처 결정만큼 급진적이지만 결과는 놀랍도록 단순합니다. 처음에는 완전히 새로운 시스템 관리를 배우는 것이 힘들어 보이지만 어쨌든 컨테이너를 관리하려면 Docker를 알아야합니다. 두 가지 모두에 동일한 시스템을 사용하는 것은 어떻습니까?

RancherOS는 빠르게 성숙하고있는 것 같습니다. 내 리뷰에서 문서가 약간 부족하다는 것을 발견했지만 Docker 컨테이너에 익숙한 개발자 또는 관리자는 이미 대부분의 시스템을 알고있을 것입니다. RancherOS는 설치 공간이 작으며 (20MB) 리소스를 효율적으로 사용합니다. Rancher, 컨테이너 관리 시스템과 Rancher the OS 사이의 경계는 다소 모호하지만 컨테이너 관리 시스템은 무료이며 오픈 소스이므로 직접 롤링 할 이유가 없습니다. 소스 코드에 액세스해야하는 조직은 더 이상 볼 필요가 없습니다.

Rancher 플랫폼은 Docker Swarm, Kubernetes 및 Mesos를 포함하여 컨테이너 관리를위한 도구의 거의 전체 에코 시스템을 지원하며 빠르게 발전하고 있습니다. 기존 UNIX와는 근본적으로 다르지만 RancherOS는 다른 컨테이너 OS 배포판보다 기본 UNIX 철학에 더 가깝게 고수 한 것 같습니다. 단순 도구는 우아하게 함께 작동합니다.

Red Hat Project Atomic

Red Hat의 Project Atomic은 쿠 버네 티스 서비스 오케스트레이션 진영에 확고하게 참여하고 있습니다. 일반적으로 이러한 유형의 배포는 대규모의 고 가용성 시나리오에 맞춰져 있습니다. 단점은 본질적으로 "말한대로 수행"하고 관례에 따라 애플리케이션을 설계해야한다는 것입니다.

상자에는 네트워킹 용 Flannel, 분산 키-값 저장 소용 Etcd 및 호스트 관리 용 OSTree가 있습니다. OSTree는 안정적이고 분산 된 방식으로 대규모 OS를 배포하는 비교적 새로운 방법입니다. Atomic은 OSTree와 새로운 RPM 패키지 관리자를 결합하여 대부분 변경 불가능한 파일 시스템을 제공하는 RPM-OSTree를 생성합니다.

저는 Project Atomic이 도전이라는 것을 알았습니다. 움직이는 부분이 많은 매우 야심 차고 빠르게 움직입니다. RHEL, CentOS, Fedora, SELinux, Systemd, 기본 호스트를 제어하기위한 사용자 정의 "Docker"명령 세트… 모두 혼합되어 있으며 문서가 혼란스럽고 혼란 스럽습니다. 또한 Chef, Salt 또는 Puppet이없는 소규모 클러스터에서는 각 노드를 수동으로 구성해야했습니다.

결론은 Project Atomic이 여전히 베이킹하는 데 시간이 필요하다는 것입니다. 비전이 실현되면 수백 개의 노드가있는 데이터 센터가 아니라 수천 또는 수만 개의 데이터 센터가 미래의 표준이 될 수 있습니다. 이 점에서 비전은 일반적인 컨테이너 배포 시스템보다 Mesos의 비전에 더 가깝게 보입니다. 회사가 Red Hat 에코 시스템을 살아 숨 쉬고 있고 그 자리에 머물 계획이라면 Project Atomic을 시작할 가치가있을 것입니다.

VMware Photon OS

VMware의 Photon OS는 설치 공간이 작고 VMware 하이퍼 바이저에 맞게 조정 된 최소 Linux 컨테이너 호스트입니다. 따라서 Photon OS는 가상 환경에서만 실행됩니다. 물리적 하드웨어에 배포 할 수 없습니다. Photon OS는 컨테이너 관리를 더 쉽게 할 수 있도록 사용자 정의되었지만 Atomic 또는 CoreOS만큼 근본적인 것은 아닙니다. Photon OS는 진화 단계에 가깝습니다.

내 테스트를 기반으로 Photo OS는 VMware 가상 환경에서 약속을 지킵니다. (Photon OS는 Google 및 Amazon 클라우드뿐만 아니라 다른 하이퍼 바이저에서도 실행될 수 있습니다.) Photon OS는 하드웨어 (가상)에 대한 가정을 할 수 있기 때문에 에코 시스템은 표준 Linux와 매우 유사하여 학습 곡선이 덜 가파르게 보입니다. 네트워킹 및 스토리지는 Systemd와 호환되며 컨테이너 네트워킹에 대해 문서화 된 다양한 옵션이 있습니다. Photon OS에 대한 문서는 검토 된 제품 중 최고 일 수 있습니다.

VMware는 기존 환경에서 컨테이너를 생산하는 데 앞장서고 있으며 이는 생각할 때 의미가 있습니다. 컨테이너와 VM의 차이점을 설명하라는 요청을 얼마나 자주 받았습니까? Photon OS를 사용하면 곧 차이가 없습니다. 컨테이너는 동일한 도구로 배포 및 관리되는 경량 VM 일뿐입니다. Photon OS는 Docker 및 Rocket 컨테이너, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 등 컨테이너 생태계의 거의 모든 주요 부분을 지원합니다.

내가 검토 한 모든 배포판 중에서 VMware Photon OS는 가장 비전이 많고 현재 가장 완벽하고 유용합니다. 컨테이너화를 탐구하는 VMware 매장이라면 다른 것을 고려하지 않을 것입니다. VMware 상점이 아니더라도 Photon OS는 여전히 좋은 가치가 있습니다.

컨테이너 운영 체제 비교

Alpine Linux는 대부분의 모든 Docker 이미지를 뒷받침합니다. 임베디드 애플리케이션에 완벽한 Alpine Linux는 컨테이너를 실행하는 방법으로 생각해서는 안됩니다. 대신 Alpine Linux 컨테이너입니다. Alpine Linux에서 애플리케이션을 빌드하는 데 익숙한 개발자는 더 나은 컨테이너 애플리케이션을 작성할 것입니다.

초기 컨테이너 운영 체제 중 하나 인 CoreOS는 Google 기술 스택을 채택합니다. 신뢰할 수 있지만 독단적이지만 컨테이너 인프라를 관리하는 방법을 제공합니다. CoreOS는 많은 구성 요소를 오픈 소스로 사용할 수 있도록하지만 이러한 대규모 스택을 효과적으로 학습하는 데 따른 복잡성은 사용자가 프로덕션 배포를 위해 독점적 인 Techtonic 오케스트레이션 시스템을 구매해야 함을 의미합니다. 돈이 문제가되지 않고 Google 크기의 애플리케이션을 배포해야하는 경우 CoreOS는 논리적 선택입니다.

RancherOS는 순수한 컨테이너입니다. 자체 컨테이너 인프라를 롤링하거나 최소한의 컨테이너 관리 스택을 원하는 경우 RancherOS가 시작하는 곳입니다. Docker Swarm, Kubernetes 및 Mesos와 같은 오픈 소스 오케스트레이션 및 스케줄링 도구를 모두 무료로 사용할 수있는 Rancher 스택은 오픈 소스 지향의 DIY 회사에 어필 할 것입니다.

Red Hat의 Project Atomic은 기업이 인프라를 배포하는 방식을 재 설계하는 포괄적 인 프로젝트입니다. 이 야심 찬 프로젝트는 기업이 애플리케이션 배포에 대해 생각하는 방식을 바꿀 수 있지만 그 길이 멀다. Project Atomic은 Red Hat 기술에 대한 기존 투자가 많은 얼리 어답터에게 가장 적합합니다.

VMware의 Photon OS는 해당 벤더의 가상 머신 관리 기술과 경험을 컨테이너에 제공합니다. Photon OS는 가상 머신으로 배포되며 기존의 VM 도구로 관리됩니다. VMware는 기존 VM의 벽에 글을 쓰는 것으로 보아도 컨테이너 기술을 전적으로 수용했으며 최신 기술을 빠르게 발전시키고 있습니다. 현재 VMware 매장이라면 Photon OS보다 더 나은 컨테이너 플랫폼을 찾기가 어려울 것입니다.

컨테이너 Linux 리뷰 읽기 : 

  • 검토 : Alpine Linux는 Docker 용으로 만들어졌습니다.
  • CoreOS 검토 : 컨테이너 및 Kubernetes 용 Linux
  • RancherOS : Docker 애호가를위한 더 간단한 Linux
  • 검토 : Red Hat은 Docker를 어려운 방식으로 수행합니다.
  • 검토 : VMware의 Photon OS가 Docker 컨테이너를 위해 빛나다