Что такое контейнер Linux и стоит ли его использовать?

Операционные системы Linux выпускаются в разных вариантах. В то время как операционные системы Linux, такие как Ubuntu, носят довольно общий характер, третьи ориентированы на нишу. Это Kali Linux, ориентированный на безопасность. Легкие дистрибутивы, такие как Xubuntu и даже Hannah Montana Linux (!). Для настольного использования хорошо работает операционная система Linux vanilla. Однако для специализированных задач, таких как запуск сервера, лучше всего найти адаптированную версию.

Контейнеры становятся все более популярными. Контейнер Linux, ранее известный как CoreOS, — это операционная система Linux, предназначенная для простых развертываний в контейнерах. Это одна из новейших нишевых операционных систем Linux

, Проверьте этот обзор и практический взгляд на Контейнер Linux.

Практические занятия с контейнером Linux: базовые знания

Прежде чем углубиться в Container Linux, давайте начнем с краткого обзора архитектуры сервера. Контейнер Linux предназначен для кластерного развертывания. Кластерное развертывание звучит довольно сложно, но это довольно просто. По сути, компьютерный кластер состоит из нескольких серверов, которые работают вместе. Поэтому они функционируют как одна единица или система, а не как несколько. Кроме того, компьютеры в кластере имеют узлы или серверы, которые выполняют ту же функцию. Таким образом, узел — это отдельная машина, а кластер — это группа серверов, которые работают вместе.

Наиболее распространенные развертывания Container Linux находятся в кластерных средах. Дистрибутив, ранее известный как CoreOS, даже включает средства для раскрутки кластера только с одной машины. Однако отличительной чертой Container Linux является его зависимость от контейнеров.

В отличие от традиционной настольной операционной системы, все приложения запускаются в контейнерах. Хотя виртуальные машины (VM) и контейнеры используют методы виртуализации, контейнеры различаются. В отличие от виртуальных машин, контейнеры используют то же ядро ​​операционной системы, что и хост-компьютер. Поскольку контейнерные приложения и хост-компьютер используют одно и то же ядро, развертывание контейнеров выигрывает от повышения эффективности. В конфигурации виртуальной машины каждая виртуальная машина запускает приложение и гостевую операционную систему. Это работает поверх операционной системы и оборудования хоста.

Контейнерные развертывания вместо этого запускают приложения в своих собственных контейнерах поверх программного обеспечения для виртуализации. Docker остается наиболее популярным контейнерным программным обеспечением, хотя chroot, LXC и Linux-VServer входят в число альтернатив Docker.

Практика с контейнером Linux: зачем использовать контейнеры?

Итак, контейнеры — это метод виртуализации. Почему стоит выбрать контейнерную среду? Обычно контейнеры обеспечивают улучшенную производительность. Отказываясь от отдельных операционных систем и вместо использования общего ядра, вы максимизируете эффективность использования ЦП, хранилища и памяти.

Поскольку вам не нужно запускать несколько экземпляров операционной системы, как в конфигурации виртуальной машины, вы можете запускать больше контейнеров. Повышение производительности обусловлено необходимостью единой операционной системы. Точно так же вы можете создавать контейнеры быстрее, чем в среде виртуальной машины. Поэтому контейнеры больше подходят для поддержания маневренности и обеспечения непрерывной доставки и непрерывной интеграции.

Гибкая разработка концентрируется на итерации и учитывает непредсказуемость. Вы можете прочитать Agile Manifesto для дальнейшего понимания гибкой философии. Однако, несмотря на преимущества контейнеров, это не идеальный метод виртуализации. Поскольку контейнеры совместно используют ядро ​​операционной системы, существует угроза безопасности. Любая уязвимость или нарушение, влияющее на контейнер, получает доступ к операционной системе. Но есть обходной путь запуска контейнерных приложений в операционной системе на виртуальной машине. Это гарантирует, что операционная система хост-машины изолирована от отдельной операционной системы хост-контейнера.

