Linux 운영 체제는 다양한 형태로 제공됩니다. Ubuntu와 같은 Linux 운영 체제는 상당히 일반적이지만 다른 일부는 틈새 시장을 목표로 합니다. 보안 지향적인 Kali Linux가 있습니다. Xubuntu 및 Hannah Montana Linux(!)와 같은 경량 배포판. 데스크탑 사용의 경우 바닐라 Linux 운영 체제가 잘 작동합니다. 그러나 서버 실행과 같은 특수 작업의 경우 맞춤형 버전을 찾는 것이 가장 좋습니다.
컨테이너가 점점 인기를 얻고 있습니다. 이전에 CoreOS로 알려졌던 Container Linux는 간단한 컨테이너화된 배포를 위해 설계된 Linux 운영 체제입니다. 최신 틈새 Linux 운영 체제 중 하나입니다. 이 개요와 Container Linux에 대한 실습 보기를 확인하세요.
컨테이너 Linux 실습:배경 지식
Container Linux에 대해 알아보기 전에 서버 아키텍처에 대한 간략한 개요부터 시작하겠습니다. Container Linux는 클러스터 배포용으로 설계되었습니다. 클러스터링된 배포는 상당히 복잡하게 들리지만 오히려 간단합니다. 기본적으로 컴퓨터 클러스터는 함께 작동하는 여러 서버로 구성됩니다. 따라서 여러 장치가 아닌 하나의 단위 또는 시스템으로 작동합니다. 또한 클러스터의 컴퓨터에는 동일한 기능을 수행하는 노드 또는 서버가 있습니다. 따라서 노드는 단일 시스템이고 클러스터는 함께 작동하는 서버 그룹입니다.
가장 일반적인 Container Linux 배포는 클러스터 환경 내에 있습니다. 이전에 CoreOS로 알려진 배포판에는 단 하나의 시스템에서 클러스터를 스핀업하는 수단도 포함되어 있습니다. 그러나 Container Linux의 정의적인 특징은 컨테이너에 대한 의존성입니다.
기존 데스크톱 운영 체제와 달리 모든 애플리케이션은 컨테이너에서 실행됩니다. 가상 머신(VM)과 컨테이너는 모두 가상화 방법을 사용하지만 컨테이너는 다릅니다. VM과 달리 컨테이너는 호스트 시스템과 동일한 운영 체제 커널을 사용합니다. 컨테이너화된 앱과 호스트 시스템은 동일한 커널을 사용하기 때문에 컨테이너 배포는 효율성 향상의 이점을 얻습니다. 가상 머신 구성에서 각 VM은 앱과 게스트 운영 체제를 실행합니다. 이것은 호스트 운영 체제 및 하드웨어 위에서 실행됩니다.
컨테이너화된 배포는 대신 가상화 소프트웨어 위에 있는 자체 컨테이너에서 앱을 실행합니다. chroot, LXC 및 Linux-VServer가 Docker 대안 중 하나이지만 Docker는 여전히 가장 인기 있는 컨테이너 소프트웨어입니다.
컨테이너 Linux 실습:컨테이너를 사용하는 이유
네, 컨테이너는 가상화 방법입니다. 컨테이너화된 환경을 선택하는 이유는 무엇입니까? 일반적으로 컨테이너는 향상된 성능을 제공합니다. 별도의 운영 체제를 피하고 대신 공유 커널을 사용하면 CPU, 스토리지 및 메모리 효율성을 극대화할 수 있습니다.
VM 구성에서와 같이 여러 운영 체제 인스턴스를 실행할 필요가 없으므로 더 많은 컨테이너를 실행할 수 있습니다. 성능 향상은 단일 운영 체제의 필요성에서 비롯됩니다. 마찬가지로 가상 머신 환경보다 더 빠르게 컨테이너를 생성할 수 있습니다. 따라서 컨테이너는 민첩성을 유지하고 지속적 제공 및 지속적 통합을 허용하는 데 더 적합합니다.
애자일 개발은 반복과 예측 불가능성을 고려하는 데 중점을 둡니다. 애자일 철학에 대한 자세한 통찰력은 애자일 선언문을 참조하십시오. 그러나 컨테이너의 장점에도 불구하고 완벽한 가상화 방법은 아닙니다. 컨테이너가 호스트 운영 체제 커널을 공유하므로 보안 위험이 있습니다. 컨테이너에 영향을 미치는 모든 취약성 또는 침해는 운영 체제에 대한 액세스 권한을 얻습니다. 그러나 가상 머신 내의 운영 체제에서 컨테이너화된 앱을 실행하는 해결 방법이 있습니다. 이렇게 하면 호스트 시스템 운영 체제가 단일 컨테이너 호스트 운영 체제에서 격리됩니다.
또한 컨테이너화는 컨테이너가 동일한 운영 체제를 사용해야 합니다. 가상 머신을 사용하면 각 애플리케이션은 자체 운영 체제를 갖게 됩니다. 따라서 컨테이너화된 Linux 환경에서 Windows Server용으로 설계된 앱을 실행할 수 없으며 그 반대의 경우도 마찬가지입니다.
컨테이너 Linux 실습:컨테이너 Linux란 무엇입니까?
CoreOS 또는 현재 Container Linux라고 불리는 것은 오픈 소스 Linux 운영 체제입니다. 클러스터 배포를 목표로 하는 경량 배포판입니다. 보다 구체적으로 CoreOS는 간단하고 안정적이며 확장 가능한 배포에 중점을 둡니다. 패키지 관리자를 찾을 수 없습니다. 대신 Container Linux에서는 모든 앱이 컨테이너 내에서 실행되어야 합니다. Container Linux는 Chrome OS를 기반으로 사용합니다. 따라서 Container Linux는 여전히 매우 가볍습니다. 테스트를 위해 구형 HP Envy m6-1205dx AMD A10 기반 노트북의 가상 머신에서 이전에 CoreOS로 알려진 Linux 운영 체제를 실행했습니다. 시스템 리소스 소비가 상당히 낮습니다.
Container Linux는 몇 가지 전통적인 데스크탑 Linux 운영 체제 기능을 피하기 때문에 배포를 가볍게 유지합니다. 데스크탑 운영 체제와 달리 패키지 관리자를 찾을 수 없습니다. 대신 모든 애플리케이션이 Docker 컨테이너로 실행됩니다. 이것은 이식성과 서비스 격리를 가능하게 합니다. 데스크탑 환경을 원한다면 운이 없습니다. Container Linux에는 그래픽 사용자 인터페이스가 없습니다. 대신 모든 것이 명령줄 기반입니다. CoreUpdate 대시보드는 시스템 상태, 실행 중인 서비스 및 클러스터 상태에 대한 정보를 제공합니다. 그러나 Premium Managed Linux 구독의 구성 요소로만 사용할 수 있습니다.
컨테이너 리눅스 아키텍처
Container Linux는 경량이며 컨테이너화 및 클러스터링을 위해 설계되었습니다. 데스크탑 환경이 없기 때문에 구성은 CentOS 또는 Ubuntu와 같은 Linux 운영 체제와 다르게 작동합니다. 초기 부팅 시 Container Linux는 클라우드 구성 파일을 로드합니다. cloud-config에 정보를 입력해야 합니다. 이것은 특히 cloud-config에 익숙하지 않은 사람들에게는 약간 까다로울 수 있습니다. 그러나 Container Linux에 필수 서비스를 로드하고, 매개변수를 변경하고, 클러스터를 관리하는 기능을 제공하는 필수 파일입니다.
또한
etcd
그리고
fleetd
데몬은 Container Linux의 필수 요소로 남아 있습니다. 이 두 서비스는 기본적으로 시작 시 시작됩니다. 또한 부팅 시 cloud-config 파일을 통해 호스트가 기존 클러스터에 가입하는 방법을 알 수 있습니다.
etcd
데몬은 클러스터 내의 호스트에 대한 데이터를 배포하고 저장합니다. 구성 및 서비스 검색을 유지 관리하는 데 필수적입니다.
fleetd
데몬은 분산 초기화와 유사합니다. 이 데몬은
systemd
클러스터의 호스트에 대해 초기화하고 서비스 예약과 같은 작업을 처리합니다.
의 각 시스템
fleetd
클러스터는 하나만 실행
fleetd
악마. 이 데몬은 에이전트와 엔진 역할을 하는 두 가지 주요 책임을 가정합니다. 엔진으로서 데몬은 스케줄링 결정을 수행합니다. 에이전트 측이 단위를 실행하는 반면. 함대 클러스터에서
etcd
유일한 데이터 저장소입니다. 클러스터 존재, 유닛 상태 및 유닛 파일과 같은 정보는 모두
내에 저장됩니다.etcd
악마. 또한 함대 에이전트 및 엔진 통신을 위한 매체입니다.
컨테이너 Linux 실습:누가 사용해야 합니까?
Container Linux는 무료로 다운로드할 수 있고 가벼우며 가상 머신에 설치하기가 상당히 쉽습니다. 빠르고 확장 가능하며 컨테이너화된 배포가 필요한 사람은 누구나 Container Linux를 선택해야 합니다. 대부분 시스템 관리자와 데이터베이스 관리자는 Container Linux에서 가장 큰 혜택을 볼 것입니다. Container Linux는 데스크톱 환경이 없기 때문에 클러스터 관리 및 서버 설정에 가장 적합합니다. Linux 서버 운영 체제를 찾고 있다면 Container Linux는 최고의 Linux 서버 배포판 12개 중 하나입니다.
Air Pair는 CoreOS 인센티브에 대한 훌륭한 글을 제공합니다. 이 기사에서는 Container Linux를 사용하기 위한 주요 이점으로 고가용성, 프로덕션 환경 유지 관리, 소프트웨어 버전 제어 및 etcd를 언급합니다. 특히 믿을 수 없을 정도로 헌신적인 오픈 소스 커뮤니티도 있습니다. Container Linux는 숙련된 Linux 사용자를 위해 맞춤화되었습니다. 도움말 문서는 포괄적이지만 어느 정도 Linux에 익숙하다고 가정합니다. 초심자 및 초보자 사용자는 초기 설치에 약간의 어려움이 있을 수 있습니다.
더 구체적으로 말하면, 클라우드 구성이 어려울 수 있습니다. 한 CoreOS 설치 비디오의 댓글 섹션에서 YouTube 사용자인 Setyoso Nugroho는 "좋은 튜토리얼! CoreOS에서 #cloud-config 파일 구성을 배울 때 상당히 혼란스럽습니다."라고 말했습니다. 구성이 크게 어렵지는 않지만 Container Linux는 VIM 편집기와 같은 Linux 기능을 잘 알고 있다고 가정합니다.
컨테이너 Linux 실습:설치 방법
Container Linux를 설치하는 방법에는 여러 가지가 있습니다. CoreOS 웹사이트에 따르면 공식 플랫폼에는 Amazon EC2, DigitalOcean, Microsoft Azure, 베어메탈 및 OpenStack이 포함됩니다. Oracle Linux, CentOS 및 Suse와 함께 CoreOS는 소수의 Azure 호환 Linux 운영 체제 중 하나입니다. 활기찬 커뮤니티 덕분에 Packet, Rackspace, Brightbox, VirtualBox 및 VMware와 같은 플랫폼도 지원됩니다. 가장 쉬운 방법은 ISO 파일을 사용하여 VirtualBox에 Container Linux를 설치하는 것입니다. 다음은 VirtualBox 사용 방법에 대한 빠른 가이드입니다.
VirtualBox 구성
VirtualBox를 열면 가상 머신 이름, 운영 체제 유형 및 버전을 묻는 메시지가 표시됩니다. 저는 간단히 CoreOS라고 불렀습니다. 유형으로 Linux를 선택합니다. 버전으로 Linux 2.6/3.x/4/x(64비트)를 사용합니다. 다음을 클릭하십시오.
이제 RAM을 할당해야 합니다. CoreOS는 최소 1024MB의 RAM을 권장합니다.
RAM을 선택한 후 가상 하드 디스크를 추가해야 합니다. 지금 가상 하드 디스크 만들기 옵션을 사용하십시오.
다음 화면에서 하드 디스크 파일 형식을 묻는 메시지가 표시됩니다. VDI 또는 VirtualBox 디스크 이미지를 선택합니다.
그런 다음 저장 공간을 구성합니다. 동적으로 할당된 하드 디스크 파일을 사용하는 것이 좋습니다.
그런 다음 파일 위치와 크기를 선택합니다. 기본 CoreOS 이름을 그대로 두고 8GB 파일 데이터 크기를 선택했습니다.
CoreOS VirtualBox 가상 머신이 올바르게 구성된 상태에서 녹색 시작 버튼을 클릭합니다.
시작을 클릭하면 시동 디스크를 선택해야 합니다. CoreOS ISO가 있는 폴더로 이동하여 계속 진행합니다.
컨테이너 Linux 구성
CoreOS ISO를 시작한 후 Container Linux가 로드되기 시작합니다. 결국 CoreOS 버전을 제공하는 라인과 다음과 같은 명령줄을 보게 될 것입니다.
core@localhost
입력:
sudo openssl passwd -1 > cloud-config-file
명령줄은 구성 파일을 열 수 없는 경우 경고를 표시합니다. 원하는 비밀번호를 입력하고 계속하세요. 다음 입력:
cat cloud-config-file
그러면 긴 문자열이 반환되고 새 클라우드 구성 파일이 생성됩니다. 이제 비주얼 편집기에서 cloud-config를 엽니다.
vi cloud-config-file
그러면 편집할 수 있는 클라우드 구성 파일이 로드됩니다. CoreOS에는 고급 클라우드 구성 예제 파일이 포함되어 있습니다.
내 모습:
#cloud-config
users: moe
passwd: [SSL password]
groups:
- sudo
- docker
다음을 입력하여 클라우드 구성 파일을 확인할 수 있습니다.
cat cloud-config-file
그러면 구성 파일이 반환됩니다. 모든 것이 좋아 보이면 CoreOS 설치를 진행하십시오.
sudo coreos-install -d /dev/sda -C stable -c cloud-config-file
CoreOS가 다운로드, 작성 및 확인 중이라는 메시지가 표시됩니다. 완료되면 "성공! CoreOS [버전]이 /dev/sda에 설치되었습니다."라는 메시지가 표시됩니다.
CoreOS 가상 머신을 종료한 다음 다시 시작하십시오. 백업을 시작할 때 CoreOS ISO를 마운트 해제해야 합니다. 그렇지 않으면 라이브 CD가 다시 실행됩니다.
CoreOS가 로드되고 명령줄에 로그인 프롬프트가 표시됩니다.
localhost login:
사용자 이름과 비밀번호를 입력하세요. 그러면 "Container Linux by CoreOS [버전]"이라는 메시지와 새로운 명령줄이 로드됩니다.
컨테이너 Linux 실습:다음 단계
이제 CoreOS의 Container Linux가 제대로 설치되었으므로 컨테이너 및 클러스터 설정을 시작할 수 있습니다. CoreOS 문서에는 뛰어난 빠른 시작 가이드가 있습니다. etcd를 사용한 서비스 검색에 대한 정보와 Docker를 사용한 컨테이너 관리에 대한 섹션이 있습니다. "Hello World" Docker pull과 같은 몇 가지 빠른 테스트를 수행했습니다. 또한 저는 미디어 서버 광팬이기 때문에 Plex Docker 이미지를 설치했습니다. 마지막으로 클러스터 관리를 위한 플릿을 설정했습니다.
가장 먼저 할 일은 Container Linux의 주요 구성요소를 구성하는 것입니다.
- 기타
- 도커
- 함대
이 세 가지 기본 기반을 구성하면 서비스 검색, 클러스터 관리 및 컨테이너 설정을 준비할 수 있습니다. 그런 다음 안전한 Docker 컨테이너에서 앱을 컨테이너화하고 데스크톱 앱을 안전하게 테스트할 수 있습니다.
컨테이너 Linux 실습:최종 생각
컨테이너를 자주 사용하지 않지만 Container Linux는 배포를 단순화했습니다. 문서는 샘플 구성 파일과 함께 훌륭합니다. 초보자의 경우 몇 가지 비공식 비디오 설치 자습서를 통해 CoreOS를 더 쉽게 설치할 수 있습니다. CoreOS는 Container Linux가 가볍다고 주장하지만 처음에는 회의적이었습니다. 그러나 리소스 소비가 상당히 적은 가상 머신에서 Container Linux를 실행했습니다. Container Linux가 정말 가벼운지 테스트하고 싶었기 때문에 노후된 HP 노트북을 사용했는데 문제가 없었습니다.
그러나 초기 설치의 일부 단계는 "초보자 친화적"이지 않습니다. Container Linux를 설치 및 설정하려면 Linux에 대한 강력한 지식이 필요합니다. 특히 CoreOS가 유료 프리미엄 기능으로 제공하는 CoreUpdate 대시보드를 시도하지 않았습니다. 명령줄을 사용하는 데 문제가 없지만 모니터링을 위한 그래픽 환경이 추가되면 좋을 것입니다.
시스템 관리자와 데이터베이스 관리자는 Container Linux에서 가장 큰 이점을 얻습니다. 그러나 홈 서버의 경우 클러스터 환경을 만드는 간단하고 가벼운 수단입니다. 또한 Container Linux를 사용하면 단일 시스템에서 클러스터를 가동할 수 있습니다. 그러나 Container Linux는 컨테이너 작업에 대한 훌륭한 소개입니다. Docker 및 컨테이너에 대해 자세히 알아보려는 경우 Container Linux는 가상 머신에서 정말 잘 실행되며 시작하는 데 필요한 모든 리소스를 제공합니다.
노련한 DevOps 엔지니어, 시스템 관리자 및 데이터베이스 관리자 외에도 컨테이너 초보자를 위한 탁월한 즉시 사용 가능한 솔루션입니다. 궁극적으로 CoreOS의 Container Linux는 확장 가능하고 효율적이며 컨테이너화된 환경을 만드는 간단한 수단입니다.
CoreOS를 사용하고 있습니까? 할 계획입니까? 아래 댓글 섹션에서 Linux에서 컨테이너화하는 방법을 알려주세요!