Контейнерство также требует, чтобы контейнеры использовали одну и ту же операционную систему. С виртуальными машинами каждое приложение получает свою собственную операционную систему. Таким образом, вы не можете запускать приложения, разработанные для Windows Server, в контейнере Linux и наоборот.

Практические занятия с контейнером Linux: что такое контейнер Linux?

CoreOS Core Update

CoreOS, или Container Linux, как его теперь называют, является операционной системой Linux с открытым исходным кодом. Это легкий дистрибутив, нацеленный на кластерное развертывание. В частности, CoreOS концентрируется на простых, надежных и масштабируемых развертываниях. Вы не найдете менеджера пакетов. Вместо этого Контейнер Linux требует, чтобы все приложения запускались внутри контейнеров. Контейнер Linux использует Chrome OS в качестве своей базы. Поэтому Container Linux остается довольно легковесным. Для тестирования я запускал операционную систему Linux, ранее известную как CoreOS, в виртуальной машине на устаревшем ноутбуке с процессором AMD A10 на базе HP Envy m6-1205dx. Потребление системных ресурсов оставалось довольно низким.

Поскольку Container Linux отказывается от нескольких традиционных функций операционной системы Linux для настольных компьютеров, он облегчает распространение. В отличие от настольной операционной системы, вы не найдете менеджера пакетов. Вместо этого все приложения работают как контейнеры Docker. Это обеспечивает мобильность и изоляцию услуг. Если вам нужна среда рабочего стола, вам не повезло. Контейнеру Linux не хватает графического интерфейса пользователя. Вместо этого все основано на командной строке. Панель инструментов CoreUpdate предоставляет информацию о работоспособности компьютера, запущенных службах и работоспособности кластера. Но он доступен только как компонент в подписке Premium Managed Linux.

Контейнерная архитектура Linux

Контейнер Linux легок и предназначен для контейнеров и кластеризации. Поскольку нет среды рабочего стола, конфигурация функционирует иначе, чем в операционной системе Linux, такой как CentOS или Ubuntu. При начальной загрузке Container Linux загружает файл конфигурации облака. Вам нужно будет ввести информацию в облачной конфигурации. Это может быть немного сложнее, особенно для тех, кто не знаком с cloud-config. Но это важный файл, который дает Container Linux возможность загружать необходимые службы, изменять параметры и управлять кластерами.

Кроме того, etcd а также флот Демоны остаются неотъемлемой частью Container Linux. Обе эти службы запускаются при запуске по умолчанию. Кроме того, при загрузке файл cloud-config позволяет хосту узнать, как присоединиться к существующему кластеру. etcd Демон распространяет и хранит данные для хостов в кластере. Это важно для поддержки конфигураций, а также для обнаружения сервисов. флот Демон похож на распределенный init. Этот демон ссылается на Systemd init для хостов в кластере и выполняет такие задачи, как планирование сервиса.

Каждая система в флот кластер работает только один fleetd демон. Этот демон принимает на себя две основные обязанности, действуя как агент и двигатель. В качестве движка демон выполняет решения по планированию. Принимая во внимание, что сторона агента выполняет единицы. В кластере флота, etcd это единственное хранилище данных. Такая информация, как наличие кластера, состояние объекта и файлы модуля, хранятся в etcd демон. Кроме того, это среда для связи между агентами и двигателями.

Практические занятия с контейнером Linux: кто должен его использовать?

Контейнер Linux бесплатен, легок и довольно прост в установке на виртуальной машине. Любой, кому нужны быстрые, масштабируемые, контейнерные развертывания, должен выбрать Container Linux. Преимущественно системные администраторы и администраторы баз данных больше всего выиграют от Container Linux. Поскольку в Container Linux отсутствует настольная среда, он лучше всего подходит для управления кластером и в настройках сервера. Если вы ищете серверную операционную систему Linux, Container Linux является одним из 12 лучших дистрибутивов Linux-серверов.

s.

Air Pair имеет отличную информацию о стимулах CoreOS. В этой статье упоминается высокая доступность, поддержка производственной среды, контроль версий программного обеспечения и т. Д. В качестве основных преимуществ использования Container Linux. Примечательно, что есть также невероятно преданное сообщество с открытым исходным кодом. Контейнер Linux предназначен для опытных пользователей Linux. Справочная документация, хотя и является всеобъемлющей, предполагает умеренную степень знакомства с Linux. У начинающих и начинающих пользователей могут возникнуть проблемы с первоначальной установкой.

Более конкретно, облачная конфигурация может быть проблемой. В разделе комментариев одного видео с установкой CoreOS пользователь YouTube Сетесо Нугрохо заявил: «Отличное руководство! Весьма сбивает с толку, когда вы изучаете конфигурацию файла # cloud-config в CoreOS ». Хотя конфигурация не так уж сложна, в Container Linux очень хорошо понимают возможности Linux, такие как редактор VIM.

Практические занятия с контейнером Linux: как установить

Существует много способов установить Контейнер Linux. Согласно веб-сайту CoreOS, официальными платформами являются Amazon EC2, DigitalOcean, Microsoft Azure, bare metal и OpenStack. Помимо Oracle Linux, CentOS и Suse, CoreOS является одной из немногих совместимых с Azure операционных систем Linux.

, Благодаря активному сообществу также поддерживаются такие платформы, как Packet, Rackspace, Brightbox, VirtualBox и VMware. Я обнаружил, что самым простым способом была установка Container Linux на VirtualBox с использованием файла ISO. Вот краткое руководство по использованию VirtualBox

,

Настройка VirtualBox

Откройте VirtualBox, и вам будет предложено указать имя виртуальной машины, тип операционной системы и версию. Я назвал мой просто CoreOS. Для типа выберите Linux. В качестве версии используйте Linux 2.6 / 3.x / 4 / x (64-разрядная версия). Нажмите кнопку «Далее.

CoreOS Start

Теперь вам нужно выделить свою оперативную память. CoreOS предлагает минимум 1024 МБ оперативной памяти.

CoreOS RAM

После выбора оперативной памяти вам необходимо добавить виртуальный жесткий диск. Используйте опцию создать виртуальный жесткий диск сейчас.

Создать VHD CoreOS

На следующем экране вам будет предложено указать тип файла жесткого диска. Выберите VDI или Образ диска VirtualBox.

CoreOS VDI

После этого настройте свое хранилище. Я рекомендую использовать динамически размещенный файл жесткого диска.

CoreOS Dynamic

Затем выберите местоположение и размер файла. Я оставил CoreOS по умолчанию в качестве имени и выбрал размер файла 8 ГБ.

Распределение размера файла CoreOS

Если ваша виртуальная машина CoreOS VirtualBox настроена правильно, продолжайте и нажмите зеленую кнопку Пуск.

CoreOS Start

После того, как вы нажмете «Пуск», вам нужно будет выбрать загрузочный диск. Перейдите в папку, в которой вы получили CoreOS ISO, и продолжайте.

Конфигурирование контейнера Linux

После запуска вашего CoreOS ISO начинает загружаться контейнер Linux. В конечном итоге вы увидите строку, в которой указана версия CoreOS, а в командной строке:

core@localhost

Введите:

sudo openssl passwd -1 > cloud-config-file

CoreOS Passwd Config

Командная строка выдает предупреждение, что если не удается открыть файл конфигурации. Введите желаемый пароль и продолжайте. Далее введите:

cat cloud-config-file

CoreOS Cat Cloud Config

Это возвращает длинную строку и создает новый файл конфигурации облака. Теперь откройте облачный конфиг в визуальном редакторе:

vi cloud-config-file

CoreOS VI

Это загружает файл конфигурации облака, который вы можете редактировать. CoreOS включает расширенный пример файла облачной конфигурации:

Пример CoreOS Cloud Config

Моя выглядела так:

#cloud-config
users: moe
passwd: [SSL password]
groups:
- sudo
- docker

CoreOS Cloud Config Ex

Вы можете проверить свой файл конфигурации облака, введя:

cat cloud-config-file

CoreOS Check Cloud Config

Это возвращает ваш файл конфигурации. Если все выглядит хорошо, приступите к установке CoreOS:

sudo coreos-install -d /dev/sda -C stable -c cloud-config-file

CoreOS Install Final

Вы увидите сообщение о том, что CoreOS загружается, записывается и проверяется. Как только это закончится, вы увидите сообщение «Успех! CoreOS [версия] установлена ​​в / dev / sda ».

CoreOS Success

Завершите работу вашей виртуальной машины CoreOS, а затем снова запустите ее. При запуске резервного копирования обязательно размонтируйте CoreOS ISO, иначе live CD будет запущен снова.

CoreOS загрузится, и вы получите приглашение для входа в систему в командной строке:

localhost login:

CoreOS Final Login

Введите ваше имя пользователя и пароль. Это загрузит сообщение «Контейнер Linux от CoreOS [версия]» и новую командную строку.

Окончательный вход в систему CoreOS

Практические занятия с контейнером Linux: следующие шаги

Теперь, когда Container Linux от CoreOS установлен правильно, вы можете приступить к настройке контейнеров и кластеров. Документация CoreOS содержит отличное руководство по быстрому запуску. Здесь есть информация об обнаружении сервисов с использованием etcd, а также раздел об управлении контейнерами с помощью Docker. Я выполнил несколько быстрых тестов, таких как Docker «Hello World». Кроме того, я установил образ Plex Docker, потому что я большой любитель медиа-сервера. Наконец, я создал парк для управления кластером.

Сначала вам нужно настроить основные компоненты Container Linux:

  • etcd
  • докер
  • флот

Настроив эти три основных принципа, вы будете готовы к обнаружению служб, управлению кластерами и настройке контейнеров. Затем вы можете приступить к контейнеризации приложений и безопасному тестированию настольных приложений в безопасном контейнере Docker.

,

Практические занятия с контейнером Linux: последние мысли

Я не часто использую контейнеры, но Container Linux упрощает развертывание. Документация отлично с примерами конфигурационных файлов. Обратите внимание, что для начинающих несколько неофициальных видеоинструкций по установке облегчают установку CoreOS. В то время как CoreOS утверждает, что Container Linux является легковесным, я изначально был настроен скептически. Тем не менее я развернул Container Linux в виртуальной машине с довольно низким потреблением ресурсов. И поскольку я хотел проверить, действительно ли Container Linux действительно легкий, я использовал свой устаревший ноутбук HP и не столкнулся с какими-либо проблемами.

Однако некоторые этапы первоначальной установки не очень удобны для начинающих. Для установки и настройки Container Linux требуется хорошее знакомство с Linux. Примечательно, что я не пробовал инструментальную панель CoreUpdate, которую CoreOS предлагает в качестве платной расширенной функции. Хотя у меня нет проблем с использованием командной строки, графическое окружение для мониторинга будет хорошим дополнением.

Системные администраторы и администраторы баз данных получают наибольшую выгоду от Container Linux. Однако для домашних серверов это простой и легкий способ создания кластерной среды. Более того, с помощью Container Linux вы можете раскрутить кластер с одного компьютера. Но Container Linux — отличное введение в работу с контейнерами. Если вы пытаетесь узнать больше о Docker и контейнерах, Container Linux отлично работает на виртуальной машине и предлагает все ресурсы, необходимые для начала работы.

Это отличное готовое решение для начинающих разработчиков в дополнение к опытным инженерам DevOps, системным администраторам и администраторам баз данных. В конечном счете, Container Linux от CoreOS является простым средством создания масштабируемой, эффективной, контейнерной среды.

Вы используете CoreOS? Вы планируете? Дайте нам знать, как вы контейнеризуетесь в Linux, в разделе комментариев ниже!

Ссылка на основную публикацию
Adblock
detector